0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

缓冲区是啥意思 STM32串口数据接收之环形缓冲区

ss 来源:博客园、CSDN 作者:Fireflycjd、IT_阿水 2021-07-22 15:33 次阅读

缓冲区顾名思义是缓冲数据用的。实现缓冲区最简单的办法时,定义多个数组,接收一包数据到数组A,就把接收数据的地址换成数组B,每个数据有个标记字节用于表示这个数组是否收到数据,收到数据是否处理完成。

缺点:

①缓冲数据组数一定,且有多变量,代码结构不太清晰。

②接收数据长度可能大于数组大小,也可能小于数组大小。不灵活,需要接收数据很长时容易出错,且内存利用率低。

解决这个问题的好办法是:环形缓冲区。

环形缓冲区简介

环形缓冲区就是一个带“头指针”和“尾指针”的数组。在单片机中串口通信是我们使用最频繁的,使用串口通信就会用到串口的数据接收与发送,环形缓冲区方式接收数据可以更好的保证数据丢帧率第。

在通信程序中,经常使用环形缓冲器作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。

环形缓冲区的一个有用特性是:当一个数据元素被用掉后,其余数据元素不需要移动其存储位置。相反,一个非圆形缓冲区(例如一个普通的队列)在用掉一个数据元素后,其余数据元素需要向前搬移。换句话说,环形缓冲区适合实现先进先出缓冲区,而非环形缓冲区适合后进先出缓冲区。

整合自:博客园、CSDN

编辑:jq

  • STM32
    +关注

    关注

    2151

    文章

    8989

    浏览量

    343543
收藏 人收藏

    评论

    相关推荐

    STM32进阶串口环形缓冲区实现

    串口缓冲区的实现串口环形缓冲区收发:在很多入门级教程中,我们知道的串口收发都是:接收一个数据,触发中断,然后把数据发回来。这种处理方式是没有缓冲的,当数量太大的时候,亦或者当
    发表于 06-08 14:03

    STM32串口环形缓冲区的实现

    串口缓冲区的实现: 串口环形缓冲区收发:在很多入门级教程中,我们知道的串口收发都是:接收一个数据,触发中断,然后把数据发回来。这种处理方式是没有缓冲的,当数量太大的时候,亦或
    发表于 10-16 11:40

    STM32串口环形缓冲区的实现方法

    STM32串口环形缓冲区的实现
    发表于 12-24 07:30

    环形缓冲区简介

    STM32串口数据接收 --环形缓冲区环形缓冲区简介  在单片机中串口通信是我们使用最频繁的,使用串口通信就会用到串口数据接收与发送,环形缓冲区方式
    发表于 08-17 06:56

    如何实现STM32串口环形缓冲区

    STM32串口环形缓冲区
    发表于 12-08 06:13

    怎样去使用STM32串口驱动不定长数据接收环形缓冲区

    STM32串口驱动不定长数据接收环形缓冲区呢?有哪些注意事项?
    发表于 12-08 08:08

    请问串口的DMA接收缓冲区是不是环形缓冲区

    串口的DMA接收缓冲区是不是环形缓冲区?通过阅读串口部分的代码,我了解到这样几点:1、串口的DMA接收时循环接收,当缓冲区满了会重新从头开始覆盖掉之前的数据,和
    发表于 08-30 14:27

    STM32串口数据接收 --环形缓冲区

    STM32串口数据接收 --环形缓冲区环形缓冲区简介  在单片机中串口通信是我们使用最频繁的,使用串口通信就会用到串口数据接收与发送,环形缓冲区方式
    发表于 12-28 19:24 27次下载
    <b>STM32</b><b>串口</b><b>数据</b><b>接收</b> --<b>环形</b><b>缓冲区</b>

    环形缓冲区的实现原理

    环形缓冲区作为数据结构来存放通信中发送和接收数据环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。
    的头像 发表于 03-22 10:03 6552次阅读
    <b>环形</b><b>缓冲区</b>的实现原理

    环形缓冲区简介 STM32环形缓冲区示例

    串口通信是我们使用最频繁的,使用串口通信就会用到串口数据接收与发送,环形缓冲区方式接收数据可以更好的保证数据丢帧率第。
    的头像 发表于 05-31 11:27 3654次阅读
    <b>环形</b><b>缓冲区</b>简介 <b>STM32</b><b>环形</b><b>缓冲区</b>示例

    环形缓冲区的实现思路

    串口通信,通过通信来实现上位机和单片机程序的数据交互。通信中为了实现正常的收发,一般都会有对应的发送和接收缓存来暂存通信数据。这里使用环形缓冲区的方式来设计数据收发的缓存,即缓冲区溢出后,从缓冲区数组
    的头像 发表于 01-17 15:07 575次阅读

    下载硬声App