一种可靠串口协议

[TOC]

协议

kiwi mini里的ble通信协议没有校验和类型,如果出错没法检测,log打印也难以辨认,非常不利于调试,因此需要重新定义一个新的协议并完成它。 我们可以借鉴Zigbee的串口通信协议,那么我们先看看Zigbee的做法和代码。

协议包括开始,结束,类型,长度,校验和数据。 协议将低于0x10的字符作为功能字符,0x01作为开始,0x03作为结束,其他预留。 那么如果类型,长度,校验和数据中出现了低于0x10的数据,就将它和0x10做异或运算^=,并在前面先发送0x02作为标志。

server端程序

接收程序

CRC校验部分

单片机端程序如下: log打印程序,我们使用一个类型作为log,把单片机端的打印输出到server端打印出来:

串口的接收解码:

串口写数据:

CRC校验使用同样程序。

最后更新于

这有帮助吗?