0

我用逻辑分析仪读取了控制器的 TX。我知道它工作在 1200 波特,我已经根据这张照片识别了帧:

框架

我在框架中确定:

  • 1 字节 - 始终为 54
  • 2 字节 - 连续,每帧 ++
  • 3 字节 - 始终为 0
  • 4、5 和 6 字节 - 数据
  • 7 字节 - 始终为 0
  • 8、9、10 和 11- 数据
  • 12、13、14 和 15 - 它们各不相同(我知道 15 是校验和)

我无法识别校验和(我怀疑 Checksum8 Xor,因为它与另一个控制器相似)。

我尝试使用 Arduino 将每个字节带到一个数组的位置,知道第一个字节是恒定的 (54) 并且帧总是相同的长度。

是不是因为 Arduino 循环比串行更快,它会复制每个阵列所有位置的数据?

寻找我读过的信息,当我制作 Serial.print 时它可以正常工作(每个字节不重复,但是当我用 while (Serial.available ()) 写一个数组时它会失败。

我留下了一些通过 arduino 获得的帧:

#include <Arduino.h>

void setup() {
  Serial.begin(9600);
  Serial1.begin(1200);
}

void loop() {
  if (Serial1.available()) {
    int test= Serial1.read();
    Serial.println(test);
  }

} 

54 154 0 84 84 84 0 84 84 84 84 201 133 84 224

54 155 0 89 89 89 0 89 89 89 89 206 138 89 233

54 156 0 2 2 2 0 2 2 2 2 119 51 2 238

54 157 0 7 7 7 0 7 7 7 7 124 56 7 239

54 158 0 0 0 0 0 0 0 0 0 117 49 0 236

54 159 0 5 5 5 0 5 5 5 5 122 54 5 229

欢迎任何帮助 非常感谢

4

0 回答 0