九、6 串口收发数据包(代码)

1、收发HEX数据包(以固定包长,含包头包尾为例)

(1)接线图

(2)

(3)

写一个SendPacket函数,目的是调用一下这个函数,TxPacket数组的4个数据就会自动加上包头包尾发送出去

(4)初始化之后,可以先填充发送缓冲区数组

(5)接收数据包

在接收中断函数里,需要用状态机来执行接收逻辑,接收数据包,然后把载荷数据存在RxPacket数组里。

首先定义一个标志当前状态的变量S

定义一个静态变量(只能在本函数使用)RxState,类似于全局变量,函数进入只会初始化一次0,函数退出后,数据仍然有效

(6)加上按键

按一下按键,变换一下数据,发送到串口助手上

2、收发文本数据包(以可变包长,含包头包尾为例)

(1)接线图

(2)因为文本发送不像HEX数据包一样更改,所以直接在主函数里用SensString或printf发送

(3)接收部分

1)避免文本数据包错位的操作

因为载荷字符数量不确定,所以每次接收之前,必须先判断是不是包尾

2)主函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值