我的串口需要接收一组定常数据
(校验字节是校验前几位的和)
每一字节对应的意义如上;
我需要对数据高字节与低字节进行处理,高字节基本都是0x00,所以不需要考虑;
对数据低字节的处理如下
data[0]=USART_RX_BUF[7]/100;
data[1]=USART_RX_BUF[7]%100/10;
data[2]=USART_RX_BUF[7]%100%10;
若数据低字节是0x0a 处理后显示0.10
关于数据接收后处理,研究了一天左右,还是比较混乱,如何在确保接收这一帧完整的数据的情况下;对数据进行处理,然后再把处理后得到的0.01(如上得到的结果)显示在TFTlcd上(初步的想法是通过定时器来显示,不放在while循环中显示),请问我这种情况如何确保收到一帧完整的数据?在收到数据后进行数据处理时转回到主函数中处理吗?
(另:初学串口,关于数据接收与处理理解的比较差,各位大神有没有好的帖子推荐)
非常感谢!!
我常用的方案:
不管你什么协议 什么长度 什么校验。
首先在中断哪里 设置接收。 收到一个存一个到内存 一直到接收超时, 对的 是一直接收 不做任何判断哦
大循环: 接收超时后 对收到的数据进行处理 。检查规则 例如文件头 校验 等等。。。。如果都符合了 数据爱拆就拆 爱分就分。
这样不会漏一个字节 也不会卡主
是这样接收?收到9个之后,设一个标志位进行处理,这样可以吗?
随便自己,怎么会怎么来中断中FIFO接收存储数据,再开个任务周期判断解析FIFO内接收的数据
一周热门 更多>