1、收发HEX数据包(以固定包长,含包头包尾为例)
(1)接线图
(2)
(3)
写一个SendPacket函数,目的是调用一下这个函数,TxPacket数组的4个数据就会自动加上包头包尾发送出去
(4)初始化之后,可以先填充发送缓冲区数组
(5)接收数据包
在接收中断函数里,需要用状态机来执行接收逻辑,接收数据包,然后把载荷数据存在RxPacket数组里。
首先定义一个标志当前状态的变量S
定义一个静态变量(只能在本函数使用)RxState,类似于全局变量,函数进入只会初始化一次0,函数退出后,数据仍然有效
(6)加上按键
按一下按键,变换一下数据,发送到串口助手上
2、收发文本数据包(以可变包长,含包头包尾为例)
(1)接线图
(2)因为文本发送不像HEX数据包一样更改,所以直接在主函数里用SensString或printf发送
(3)接收部分
1)避免文本数据包错位的操作
因为载荷字符数量不确定,所以每次接收之前,必须先判断是不是包尾