[PIC®/AVR®/dsPIC®产品] 你知道环形缓冲区如何使用吗

[复制链接]
3555|45
小岛西岸来信 发表于 2026-5-1 13:44 | 显示全部楼层
环形缓冲区是循环队列,固定大小、首尾相连,适合 DMA+ADC 连续采集。使用方法:初始化缓冲区、读写指针;DMA 自动写入数据,CPU 从缓冲区读取;指针到达末尾自动回绕。可避免数据覆盖,实现无阻塞收发,不丢采样数据,大幅降低 CPU 占用。
总结
环形缓冲区 = 固定大小循环存储,配合 DMA 做数据缓存,实现无阻塞、不丢数、低 CPU 占用的连续数据处理。
旧年胶片 发表于 2026-5-14 14:59 | 显示全部楼层
环形缓冲区用读、写指针管理固定大小数组,实现数据无覆盖循环存储。写数据时移动写指针,读数据时移动读指针,指针到末尾自动回绕。判断空 / 满区分状态,适合串口、I2C 等数据流缓存,不丢数据、不浪费空间,中断与主程序异步传输时最常用。
旧年胶片 发表于 2026-5-15 14:59 | 显示全部楼层
环形缓冲区依托头尾指针与固定缓存数组,写入数据更新尾指针,读取移动头指针。指针溢出自动归零循环复用,通过头尾差值判空满。常用于串口、ADC 等异步收发,隔离中断与主循环,减少数据丢失,规避频繁内存操作,提升单片机数据传输稳定性。
夜晚有三年 发表于 2026-6-23 15:42 | 显示全部楼层
环形缓冲区用读、写两个指针管理固定大小数组,写入数据到写指针位置并后移,读出数据从读指针位置取并后移,指针到末尾自动回绕。
判断空:读指针 = 写指针;判断满:写指针下一位 = 读指针。
适合串口、传感器等数据流收发,无内存碎片,效率高,嵌入式最常用。
heisexingqisi 发表于 2026-6-25 19:19 | 显示全部楼层
环形缓冲区(Ring Buffer / Circular Buffer)是固定长度、先进先出 FIFO的数据结构,用数组模拟环形,靠两个指针(头read、尾write)读写,解决普通数组频繁移位的性能问题,常用于:串口收发、音视频流、日志缓存、多线程生产者消费者。
花开了相爱吧 发表于 2026-6-26 15:49 | 显示全部楼层
环形缓冲区是先进先出的循环队列,用于数据缓存。定义固定大小数组 + 读写指针,写入时数据存到写指针位置并自增,读取时从读指针取数并自增,指针到末尾自动回绕。通过判空、判满逻辑避免越界,适合串口、中断等异步数据传输,效率高、不碎片化。
总结
核心:固定数组 + 读写指针 + 循环回绕,用于高效缓存异步数据,嵌入式常用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0