我有一个程序,我最初用Java编写,写入一个串口,我有一个arduino pro mini插入。每个数据块都是6个字节,当arduino接收数据时,它只是将它吐回控制台,我可以看到。问题是当数据被吐出时,它通常是错误的顺序,有些字节似乎被发送两次。我在c#中编写了相同的功能,同样的事情正在发生。我写了一些arduino代码来将数据写入自身并回复它,这是正确的。
所以问题必须是我的非arduino代码或一些硬件设置。在我的代码中,我在每次写入后都添加了一个延迟,允许数据在一段时间内保持正确,但它最终开始搞砸了。
我试过搞乱波特率,但没有用。为什么会发生这种情况?
这是我的arduino代码。
//wait for seven bytes to come
if (Serial.available() >= 7) {
/* read the most recent byte */
Serial.print("Data: ");
//set the enable byte
data[0] = ENABLE;
Serial.print((int)data[0], DEC);
Serial.print(" ");
for(int i = 1; i < DATA_SIZE; i++)
{
data[i] = Serial.read();
Serial.print((int)data[i], DEC);
Serial.print(" ");
}
Serial.println();
}