【发布时间】:2015-03-16 21:28:45
【问题描述】:
我很抱歉无法为这个问题提供代码,但这更像是一种合乎逻辑的情况。我对 AX.25 协议的终止序列是“111111”,即六个 1。因此,如果在我的数据包中找到这个 1 序列,它将表示数据包文件的结尾并发送它,而不会正确发送数据包的其余部分。我会尽力解释我的结论和测试结果,以便您了解我的困境。
***在 Arduino 中编程******
字节 1 包含 8 位。看下面并尝试在一个矩形框中描绘一个字节。紧挨着它的是字节 2,它也包含 8 位。 情况一:
||_1_0_1_1_1_0_1_0_ ||_1_1_1_1_1_1_0_0_||
尝试的解决方案 1:您可以简单地将 1 更改为 0 并跟踪它。
情况2:
||_1_0_1_1_1_0_1_1_ ||_1_1_1_1_0_0_1_0_||
尝试的解决方案 2:尝试的解决方案 1 崩溃。我被困在这里了。
单个字节可以安全地激活 AX.25 终止序列,但组合字节会导致问题。
以下是可能的情况列表:
1) 六个 1 = 为数据包结束激活终止序列
2) 数据包实际数据中的六个 1 = 提前终止
3) 如果将 1 更改为 0,则六个 0 的序列可能会成为恢复更改时的问题
4) 由于内存限制,一次只能读取 1 个字节(EEPROM)
5) 如果两个字节之间出现六个 1,也会过早激活终止序列。
提前感谢您的任何帮助。
【问题讨论】:
标签: arduino logic sequence termination