一,为什么要使用环形队列来发送数据?是为了解决什么问题呢!
这节说了怎么用中断发送数据,但是大家是否想过,这种中断发送有个bug,看一下下面的
看到了没 本来想让他回复 qwertyuioaqwertyuioa 而回复的是 qqwertyuioa
其实bug显而易见,由于发送不再占用主循环,所以下一条指令会立即发送!那么就把第一条冲掉了
现在的想法是需要有个缓存,我不停的往缓存里面写数据,串口发送中断不停的从缓存里面取出来,然后发出去! 直接利用环形队列是很好的选择. 我把发送的数据写入环形队列,然后打开串口发送中断 串口发送中断里面判断环形队列里面的数据个数是不是大于0,如果是就读出来发出去!
|
哦~讲解的浅显易懂,大致了解了为啥了。
我一看就想继续看。因为我就是用小学时代的串口发送数据