FreeRTOS队列及队列集操作示例
队列QueueHandle_t xQueue; /* 定义队列 */ #define QUEUE_LENGTH 5 /* 队列支持的消息个数 */ #define QUEUE_ITEM_SIZE sizeof(uint8_t) /* 队列中每条消息的大小 */ /* 创建队列 */ xQueue xQueueCreate(QUEUE_LENGTH, QUEUE_ITEM_SIZE); /** * brief task1 * param pvParameters : 传入参数(未用到) * retval 无 */ void task1(void *pvParameters) { uint8_t key 0; while (1) { key key_scan(0); if (key ! 0) { xQueueSend(xQueue, key, portMAX_DELAY); /* 将键值作为消息发送到队列中 */ } vTaskDelay(10); } } /** * brief task2 * param pvParameters : 传入参数(未用到) * retval 无 */ void task2(void *pvParameters) { uint8_t queue_recv 0; uint32_t task2_num 0; while (1) { xQueueReceive(xQueue, queue_recv, portMAX_DELAY); switch (queue_recv) { case KEY0_PRES: /* LCD区域刷新 */ { lcd_fill(6, 131, 233, 313, lcd_discolor[task2_num % 11]); break; } case KEY1_PRES: /* LED1闪烁 */ { LED0_TOGGLE(); break; } default: { break; } } } }队列集static QueueSetHandle_t xQueueSet; /* 定义一个队列集 */ QueueHandle_t xQueue1; /* 定义队列1 */ QueueHandle_t xQueue2; /* 定义队列2 */ #define QUEUE_LENGTH 1 /* 队列支持的消息个数 */ #define QUEUE_ITEM_SIZE sizeof(uint32_t) /* 队列中每条消息的大小 */ #define QUEUESET_LENGTH (2 * QUEUE_LENGTH) /* 队列集支持的消息个数 */ #define EVENTBIT_0 (1 0) /* 事件位 */ #define EVENTBIT_1 (1 1) #define EVENTBIT_ALL (EVENTBIT_0 | EVENTBIT_1) /* 创建队列集 */ xQueueSet xQueueCreateSet(QUEUESET_LENGTH); /* 创建队列 */ xQueue1 xQueueCreate(QUEUESET_LENGTH, QUEUE_ITEM_SIZE); xQueue2 xQueueCreate(QUEUESET_LENGTH, QUEUE_ITEM_SIZE); /* 将队列添加到队列集中 */ xQueueAddToSet(xQueue1, xQueueSet); xQueueAddToSet(xQueue2, xQueueSet); /** * brief task1 * param pvParameters : 传入参数(未用到) * retval 无 */ void task1(void *pvParameters) { uint8_t key 0; uint8_t eventbit_0 EVENTBIT_0; uint8_t eventbit_1 EVENTBIT_1; while (1) { key key_scan(0); switch (key) { case KEY0_PRES: /* 队列1发送消息 */ { xQueueSend(xQueue1, eventbit_0, portMAX_DELAY); break; } case KEY1_PRES: /* 队列2发送消息 */ { xQueueSend(xQueue2, eventbit_1, portMAX_DELAY); break; } default: { break; } } vTaskDelay(10); } } /** * brief task2 * param pvParameters : 传入参数(未用到) * retval 无 */ void task2(void *pvParameters) { uint32_t event_val 0; uint32_t event_recv 0; QueueSetMemberHandle_t activate_member NULL; uint32_t task2_num 0; while (1) { activate_member xQueueSelectFromSet(xQueueSet, portMAX_DELAY); /* 等待队列集中的队列接收到消息 */ xQueueReceive(activate_member, event_recv, portMAX_DELAY); /* 接收队列中的消息 */ event_val | event_recv; /* 接收到的消息存入事件中 */ lcd_show_xnum(182, 110, event_val, 1, 16, 0, BLUE); /* 将事件值显示在LCD上 */ if (event_val EVENTBIT_ALL) /* 所有事件都发生 */ { event_val 0; lcd_fill(6, 131, 233, 313, lcd_discolor[task2_num % 11]); /* LCD区域刷新 */ } } }

相关新闻

python处理批量有序png图片生成pdf文件

python处理批量有序png图片生成pdf文件

