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

2019-03-23 18:00发布

串口接收数据的时候都是把数据从缓冲器里面装到数组里面,但是我们接收的数据长度不一定,如果设置一个长度,但是实际发送的数据长度比接收的数据长度大,这该怎么处理呢?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
azhiking
1楼-- · 2019-03-24 04:00
/ 最简单的办法设置有一个最大的缓冲区,将接收到的数据放在里面。前提条件是内存资源足够使用。还有一种办法是定义双缓冲区,一个缓冲区装满了(或者接收完毕),立刻处理,同时切换到另外一个缓冲区进行接收。接收完毕后处理数据。
李嘉辉
2楼-- · 2019-03-24 08:33
azhiking 发表于 2016-10-12 13:03
最简单的办法设置有一个最大的缓冲区,将接收到的数据放在里面。前提条件是内存资源足够使用。还有一种办法 ...

第一种方法不行,这样就限制了发送数据的个数,我的目的是在接受中不能太浪费内存资源,又可以做到发送数据的时候没有长度限制
hljjxzhla
3楼-- · 2019-03-24 11:51
 精彩回答 2  元偷偷看……
le062
4楼-- · 2019-03-24 14:27
https://github.com/versaloon/vsf ... ent/buffer/buffer.c

参考里面关于fifo的处理,主要是pop和push两种操作
汤权
5楼-- · 2019-03-24 15:37
使用数据结构队列(FIFO)作为缓冲区保存数据,数据最好要有帧格式界定。
李嘉辉
6楼-- · 2019-03-24 18:13
 精彩回答 2  元偷偷看……

一周热门 更多>