我使用qserialport从计算机的串行端口接收数据。它运行良好。但是,当我的设备发送00AABBCC时,即使仅收到00或00AA,readReadReady((信号也会被调用。
只有在收到所有00AABBCC时,我才能获得信号?
这是我的代码:
QByteArray data = mySerial->readAll();
QString DataAsString = data.toHex();
ui->logArea->append(DataAsString);
我在Textedit logarea中看到的是:
00
aabb
cc
00aabb
cc
我需要的是
00aabbcc
00aabbcc
readReady()
在缓冲区中得到一些东西,就会发射。如果要读取固定数量的字节,则需要自己检查数据包大小。
此解决方案应该对您有用。