| 1234567891011121314151617181920212223242526272829303132333435 |
- //
- // Created by EDZ on 25-9-23.
- //
- #ifndef RING_BUFFER_H
- #define RING_BUFFER_H
- #include <stdint.h>
- #define QUEUE_SIZE 10 // 队列大小,可以根据需求调整
- typedef struct {
- uint8_t buffer[QUEUE_SIZE];
- volatile uint16_t head; // 读指针
- volatile uint16_t tail; // 写指针
- } RingBuffer;
- // 初始化
- void RingBuffer_Init(RingBuffer *q);
- // 判空
- int RingBuffer_IsEmpty(RingBuffer *q);
- // 判满
- int RingBuffer_IsFull(RingBuffer *q);
- // 入队
- int RingBuffer_Enqueue(RingBuffer *q, uint8_t data);
- // 出队
- int RingBuffer_Dequeue(RingBuffer *q, uint8_t *data);
- #endif //RING_BUFFER_H
|