串行代码中的字节到Arduino上的数组

问题描述

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

Frames

我已经在框架中找到了

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

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

我尝试使用Arduino将每个字节移到Array的位置,因为知道第一个字节是常数(54),并且帧始终是相同长度。

难道是因为Arduino循环的速度快于Serial循环,所以它会在每个阵列的所有位置复制数据?

寻找信息时,我读到当我创建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

欢迎任何帮助 非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)