循环队列

2020-02-05 08:51发布

我使用循环队列收发Uart数据,每次接收中断后在中断函数中将接收的数据压入队列,现在不明白,上位机串口是一直发送的,当循环队列数据收满了之后我该如何出列?是不是队列满了需要关中断之后让数据出列。让后再开中断?不知道该如何处理。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
tiancaigao7
1楼-- · 2020-02-05 12:38
满了之后只能停止接受,否则会溢出。
myqiang1990
2楼-- · 2020-02-05 13:08
tiancaigao7 发表于 2012-7-7 19:58
满了之后只能停止接受,否则会溢出。

停止接收后......有可能导致后面的数据丢失......要么楼主弄个简单的协议,如果下位机数据满了就发一个满信号回上位机,让上位机停一会等下位机处理完了在继续发。。
tiancaigao7
3楼-- · 2020-02-05 17:18
要是有这样的机制当然好,不过这样前后都需要修改,看楼主的功力了。我已不能用双缓冲,一个缓冲区满了,启动另外一个,当前的这个用来处理数据。
lcw_swust
4楼-- · 2020-02-05 18:35
 精彩回答 2  元偷偷看……
canspider
5楼-- · 2020-02-05 18:50
流控就是用来解决这个问题的

一周热门 更多>