打印
[应用相关]

关于串口接收不定长度的数据

[复制链接]
543|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
]这样会不会限制发送数据的个数

使用特权

评论回复
5
android2| | 2016-12-25 16:32 | 只看该作者
用循环缓冲区

使用特权

评论回复
6
拉克丝| | 2016-12-25 16:44 | 只看该作者
使用数据结构队列(FIFO)作为缓冲区保存数据,数据最好要有帧格式界定

使用特权

评论回复
7
309030| | 2016-12-25 17:35 | 只看该作者
通过时间法接收,波特率已知的话,就可以计算出一个字节需要的时间,如果超过一个字节需要的时间,那么就认为一帧数据接收完成

使用特权

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

本版积分规则

153

主题

734

帖子

3

粉丝