Files
99_7018_lmx/apps/earphone/xtell_Sensor/circle_buffer.h

55 lines
1.6 KiB
C
Raw Normal View History

2025-10-30 11:33:38 +08:00
#ifndef CIRCLE_BUFFER_H
#define CIRCLE_BUFFER_H
#include "system/includes.h"
// 定义环形缓冲区的结构体
typedef struct {
u8 *buffer; // 缓冲区指针
u16 capacity; // 缓冲区总容量
u16 head; // 头部指针(写入位置)
u16 tail; // 尾部指针(读取位置)
u16 size; // 当前已用大小
} circle_buffer_t;
/**
* @brief
* @param cb
* @param buffer
* @param capacity
*/
void circle_buffer_init(circle_buffer_t *cb, u8 *buffer, u16 capacity);
/**
* @brief
* @param cb
* @param data
* @param length
* @return
*/
u16 circle_buffer_write(circle_buffer_t *cb, const u8 *data, u16 length);
/**
* @brief
* @param cb
* @param data
* @param length
* @return
*/
u16 circle_buffer_read(circle_buffer_t *cb, u8 *data, u16 length);
/**
* @brief
* @param cb
* @return
*/
u16 circle_buffer_get_size(circle_buffer_t *cb);
/**
* @brief
* @param cb
* @return
*/
u16 circle_buffer_get_free_space(circle_buffer_t *cb);
#endif // CIRCLE_BUFFER_H