是这样的,我需要做一个
串口发送接收软件,并对接收到的16进制
数据进行处理。
我使用的
第三方qextserialport类,实现了发送和接收数据功能。问题出现了,参考资料上的接收函数是:QByteArray temp = myCom->readAll();
//读取串口缓冲区的所有数据给临时变量temp
ui->textBrowser->insertPlainText(temp);
//将串口的数据显示在窗口的文本浏览器中
我使用的接收函数是
read_mycom()
{
char tmp[5];
int len;
len = myCom->read(tmp,5);
qDebug("len = %d",len); //调试使用
qDebug("%d",tmp[0]);
qDebug("%d",tmp[1]);
qDebug("%d",tmp[2]);
qDebug("%d",tmp[3]);
qDebug("%d",tmp[4]);
。。。。数据处理
}
然后我用串口软件对其发送5个字节ABCDE
问题出现了,QT应用程序输出框输出
len = 5
65
66
67
68
69
len = 0
65
66
67
68
69
只发送了一遍数据,但是却出现两次接收,而且第二次长度数据不对,字节数据是对的,我不明白为什么会接收两遍