找回密码
 立即注册
收起左侧

QT 串口通信 ,读串口问题

5
回复
9460
查看
[复制链接]
累计签到:75 天
连续签到:1 天
来源: 2014-6-21 12:23:50 显示全部楼层 |阅读模式
10Qter豆
请教大家,我在windows下开发串口通信程序,QT 版本是4.85.
我用的串口类是第三方的类库 :qextserialport

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

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

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

最佳答案

查看完整内容

write() 之后,下位机返回了数据,你才能去read(),那怎么知道下位机返回了数据呢,信号槽呀,所以如果采用EventDriven(事件驱动) 方式,就要使用信号槽,串口收到数据了,就发信号告诉你,你再去读数据。如果采用polling(轮询)方式,你也可以不用信号槽,定时几毫秒去读一次串口,直到读到数据为止。 ...
回复

使用道具 举报

尚未签到

2014-6-21 12:23:51 显示全部楼层
write() 之后,下位机返回了数据,你才能去read(),那怎么知道下位机返回了数据呢,信号槽呀,所以如果采用EventDriven(事件驱动) 方式,就要使用信号槽,串口收到数据了,就发信号告诉你,你再去读数据。如果采用polling(轮询)方式,你也可以不用信号槽,定时几毫秒去读一次串口,直到读到数据为止。
参与人数 1人气 +3 收起 理由
noway + 3

查看全部评分总评分 : 人气 +3

回复

使用道具 举报

累计签到:87 天
连续签到:1 天
2014-6-25 09:35:00 显示全部楼层
看方式吧 有polling 和 EventDriven

EventDriven就是发送信号的方式,需要信号槽

参与人数 1人气 +3 收起 理由
noway + 3

查看全部评分总评分 : 人气 +3

回复

使用道具 举报

累计签到:75 天
连续签到:1 天
2014-6-25 22:43:04 显示全部楼层
哦 ,谢楼上两位 ,还有一个问题请教,使用qt 提供的TCPsocket 类 ,read() 时是不是也需要信号和槽啊
回复

使用道具 举报

累计签到:15 天
连续签到:1 天
2014-7-1 12:35:12 显示全部楼层
windows下的可以事件驱动,到Linux下的用新的第三方库也可以采用事件驱动了
回复

使用道具 举报

累计签到:75 天
连续签到:1 天
2014-7-2 10:40:56 显示全部楼层
哦 ,好的 ,谢谢 !
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了