我正在尝试在微控制器和 ac# windows 应用程序之间实现串行通信。
我在计算机到微控制器的方向上一切正常。但是我很难弄清楚如何在另一个方向上实现通信。
我的消息由 4 个字节组成
- B0 – 正在发送的值的地址/名称
- B1 – 高字节
- B2 – 低字节
- B3 – 校验和 = 字节 0-2 相加
为了确保接收到完整的消息,如果字节之间的时间超过 20 毫秒,我让微控制器放弃正在接收的当前消息,这似乎运行良好,并且可以容忍可能导致同步丢失的通信故障。
如果完全从 ac# 应用程序中,我不确定如何实现此延迟,因为我知道您对时间的精细控制要少得多。
我见过其他发送开始和停止字符的 ASCII 协议,但我不确定在发送二进制数据时如何实现这一点,其中我的值可以采用字节中可能的任何值,并且可能恰好是开始或停止字符是什么。
由于资源有限,我需要保持微控制器方面的基本功能,并且控制器的主要任务需要非常精确(低于我们的范围),将 ascii 转换为十进制可能具有。
是否有人对我应该如何从微处理器或计算机端实现这一点提出建议。
编辑
我在这里查看了其他一些问题,但它们似乎都指的是更大的基于 ASCII 的消息。