Java / C#串口写入Arduino读错字节

时间:2015-04-29 06:33:39

标签: java c# serial-port arduino

我有一个程序,我最初用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();
}

0 个答案:

没有答案