arduino 和 raspberry pi 串口速度慢

arduino and raspberry pi serial port slow

我有应用程序使用串行端口将数据从 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 连接,端口:'/dev/ttySAC0'。

当我 运行 Arduino 只接收到前两帧或三帧数据时,它会停止工作,直到我按下重置按钮。 谁能帮我解决这个问题,我花了很多时间寻找解决方案但没有好的结果。 我也尝试用 raspberry Pi B+ 替换 Arduino 但同样的问题。

不是 arduino 专家,但我建议更改

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

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

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