我正在尝试从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();
我得到8
,81
,819
,有时8193
等结果。即:始终最后的数字被随机截断。我认为这也是一个时间问题,但我找不到解决方法。
答案 0 :(得分:0)
以防任何人遇到同样的问题:将波特率从9600更改为112500修复此问题。