FreeRTOS学习 --- 队列集
队列集简介
一个队列只允许任务间传递的消息为同一种数据类型,如果需要在任务间传递不同数据类型的消息时,那么就可以使用队列集 !
作用:用于对多个队列或信号量进行“监听”,其中不管哪一个消息到来,都可让任务退出阻塞状态
假设:有个接收任务,使用到队列集接收和信号量的获取,如下:
接收任务( ){等待队列集中消息;if(队列还是信号量) ;… …
}
队列集相关API函数介绍
| 函数 | 描述 |
| xQueueCreateSet() | 创建队列集 |
| xQueueAddToSet() | 队列添加到队列集中 |
| xQueueRemoveFromSet() | 从队列集中移除队列 |
| xQueueSelectFromSet() | 获取队列集中有有效消息的队列 |
| xQueueSelectFromSetFromISR() | 在中断中获取队列集中有有效消息的队列 |
创建队列集函数:
QueueSetHandle_t xQueueCreateSet( const UBaseType_t uxEventQueueLength );
此函数用于创建队列集。


往队列集中添加队列函数:
BaseType_t xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore ,QueueSetHandle_t xQueueSet );
此函数用于往队列集中添加队列,要注意的时,队列在被添加到队列集之前,队列中不能有有效的消息


从队列集中移除队列函数:
BaseType_t xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore , QueueSetHandle_t xQueueSet );
此函数用于从队列集中移除队列, 要注意的是,队列在从队列集移除之前,必须没有有效的消息


获取队列集中有有效消息的队列函数:
QueueSetMemberHandle_t xQueueSelectFromSet( QueueSetHandle_t xQueueSet,TickType_t const xTicksToWait )
此函数用于在任务中获取队列集中有有效消息的队列


