串口接收的环形队列

2020-01-14 18:58发布

串口接收的环形队列,看到坛子里面有人说串口接收环形队列,可以解决内部ram不足,以很小的环形队列接收较多的数据
我可以不可以这样理解
定义一个数组,data[20];譬如接收满20个,就把这个20个处理了,然后清空在接收下面的,就是接收到data[19]就转向data[0]

是这个意思么,有没有实际运用啊,或者说有个 例子看看
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
wuyiduan
1楼-- · 2020-01-16 11:08
环形队列
2个指针
一个管接收
一个管处理
只要有没有处理完的数据就处理
而接收就一个劲的接收,到尾了就从头存
luoyiming1984
2楼-- · 2020-01-16 13:11
是否可以理解为: 如果需要接收多条数据时(例如 GPS信息),选取其中最长一条数据的长短作为队列缓冲区的长度,其余小于这条信息长度的数据就可以公用这个缓冲区了对吗 原理有点像水杯与水壶的关系
liguole
3楼-- · 2020-01-16 13:11
mark
ldj7501
4楼-- · 2020-01-16 17:30
OS里“生产者-消费者”话题,用空间换时间~
装有CodeVision AVR的,可以看下系统生成的环形队列缓冲算法,记得马老师曾专题论过,称之为“串口中间件”。
16楼说得有点不对题,解决一个问题,“策略”自是多样的~

--------------------------------------------回复【17楼】liguole  
是否可以理解为: 如果需要接收多条数据时(例如 gps信息),选取其中最长一条数据的长短作为队列缓冲区的长度,其余小于这条信息长度的数据就可以公用这个缓冲区了对吗 原理有点像水杯与水壶的关系
-----------------------------------------------------------------------
“原理有点像水杯与水壶的关系”,这个比喻很形象!
“选取其中最长一条数据的长短作为队列缓冲区的长度”,>= max
reflecter
5楼-- · 2020-01-16 17:36
 精彩回答 2  元偷偷看……
Excellence
6楼-- · 2020-01-16 22:26
mark

一周热门 更多>