目录
- 前言
- 环形队列
- 环形队列程序设计
前言
由于串口中断服务函数处理串口的数据寄存器的数据时,存储数据和处理数据需要一定的时间,所以接收数据的频率不能太快。为了解决这个问题,在中断服务函数中将串口的数据寄存器值存储在环形队列中,只做存储功能,处理数据的功能放在主函数中。这样一来,就不会遗漏任何一个字节的数据。
环形队列
串口的数据寄存器可以存放一个字节的数据,通过非空标志位触发中断,在中断服务函数中把数据存放在环形队列中,并清除标志位。等待下一次中断。环形队列就是一个蓄水池,不管数据多少,先装下不浪费。
环形队列程序设计
typedef struct
{
uint32_t head; //数组下标,指向队头
uint32_t tail;
本文介绍了如何使用环形队列解决串口数据接收速率过快的问题,通过中断服务函数将数据暂存队列,主函数再进行处理。详细描述了队列结构、初始化方法及数据压入、弹出操作的函数实现。
订阅专栏 解锁全文
808

被折叠的 条评论
为什么被折叠?