队列集使用流程
1、启用队列集功能需要将宏configUSE_QUEUE_SETS 配置为 1
2、创建队列集
3、创建队列或信号量
4、往队列集中添加队列或信号量
5、往队列发送信息或释放信号量
6、获取队列集的消息
相关文章:
FreeRTOS学习 --- 队列集
队列集简介 一个队列只允许任务间传递的消息为同一种数据类型,如果需要在任务间传递不同数据类型的消息时,那么就可以使用队列集 ! 作用:用于对多个队列或信号量进行“监听”,其中不管哪一个消息到来,都可让…...
【R语言】R语言安装包的相关操作
一、管理R语言安装包 1、安装R包 install.packages() 2、查看已安装的R包 installed.packages() 3、更新R包 update.packages() 4、卸载R包 remove.packages() 二、加载R语言安装包 打开R语言时,基础包(base包)会自动被加载到内存中…...
15.[前端开发]Day15-HTML+CSS阶段练习(网易云音乐四)
完整代码 01_网易云-header <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…...
【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户登录
🧸安清h:个人主页 🎥个人专栏:【Spring篇】【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯1.登录-持久层 &…...
测试方案和测试计划相同点和不同点
在软件测试领域,测试方案与测试计划皆为举足轻重的关键文档,尽管它们有着紧密的关联,但在目的与内容层面存在着显著的差异。相同点: 1.共同目标:测试方案和测试计划的核心目标高度一致,均致力于保障软件的…...
c++提取矩形区域图像的梯度并拟合直线
c提取旋转矩形区域的边缘最强梯度点,并拟合直线 #include <opencv2/opencv.hpp> #include <iostream> #include <vector>using namespace cv; using namespace std;int main() {// 加载图像Mat img imread("image.jpg", IMREAD_GRAYS…...
Unity Shader Graph 2D - 角色身体电流覆盖效果
在游戏中,通常会有游戏角色受到“电击”的效果,此时游戏角色身体上会覆盖有电流,该效果能表明游戏角色的当前状态,让玩家能够获得更直观更好的体验。 那么如何实现呢 首先创建一个ShaderGraph文件,命名为Current,再创建对应的材质球M_Current。 基础的资源显示 老规矩,…...
【LLM-agent】(task4)搜索引擎Agent
note 新增工具:搜索引擎Agent 文章目录 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加载环境变量 load_dotenv() # 初始化变量 base_url None chat_model None api_key None# 使用with语句打开文件…...
携程Java开发面试题及参考答案 (200道-下)
insert 一行数据的时候加的是什么锁?为什么? 在 MySQL 中,当执行 INSERT 操作插入一行数据时,加锁的情况会因存储引擎和具体的事务隔离级别而有所不同。一般来说,在 InnoDB 存储引擎下,INSERT 操作加的是行级排他锁(Row Exclusive Lock),以下详细说明原因。 行级排他…...
GWO优化SVM回归预测matlab
灰狼优化算法(Grey Wolf Optimizer,简称 GWO),是由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出的群智能优化算法。该算法的设计灵感源自灰狼群体的捕食行为,核心思想是对灰狼社会的结构与行为模式进行模仿。 …...
QMK启用摇杆和鼠标按键功能
虽然选择了触摸屏,我仍选择为机械键盘嵌入摇杆模块,这本质上是对"操作连续性"的执着。 值得深思的是,本次开发过程中借助DeepSeek的代码生成与逻辑推理,其展现的能力已然颠覆传统编程范式,需求描述可自动…...
Unity实现按键设置功能代码
一、前言 最近在学习unity2D,想做一个横版过关游戏,需要按键设置功能,让用户可以自定义方向键与攻击键等。 自己写了一个,总结如下。 二、界面效果图 这个是一个csv文件,准备第一列是中文按键说明,第二列…...
基于物联网技术的实时数据流可视化研究(论文+源码)
1系统方案设计 根据系统功能的设计要求,展开基于物联网技术的实时数据流可视化研究设计。如图2.1所示为系统总体设计框图,系统以STM32单片机做为主控制器,通过DHT11、MQ-2、光照传感器实现环境中温湿度、烟雾、光照强度数据的实时检测&#x…...
list容器(详解)
1. list的介绍及使用 1.1 list的介绍(双向循环链表) https://cplusplus.com/reference/list/list/?kwlist(list文档介绍) 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭…...
Elasticsearch基本使用详解
文章目录 Elasticsearch基本使用详解一、引言二、环境搭建1、安装 Elasticsearch2、安装 Kibana(可选) 三、索引操作1、创建索引2、查看索引3、删除索引 四、数据操作1、插入数据2、查询数据(1)简单查询(2)…...
17.3.4 颜色矩阵
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 17.3.4.1 矩阵基本概念 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,类似于数组。 由…...
FPGA 时钟多路复用
时钟多路复用 您可以使用并行和级联 BUFGCTRL 的组合构建时钟多路复用器。布局器基于时钟缓存 site 位置可用性查找最佳布局。 如果可能,布局器将 BUFGCTRL 布局在相邻 site 位置中以利用专用级联路径。如无法实现,则布局器将尝试将 BUFGCTRL 从…...
机器学习10
自定义数据集 使用scikit-learn中svm的包实现svm分类 代码 import numpy as np import matplotlib.pyplot as pltclass1_points np.array([[1.9, 1.2],[1.5, 2.1],[1.9, 0.5],[1.5, 0.9],[0.9, 1.2],[1.1, 1.7],[1.4, 1.1]])class2_points np.array([[3.2, 3.2],[3.7, 2.9],…...
【Block总结】CoT,上下文Transformer注意力|即插即用
一. 论文信息 标题: Contextual Transformer Networks for Visual Recognition论文链接: arXivGitHub链接: https://github.com/JDAI-CV/CoTNet 二. 创新点 上下文Transformer模块(CoT): 提出了CoT模块,能够有效利用输入键之间的上下文信息…...
linux库函数 gettimeofday() localtime的概念和使用案例
在Linux系统中,gettimeofday() 和 localtime() 是两个常用的时间处理函数,分别用于获取高精度时间戳和将时间戳转换为本地时间。以下是它们的概念和使用案例的详细说明: 1. gettimeofday() 函数 概念 功能:获取当前时间…...
数据库——(DB、DBMS、SQL)
数据库——(DB、DBMS、SQL) 前言数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满…...
Boss-Key终极指南:一键隐藏窗口,打造高效安全的办公环境
Boss-Key终极指南:一键隐藏窗口,打造高效安全的办公环境 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在数字化办…...
260513实训:路由器连接
路由器工作原理: 转发动作:路由器收到数据后,根据目的IP地址查路由器路由表(地图)转发 路由表:路由器默认会将直连网段加入路由表 查看IP路由表:display ip routing-table 127.0.0.0/8 本地环…...
Perplexity引用溯源失效的5个致命盲区:从数据管道到渲染层的全链路修复手册
更多请点击: https://intelliparadigm.com 第一章:Perplexity引用透明度优化的底层逻辑与设计哲学 Perplexity 作为衡量语言模型输出不确定性的核心指标,其引用透明度(Referential Transparency)并非天然具备——当同…...
Timer 时序大模型云服务来了!TimechoAI 开放邀请体验
本文约4000字,建议阅读5分钟 基于时序大模型 Timer,面向时序预测与智能分析的 TimechoAI 时序大模型云服务期待您参与内测!企业今天并不缺时序数据。真正稀缺的,是如何把这些持续积累的历史数据更低门槛地利用起来,为业…...
WinHex不只是编辑器:手把手教你用它做磁盘镜像与克隆(避坑指南)
WinHex专业磁盘镜像与克隆实战指南:从取证备份到避坑技巧 1. 为什么WinHex是磁盘操作的首选利器 在数据恢复和取证领域,专业工具的选择往往决定了工作的成败。WinHex作为一款久经考验的十六进制编辑器,其功能远超出普通用户的想象。不同于常规…...
五分钟完成python脚本对接taotoken多模型api的教程
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 五分钟完成Python脚本对接Taotoken多模型API的教程 对于希望快速接入多个主流大模型的Python开发者而言,Taotoken提供的…...
轻量级网页自动化工具 xiaoclaw:基于 CDP 的高效实践指南
1. 项目概述:一个轻量级、可编程的网页自动化工具最近在折腾一些需要自动处理网页数据的小项目,比如定时抓取某个网站的价格变动、自动填写表单、或者模拟一些重复性的点击操作。一开始想用传统的Selenium,但总觉得它有点“重”,启…...
从原理图到GDS:半定制数字反相器版图实战全流程解析
1. 半定制数字反相器版图设计入门 刚接触IC设计的朋友们,看到"从原理图到GDS"这个流程可能会觉得头大。别担心,咱们今天就用最接地气的方式,手把手带你完成一个数字反相器的版图设计。这个看似简单的反相器,其实包含了M…...
工业 DC-DC 性能深度对比解析|钡特电源 DF1-05D15LS 与 E0515S-1WR3 封装互通
在工业控制、仪器仪表、低功耗传感设备等场景中,1W 级隔离工业 DC-DC 模块因体积小、功率密度高、适配性强,成为硬件研发工程师常用的直流电源模块核心器件。随着国产化进程加速,国产工业 DC-DC 模块在性能、稳定性、性价比上逐步实现突破&am…...