在我上一篇的需求中,有编写程序,截取屏幕指定区域,批量生成有序png图像的需求,为了便于阅读,最终需求是将所有有序序列的图像按照顺序,合成为一个pdf文件,最好能够顺便压缩一下清晰图。本篇应用…

2026/7/25 20:50:52阅读更多 →
WordPress外贸B2B独立站搭建全流程:从环境部署到询盘优化

WordPress外贸B2B独立站搭建全流程:从环境部署到询盘优化

很多外贸企业在数字化转型过程中面临一个关键选择:如何快速搭建一个专业、稳定且能持续获取海外询盘的B2B独立站。传统SAAS建站虽然上手快,但长期受限于功能定制性和数据自主权。本文将手把手带你从零开始,用WordPress搭建一个完整的外贸B2B询…

2026/7/25 20:50:52阅读更多 →
Claude Code 终端 AI 助手:配置 DeepSeek API 实现高效编程对话

Claude Code 终端 AI 助手:配置 DeepSeek API 实现高效编程对话

如果你已经习惯了在 IDE 里用 Copilot 或者 Cursor 的“Cmd+K”来写代码,那么今天这个工具可能会让你换一种思路: 把 AI 编程助手从编辑器里“请”出来,放到一个独立的、专注的终端窗口里。 我说的就是 Claude Code。它不是一个插件,而是一个运行在终端里的独立应用。你…

2026/7/25 20:50:52阅读更多 →
AI协作工具宏智树:提升毕业论文写作效率

AI协作工具宏智树:提升毕业论文写作效率

1. 项目概述作为一名深耕教育领域多年的从业者,我见证了太多学生在毕业论文写作过程中的痛苦与挣扎。那种熬夜赶稿、反复修改、焦虑不安的状态,几乎成了每个毕业生的"必修课"。但今天我要分享的,是一种全新的写作方式——通过AI协作…

2026/7/25 22:05:12阅读更多 →
暗黑2存档编辑器终极解决方案:d2s-editor让你5分钟成为游戏大师

暗黑2存档编辑器终极解决方案:d2s-editor让你5分钟成为游戏大师

暗黑2存档编辑器终极解决方案:d2s-editor让你5分钟成为游戏大师 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2的漫长刷装备过程感到疲惫吗?d2s-editor暗黑2存档编辑器正是你需要的开源…

2026/7/25 22:05:12阅读更多 →
AI招聘系统:核心技术解析与效率提升实践

AI招聘系统:核心技术解析与效率提升实践

1. 招聘效率困境与AI破局之道去年帮某互联网公司优化招聘流程时,发现HR团队平均每周要处理超过2000份简历,而用人部门还在抱怨人才到岗速度太慢。这种矛盾现状正是当前招聘领域的典型痛点:传统人工筛选就像用渔网捞金矿,既消耗大量…

2026/7/25 22:05:12阅读更多 →
多模态AI核心技术解析与工业实践指南

多模态AI核心技术解析与工业实践指南

1. 多模态AI的破圈时刻:当视觉与语言开始对话上周调试一个跨模态检索系统时,突然发现模型竟能准确识别出我随手画的简笔画"戴着墨镜的狗在冲浪"——这个瞬间让我意识到,多模态AI已经从实验室走向了真实世界。这种能同时处理图像、文…

2026/7/25 22:05:12阅读更多 →
AI教材生成技术:降重与高效编写的实践指南

AI教材生成技术:降重与高效编写的实践指南

1. 项目背景与核心价值去年帮某教育机构做课程开发时,他们提出个头疼的问题:现有教材查重率普遍超过35%,而行业要求必须控制在15%以下。传统人工改写不仅耗时耗力,还经常破坏知识体系的连贯性。这促使我开始系统研究AI教材生成技术…

2026/7/25 22:05:12阅读更多 →
建筑设计AI标准化框架:解决行业痛点的关键技术

建筑设计AI标准化框架:解决行业痛点的关键技术

1. 项目背景与行业痛点建筑设计行业正经历着从传统手工绘图到数字化设计的转型浪潮。过去三年间,全球Top 100建筑事务所中已有87家部署了某种形式的AI设计工具,但缺乏统一标准导致的兼容性问题使行业每年浪费约37亿美元的重建成本。我在参与上海某超高层…

2026/7/25 22:03:12阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →