使用QSerialPort读取时,Serial.print()会截断数据

时间:2016-07-26 10:18:09

标签: qt arduino serial-port

我正在尝试从Arduino Mega 2560到Qt应用程序编写一个简单的整数值。当我通过Qt应用程序中带有Serial.read()的开放端口发送数据时,Baudrate设置为9600并且serial->write(some_data);正常工作。

digitalWrite(SS, LOW);
if (Serial.available() == 2) {
  response1 = SPI.transfer(Serial.read());
  response2 = SPI.transfer(Serial.read());
}
digitalWrite(SS, HIGH);

上面的代码工作正常。我以前读过另一个,不得不添加delay(3)来完成这项工作。现在我想发回回复

Serial.print((response2 << 8 ) | (response1 & 0xFF));

但总是有截断的数字。我从逻辑分析仪得知响应是例如8193因此QByteArray b = serial->readAll();我得到881819,有时8193等结果。即:始终最后的数字被随机截断。我认为这也是一个时间问题,但我找不到解决方法。

1 个答案:

答案 0 :(得分:0)

以防任何人遇到同样的问题:将波特率从9600更改为112500修复此问题。