// // Created by EDZ on 25-9-23. // #ifndef RING_BUFFER_H #define RING_BUFFER_H #include #include "string.h" #define QUEUE_SIZE 30 // 队列大小,可以根据需求调整 #define DATA_SIZE 12 //存储一组数据 typedef struct { uint8_t buffer[QUEUE_SIZE][DATA_SIZE]; volatile uint16_t head; // 读指针 volatile uint16_t tail; // 写指针 } RingBuffer; // 初始化 void RingBuffer_Init(RingBuffer *q); // 判空 int RingBuffer_IsEmpty(RingBuffer *q); // 返回1表示队列为空,返回0表示队列不为空 // 判满 int RingBuffer_IsFull(RingBuffer *q); // 返回1表示队列已满,返回0表示队列未满 // 入队 int RingBuffer_Enqueue(RingBuffer *q, const uint8_t *data); // 出队 int RingBuffer_Dequeue(RingBuffer *q, uint8_t *data); #endif //RING_BUFFER_H