解决Qt5的QserialPort串口数据接受不完整的问题
解决问题出处: https://blog.csdn.net/jason_thinking/article/details/78455750.
学习中遇到使用Qt在Windows下读取串口信息功能。串口设备是125K的低频RFID阅读器
QSerialPort的readyRead()信号,只要有数据就抛出,这就导致一条数据分多次抛出。由于我使用的串口接收数据没有固定的开头和结尾,这就导致无法获取正常的一组数据
我所使用的串口设备:
解决思路:增加接收延时功能,把多次读取的数据保存到缓冲区,延时结束,一次性读取数据
由于QSerialPort没有提供串口接收延时功能,需要用到QTimer:
需要先创建timer对象。
然后定时器结束会触发timeout信号,执行serialRead()槽函数
执行结果:
本示例只解决问题而展示的代码,前面串口设置相关代码可自行百度。