
// 队列缓存长度电磁炉场景可设64/128#define QUEUE_MAX_LEN 64// 队列结构体typedef struct{uint8_t buf[QUEUE_MAX_LEN];uint8_t front; // 队头出队uint8_t rear; // 队尾入队uint8_t count; // 当前有效数据个数} Queue_t;// 函数声明void Queue_Init(Queue_t *q);//初始化队列uint8_t Queue_Enqueue(Queue_t *q, uint8_t dat);//入列uint8_t Queue_Dequeue(Queue_t *q, uint8_t *dat);//出列uint8_t Queue_IsEmpty(Queue_t *q);//队列是否为空uint8_t Queue_IsFull(Queue_t *q);//队列是否满了// 队列初始化void Queue_Init(Queue_t *q){q-front 0;q-rear 0;q-count 0;}// 入队返回1成功0队列满uint8_t Queue_Enqueue(Queue_t *q, uint8_t dat){if(Queue_IsFull(q))return 0;q-buf[q-rear] dat;q-rear (q-rear 1) % QUEUE_MAX_LEN;q-count;return 1;}// 出队返回1成功0队空数据存入*datuint8_t Queue_Dequeue(Queue_t *q, uint8_t *dat){if(Queue_IsEmpty(q)) return 0;*dat q-buf[q-front];q-front (q-front 1) % QUEUE_MAX_LEN;q-count--;return 1;} // 判断空uint8_t Queue_IsEmpty(Queue_t *q){return (q-count 0);}// 判断满uint8_t Queue_IsFull(Queue_t *q){return (q-count QUEUE_MAX_LEN);}