Qt5.2的串口类接收不到串口数据,和事件机制

背景:最近瞎看Qt的东西,然后试了一下Qt自带的串口类。遇到的问题是用串口类始终接收不到数据,但是能发送数据,而且通过其它串口调试助手或者示波器都确认串口硬件没问题。

最后解决问题,并找出问题的原因。详细的过程已经在测试代码注释中标出了经过和原因。对QT的事件机制只有初步概念,不太理解。

/********************************************************************************************************
* 串口接收不到数据的问题,根据邮件列表解决了: https://www.mail-archive.com/interest@qt-project.org/msg08724.html
* 1,建议不要在单线程用阻塞读写操作。2,必须用waitForReadyXX(),否则启动不了QT的EventLoop,进而串口也不工作,接收不到数据?
*   总之,感觉QT的串口还不是很稳定,QT5.1才刚加入QSerialPort类
* 2,进阶学习:查看帮助文档中QCoreApplication的exec(),有这么一句,说明通常的QT的GUI程序中,main()程序的最后通过调用QApplication.exec()
*   进入事件循环,非GUI中一般通过QCoreApplication进入事件循环。而进入了Event Loop后,才能和OS交互,接收OS的事件,
*   但是一旦进入此循环相当于阻塞了其它操作。
* It is necessary to call this function to start event handling.
* The main event loop receives events from the windo
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值