打印

MSP430读取rxbuf数据

[复制链接]
515|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;
}

使用特权

评论回复
5
Ryze| | 2017-10-16 16:01 | 只看该作者
先用数组存下来,再做处理

使用特权

评论回复
6
Varus| | 2017-10-16 16:12 | 只看该作者
收一包数据,首先要判断数据头是否正确,然后读取你预定长度的数据,数据收全后根据效验合判断数据是否合法。

使用特权

评论回复
7
Snow7| | 2017-10-16 17:57 | 只看该作者
rxbuf_index = 0的目的是让收到数据头后把有效数据从零开始存入数组。

使用特权

评论回复
8
android2| | 2017-10-16 18:06 | 只看该作者
怎么有点像脑电模块?

使用特权

评论回复
9
febgxu| | 2017-10-16 21:59 | 只看该作者
使用数据保存。

使用特权

评论回复
10
febgxu| | 2017-10-16 22:03 | 只看该作者
通信协议判断前两个数组是否为AA99.

使用特权

评论回复
11
biechedan| | 2017-10-17 21:42 | 只看该作者
可以连续判断是否为AA和99

使用特权

评论回复
12
biechedan| | 2017-10-17 21:57 | 只看该作者
最简单的就是先判断数据是否为AA然后进入第二套循环。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

721

帖子

1

粉丝