MSP430读取rxbuf数据

[复制链接]
841|11
 楼主| Stannis 发表于 2017-10-16 14:53 | 显示全部楼层 |阅读模式
请教各位了,通过UART串口收到一包数据,有数据通讯协议含包头AA99,包长度0x05,发送有效数据和校验和等,不知道如何写程序来读取和判断数据是否是所收到的数据。谢谢了
Brand2 发表于 2017-10-16 15:14 | 显示全部楼层
那个寄存器每次存储的是一个字节,你写函数每次中断读取数据存放到一个数组里a[10],if(a[0]==99),if(a[1]==aa) ,我理解的问题没错吧?
Soraka 发表于 2017-10-16 15:45 | 显示全部楼层
串口一次只接收一个字节,你需要判断一个5字节的字符串,那可以建立一个5字节的数组和一个指针,每收到一个字节先判断是否包头第一字节,是的话指针自增,收完第五字节再判断整包的内容。
Garen2 发表于 2017-10-16 15:53 | 显示全部楼层
rxbuf[5];
rxbuf_index = 0;

rxbuf[rxbuf_index++] = RXD;
if(rxbuf[rxbuf_index] == 0x99 && rxbuf_index >0 &&  rxbuf[rxbuf_index-1] == 0xaa)
{
   rxbuf_index = 0;
}
Ryze 发表于 2017-10-16 16:01 | 显示全部楼层
先用数组存下来,再做处理
Varus 发表于 2017-10-16 16:12 | 显示全部楼层
收一包数据,首先要判断数据头是否正确,然后读取你预定长度的数据,数据收全后根据效验合判断数据是否合法。
Snow7 发表于 2017-10-16 17:57 | 显示全部楼层
rxbuf_index = 0的目的是让收到数据头后把有效数据从零开始存入数组。
android2 发表于 2017-10-16 18:06 | 显示全部楼层
怎么有点像脑电模块?
febgxu 发表于 2017-10-16 21:59 | 显示全部楼层
使用数据保存。
febgxu 发表于 2017-10-16 22:03 | 显示全部楼层
通信协议判断前两个数组是否为AA99.
biechedan 发表于 2017-10-17 21:42 | 显示全部楼层
可以连续判断是否为AA和99
biechedan 发表于 2017-10-17 21:57 | 显示全部楼层
最简单的就是先判断数据是否为AA然后进入第二套循环。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

721

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部