arduino和raspberry pi串口缓慢

时间:2016-12-17 13:21:16

标签: python arduino raspberry-pi2 pyserial

我有应用程序使用串口将数据从odroid xu4发送到Arduino pro mini,数据是我使用的10个字节的包" Serial_Port.write(struct.pack('cBBBBBBBBB', "R", cmd[0], cmd[1], cmd[2], cmd[3], cmd[4], cmd[5], cmd[6], cmd[7], cmd[8]))"并且odroid每20毫秒(50Hz)发送两个包,在arduino上这是代码:

ARDUINO代码:

#include <Wire.h>

char CMD[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
char hand;

void setup() {
  Serial.begin(115200);
  Serial.setTimeout(10);
  Serial.println("Arduinno serial to I2C converter 115200");
}

void loop() {
  if (Serial.available() == 10) {
    Serial.readBytes(CMD, 10);
    Serial.println(CMD);
  }
}

我使用两个XBee PRO S2C将数据从XU4传输到Arduino,我使用Tx Rx引脚连接XBee和XU4,端口:&#39; / dev / ttySAC0&#39;。

当我运行程序时,Arduino只接收前两三帧数据,然后它停止工作,直到按下重置按钮。 任何人都可以帮我解决这个问题,我花了很多时间寻找解决方案但没有好结果。 我也尝试用覆盆子Pi B +替换Arduino但同样的问题。

1 个答案:

答案 0 :(得分:1)

不是arduino spcialist,但我建议改变

if (Serial.available() == 10) {

if (Serial.available() >= 10) {

当前代码依赖于完全一条消息可用。如果Python代码设法在后续读取之间的时间内发送两条消息,则当前代码将失败。