本人最近一直在搞Qt的串口开发,基于Qt的跨平台,引用了第三方类qextserialport类开发了在windows平台的以及linux平台的串口助手。
在windows下,利用事件机制能够很好的读写串口,并且界面不会出现冻死现象,但是在linux下,由于采用轮询机制,如果不采取任何措施将windows下开发的代码移植(只是有事件机制修改为轮询机制),那么只有在打开串口,关闭串口以后,数据才能被读取并显示。
后面查了资料,采用了定时器QTimer,自己实现了打开串口写入数据并发送数据,能够实时读取并显示。但是有一个问题一直困扰,就是第一次打开串口总是会出现界面冻死一会,这个时间为秒级,10秒以内吧,让人难受。后来有人提到利用多线程+时钟,我自己实现了一个,依然是第一次打开串口会冻死,有时候又不会。这可如何是好???
有没有在linux下用Qt开发过串口的,遇到并且能处理这个问题的大侠,请指教啊!!当然前提是我用到了第三方类qextserialport。
这个问题我觉得应该会有很多人遇到,归结一点就是如何能够同时处理数据读写操作与界面操作。在linux下基于Qt有
几种思路,还请看到的大神提点。