加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ring_buffer.h 1.76 KB
一键复制 编辑 原始数据 按行查看 历史
netube 提交于 2022-09-25 17:33 . 修改RBC的初始化参数数据类型
/**
* \file ring_buffer.h
* \brief 简易环形缓冲相关定义与声明
* \author netube_99\netube@163.com
* \date 2022.08.20
* \version v0.4.0
*/
#ifndef _RING_BUFFER_H_
#define _RING_BUFFER_H_
//返回值定义
#define RING_BUFFER_SUCCESS 0x01
#define RING_BUFFER_ERROR 0x00
//环形缓冲区结构体
typedef struct
{
uint32_t head ; //操作头指针
uint32_t tail ; //操作尾指针
uint32_t Length ; //已储存的数据量
uint8_t *array_addr ; //缓冲区储存数组基地址
uint32_t max_Length ; //缓冲区最大可储存数据量
}ring_buffer;
uint8_t RB_Init(ring_buffer *rb_handle, uint8_t *buffer_addr ,uint32_t buffer_size); //初始化基础环形缓冲区
uint8_t RB_Delete(ring_buffer *rb_handle, uint32_t Length); //从头指针开始删除指定长度的数据
uint8_t RB_Write_Byte(ring_buffer *rb_handle, uint8_t data); //向缓冲区尾指针写一个字节
uint8_t RB_Write_String(ring_buffer *rb_handle, uint8_t *input_addr, uint32_t write_Length); //向缓冲区尾指针写指定长度数据
uint8_t RB_Read_Byte(ring_buffer *rb_handle, uint8_t *output_addr); //从缓冲区头指针读一个字节
uint8_t RB_Read_String(ring_buffer *rb_handle, uint8_t *output_addr, uint32_t read_Length); //从缓冲区头指针读指定长度数据
uint32_t RB_Get_Length(ring_buffer *rb_handle); //获取缓冲区里已储存的数据长度
uint32_t RB_Get_FreeSize(ring_buffer *rb_handle); //获取缓冲区可用储存空间
#endif//#ifndef _RING_BUFFER_H_
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化