打印
[应用相关]

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

[复制链接]
3332|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Levenburg|  楼主 | 2017-2-15 20:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口接收数据的时候都是把数据从缓冲器里面装到数组里面,但是我们接收的数据长度不一定,如果设置一个长度,但是实际发送的数据长度比接收的数据长度大,这该怎么处理呢?
沙发
Thorald| | 2017-2-15 21:09 | 只看该作者
最简单的办法设置有一个最大的缓冲区,将接收到的数据放在里面。前提条件是内存资源足够使用。

使用特权

评论回复
板凳
Bjorn| | 2017-2-15 21:16 | 只看该作者
定义双缓冲区,一个缓冲区装满了(或者接收完毕),立刻处理,同时切换到另外一个缓冲区进行接收。接收完毕后处理数据。

使用特权

评论回复
地板
Rollo| | 2017-2-15 21:25 | 只看该作者
最简单的办法设置有一个最大的缓冲区

会不会限制发送数据的个数

使用特权

评论回复
5
Rangar| | 2017-2-15 21:39 | 只看该作者
用循环缓冲区

使用特权

评论回复
6
Stannis| | 2017-2-15 21:51 | 只看该作者
使用数据结构队列(FIFO)作为缓冲区保存数据,数据最好要有帧格式界定

使用特权

评论回复
7
xyz549040622| | 2017-2-15 22:14 | 只看该作者
以前论坛有过这样的帖子,用DMA吧。

使用特权

评论回复
8
稳稳の幸福| | 2017-2-15 23:06 | 只看该作者
不定长度数据的接收确实有点复杂,不过讨论这个问题也很久了,论坛还是有不少现成的贴可以参考的。

使用特权

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

本版积分规则

46

主题

180

帖子

0

粉丝