• 6204阅读
  • 4回复

[提问]QT 串口通信 ,读串口问题 [复制链接]

上一主题 下一主题
离线nowayw
 

只看楼主 正序阅读 楼主  发表于: 2014-06-21
请教大家,我在windows下开发串口通信程序,QT 版本是4.85.
我用的串口类是第三方的类库 :qextserialport

请问,我读串口时候,可以不使用信号和槽吗,connect(myCom, SIGNAL(readyRead()), this, SLOT(readMyCom()));

我的程序是控制下位机的,我write() 之后,下位机给我返回数据,我现在直接使用read() 函数
发现读数据不正确,用信号和槽就没事

用这个类 ,是不是必须用信号和槽 ,读数据?



离线nowayw

只看该作者 4楼 发表于: 2014-06-21
回 dbzhang800 的帖子
dbzhang800:这个问题很难回答。
从理论上说,由于 Polling 模式 比 EventDriven 简单太多了,问题应该更少太对。在Windows平台上,无非就是使用了 CreateFile()/ReadFile()/WriteFile()/CloseHandle() 这4个API的基本功能
....... (2014-06-21 15:44) 

恩 ,明白好多了 ,我查了一下这个类有 两种读取串口的模式 ,一种为 polling ,一种为事件驱动,我用的是事件驱动的方式,所以需要使用信号和槽。那种polling 方式听说需要使用定时器进行同步读取比较复杂
离线dbzhang800

只看该作者 3楼 发表于: 2014-06-21
回 nowayw 的帖子
nowayw:1.2 beta 版本 ,那我 read()  的出结果怎么不对  (2014-06-21 15:33) 

这个问题很难回答。

从理论上说,由于 Polling 模式 比 EventDriven 简单太多了,问题应该更少太对。在Windows平台上,无非就是使用了 CreateFile()/ReadFile()/WriteFile()/CloseHandle() 这4个API的基本功能

你可以调试程序看看,如果问题真在Qesp中,我想改动起来应该也容易。
4条评分好评度+1贡献值+1金钱+1威望+1
nowayw 好评度 +1 优秀文章,支持!n神马都是浮云 2014-06-21
nowayw 贡献值 +1 优秀文章,支持!n神马都是浮云 2014-06-21
nowayw 威望 +1 优秀文章,支持!n神马都是浮云 2014-06-21
nowayw 金钱 +1 优秀文章,支持!n神马都是浮云 2014-06-21
离线nowayw

只看该作者 2楼 发表于: 2014-06-21
1.2 beta 版本 ,那我 read()  的出结果怎么不对
离线dbzhang800

只看该作者 1楼 发表于: 2014-06-21
不一定要用信号槽,另外,你用的是Qesp1.2 RC还是其他版本?
快速回复
限100 字节
 
上一个 下一个