原标题:Qt 串口通信接收数据不完整,怎么解决?
【CSDN 编者按】使用Qt编写串口的上位机时,串口通信过程中有时会遇到数据接收不完整的问题,下位机一次发送的数据可能会分为两次甚至多次接收,这样就导致数据接收不完整,该如何解决呢?
作者 | 李肖遥责编 | 欧阳姝黎
场景
这是我随意接收的数据,想解析数据,但是接收不到完整的数据
找到问题
我们使用的是 Qt 自带的串口模块,在 .pro 模块里可以看到。
QT += serialport
在使用 Qt 自带的串口 QtSerialPort 时,其发送过来的数据需要进行接收,则需要连接一个相应的槽函数:
//连接信号和槽
QObject::connect(&serial, &QSerialPort::readyRead, this, &frmNetTool::serialPort_readyRead);
QSerialPort的readyRead信号,只要有数据就抛出,执行 serialPort_readyRead 函数,这就导致一条数据分多次抛出。
void serialPort_readyRead
{
//从接收缓冲区中读取数据
QByteArray buffer = se