当前位置: 首页 > news >正文

单片机程序常用的消息队列

// 队列缓存长度,电磁炉场景可设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队空,数据存入*dat

uint8_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);

}

http://www.jsqmd.com/news/1139013/

相关文章:

  • 计算机毕业设计之jsp旅行社网站的设计与实现
  • Trae:面向电子取证的可编程自动化代理与Skills机制解析
  • SKILL.md 文件怎么写?(手把手教程)
  • 刚性编队控制:去中心化无人机集群的SE(3)分布式实现
  • 全网资源下载终极指南:一键获取微信视频号、抖音、快手等平台内容
  • 36岁大龄前端转行AI大模型应用开发的思考
  • 2026高性价比数字人平台怎么选?从预算、口型、批量出片到商用权限一次讲清(CSDN投稿优化版)
  • 无源RFID标签在贵重固定资产远程监控中的应用边界与性能测试
  • 30天爆卖超500万元,这家深圳工具品牌让欧美巨头坐不住了 | 品牌出海
  • Krea2高清成片链升级:原生4K/6K AI绘画技术解析与实践
  • ROP-RAS3:面向嵌入式平台的在线POMDP长时域规划框架
  • NOV Chart for .NET 2026.1使用调色板填充模式自定义图表外观
  • 水面无人艇无GPS协同绕靶:分布式感知与共识控制实战
  • 企业AI问答系统为啥用不了?RAG链路优化全攻略!
  • 别再走弯路!2026亲测好用的AI写作辅助软件|实测避坑硬核版
  • 开发者平台和国产AI基础设施的叙事
  • 脑后二维码技术解析:从图像生成到AR特效的实现原理
  • 百年IBM:从打孔卡到量子计算,一部跨越世纪的科技史诗
  • 分布无关的谱风险控制:自动驾驶安全规划新范式
  • VXLAN + EVPN 分布式部署
  • 光伏储能一体机系统设计:从5kW户用到500kW工商业的3种典型配置方案
  • 开发者选择转向工作流,云服务提供商如何在开发各阶段破局?
  • 视觉语言模型驱动的机器人安全动作过滤框架
  • struct结构体的自引用和交叉互相引用需要前向typedef
  • 超声波雾化器PCB设计3要点:从15W加湿到6W香薰的电源与EMC考量
  • OpenClaw飞书多Agent集成四步契约:Binding注册、Skill隔离、路由策略与PSM闭环
  • 全国第六、江苏第一!苏州这所国际学校AI 教学已经甩开同行一大截
  • 快速浏览Silverlight3 Beta:在浏览器外运行Silverlight应用
  • iphtml vs 其他代理 IP:对比测评
  • 曲辕RPA-修改列表指定位置项的值