这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 环形缓冲区(RingBuffer)算法在单片机串口通信中的应用

共7条 1/1 1 跳转至

环形缓冲区(RingBuffer)算法在单片机串口通信中的应用

工程师
2020-08-05 21:54:02     打赏

串口通信,在单片机的应用中使用很普遍,但大家有没有考虑到数据收发的时效性?


比如: 串口数据接收, 如果数据量过大, 很可能来不及处理这些数据, 因此需要把接收的数据存放到一个位置缓存, 待空闲时间处理, 防止接收的数据丢失; 环形缓冲区越大, 那么可以缓存的数据就越多, 这样就是以空间换时间的做法。


下面我们来讲讲:环形缓冲区(Ring Buffer)算法在单片机串口通信中的应用


此软件算法范例的编程步骤:


UART初始化, 打开串口发送和接收;

UART中断优先级配置NVIC;

环形缓冲区定义

环形缓冲区数据接收: 在串口中断中读取收到的数据到环形缓冲;

环形缓冲区数据发送: 在主程序中把环形缓冲区的数据发送给串口;


主要源码如下:


#define RINGBUFF_LEN    200     //定义最大接收字节数
#define FLASE   1
#define TRUE    0







 





关键词: 环形缓冲区     Buffer     算法     串口通信    

工程师
2020-08-05 22:14:50     打赏
2楼

正好用到,谢谢!


工程师
2020-08-05 22:23:04     打赏
3楼

空间换时间的技术!收藏了!


工程师
2020-08-05 22:29:31     打赏
4楼

这个代码好像是STM32 的


工程师
2020-08-05 23:06:38     打赏
5楼

厉害哦


菜鸟
2020-09-17 19:06:50     打赏
6楼

借鉴学习下


高工
2020-09-19 22:48:14     打赏
7楼

不错不错


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]