现象:原本需要发送44个字节的数据,现在一次性只能发送32个字节,然后如果一次性没有接收完,上位机就会直接报错,进行延时读取缓冲区处理,等待多一次信号后再进行处理数据。
void MainWindow::_onReadReady()
{
//处理接收不完全的数据
if(_serial.waitForReadyRead(10))
{
//从接收缓冲区中读取数据
QByteArray buffer = _serial.readAll();
foreach (unsigned char byte, buffer) {
_queue.enqueue(byte);
}
QString test = QString(buffer);
int len = _parsePacket();
while(len > 0) {
_handlePacket(len);
for(int i =0; i < len; i++) {
_queue.dequeue();
}
len = _parsePacket();
}
}
}
4181

被折叠的 条评论
为什么被折叠?



