树莓派3b接收USB串口数据并解析处理

本文介绍如何在树莓派3B上使用wiringPi库接收并解析串口数据,详细描述了帧头帧尾的定义、用户处理代码、串口选择与波特率设置,以及运行现象和串口通信应用实例。

通过树莓派3b使用wiringPi接收串口数据,并对帧头帧尾进行判断,解析出符合帧协议的数据。

 

1. 帧头、帧尾、帧长度定义

我们在这里定义串口数据的帧头为 0x3A 0x3B,帧尾为 0x7E 0x7F一帧最大的长度为 10个字节

帧头帧尾格式可自行更改。

// 最大帧长度
#define MaxFrameLength	10			// 对最大帧长度加以限定,防止接收到过长的帧数据
// 完整的帧头,2个字节
#define Frame_Header1   0x3A                    // 串口接收消息包的帧头的第1个字节
#define Frame_Header2   0x3B                    // 串口接收消息包的帧头的第2个字节
// 完整的帧尾,2个字节
#define Frame_Tail1     0x7E                    // 串口接收消息包的帧尾的第1个字节
#define Frame_Tail2     0x7F                    // 串口接收消息包的帧尾的第2个字节

 

2. 用户处理代码

接收到符合帧协议的数据,用户处理在这里定义。

其中 /* */ 分割的地方为用户处理代码。

我写的是将接收到的数据发回去,并重新等待接收下一帧。用户可根据需求自行更改。

                        /* 用户处理代码 */
                        /* 将接收到符合帧定义的帧,原路发送回去 */
                        int i = 0;
                        for (i = 0; i < (tnum + 1); i++)
                        {
                            serialPutchar(hs1, chrtmp[i]);	// 通过串口发送字节
                        }

                        /*  处理完用户代码,重新接收计数 */
                        tnum = 0;

 

3. 串口选择、波特率

这里对自己使用的串口进行更改,我使用的是USB串口,波特率115200,CP2102免驱。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值