串口接收的环形队列

2020-01-14 18:58发布

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

是这个意思么,有没有实际运用啊,或者说有个 例子看看
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
34条回答
ldj7501
2020-01-16 17:30
OS里“生产者-消费者”话题,用空间换时间~
装有CodeVision AVR的,可以看下系统生成的环形队列缓冲算法,记得马老师曾专题论过,称之为“串口中间件”。
16楼说得有点不对题,解决一个问题,“策略”自是多样的~

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

一周热门 更多>