[应用相关] 关于串口接收不定长度的数据

[复制链接]
806|6
 楼主| Garen2 发表于 2016-12-25 15:13 | 显示全部楼层 |阅读模式
串口接收数据的时候都是把数据从缓冲器里面装到数组里面,但是我们接收的数据长度不一定,如果设置一个长度,但是实际发送的数据长度比接收的数据长度大,这该怎么处理呢?
Ryze 发表于 2016-12-25 15:49 | 显示全部楼层
最简单的办法设置有一个最大的缓冲区,将接收到的数据放在里面。前提条件是内存资源足够使用。
Varus 发表于 2016-12-25 15:59 | 显示全部楼层
试试定义双缓冲区,一个缓冲区装满了(或者接收完毕),立刻处理,同时切换到另外一个缓冲区进行接收。接收完毕后处理数据。
Snow7 发表于 2016-12-25 16:16 | 显示全部楼层
[quote]最简单的办法设置有一个最大的缓冲区[/quote
]这样会不会限制发送数据的个数
android2 发表于 2016-12-25 16:32 | 显示全部楼层
用循环缓冲区
拉克丝 发表于 2016-12-25 16:44 | 显示全部楼层
使用数据结构队列(FIFO)作为缓冲区保存数据,数据最好要有帧格式界定
309030 发表于 2016-12-25 17:35 | 显示全部楼层
通过时间法接收,波特率已知的话,就可以计算出一个字节需要的时间,如果超过一个字节需要的时间,那么就认为一帧数据接收完成
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

734

帖子

3

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