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

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】电脑商城项目之用户登录

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;1.登录-持久层 &…...

测试方案和测试计划相同点和不同点

在软件测试领域&#xff0c;测试方案与测试计划皆为举足轻重的关键文档&#xff0c;尽管它们有着紧密的关联&#xff0c;但在目的与内容层面存在着显著的差异。相同点&#xff1a; 1.共同目标&#xff1a;测试方案和测试计划的核心目标高度一致&#xff0c;均致力于保障软件的…...

c++提取矩形区域图像的梯度并拟合直线

c提取旋转矩形区域的边缘最强梯度点&#xff0c;并拟合直线 #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 新增工具&#xff1a;搜索引擎Agent 文章目录 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加载环境变量 load_dotenv() # 初始化变量 base_url None chat_model None api_key None# 使用with语句打开文件&#xf…...

携程Java开发面试题及参考答案 (200道-下)

insert 一行数据的时候加的是什么锁?为什么? 在 MySQL 中,当执行 INSERT 操作插入一行数据时,加锁的情况会因存储引擎和具体的事务隔离级别而有所不同。一般来说,在 InnoDB 存储引擎下,INSERT 操作加的是行级排他锁(Row Exclusive Lock),以下详细说明原因。 行级排他…...

GWO优化SVM回归预测matlab

灰狼优化算法&#xff08;Grey Wolf Optimizer&#xff0c;简称 GWO&#xff09;&#xff0c;是由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出的群智能优化算法。该算法的设计灵感源自灰狼群体的捕食行为&#xff0c;核心思想是对灰狼社会的结构与行为模式进行模仿。 …...

QMK启用摇杆和鼠标按键功能

虽然选择了触摸屏&#xff0c;我仍选择为机械键盘嵌入摇杆模块&#xff0c;这本质上是对"操作连续性"的执着。   值得深思的是&#xff0c;本次开发过程中借助DeepSeek的代码生成与逻辑推理&#xff0c;其展现的能力已然颠覆传统编程范式&#xff0c;需求描述可自动…...

Unity实现按键设置功能代码

一、前言 最近在学习unity2D&#xff0c;想做一个横版过关游戏&#xff0c;需要按键设置功能&#xff0c;让用户可以自定义方向键与攻击键等。 自己写了一个&#xff0c;总结如下。 二、界面效果图 这个是一个csv文件&#xff0c;准备第一列是中文按键说明&#xff0c;第二列…...

基于物联网技术的实时数据流可视化研究(论文+源码)

1系统方案设计 根据系统功能的设计要求&#xff0c;展开基于物联网技术的实时数据流可视化研究设计。如图2.1所示为系统总体设计框图&#xff0c;系统以STM32单片机做为主控制器&#xff0c;通过DHT11、MQ-2、光照传感器实现环境中温湿度、烟雾、光照强度数据的实时检测&#x…...

list容器(详解)

1. list的介绍及使用 1.1 list的介绍&#xff08;双向循环链表&#xff09; https://cplusplus.com/reference/list/list/?kwlist&#xff08;list文档介绍&#xff09; 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭…...

Elasticsearch基本使用详解

文章目录 Elasticsearch基本使用详解一、引言二、环境搭建1、安装 Elasticsearch2、安装 Kibana&#xff08;可选&#xff09; 三、索引操作1、创建索引2、查看索引3、删除索引 四、数据操作1、插入数据2、查询数据&#xff08;1&#xff09;简单查询&#xff08;2&#xff09;…...

17.3.4 颜色矩阵

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 17.3.4.1 矩阵基本概念 矩阵&#xff08;Matrix&#xff09;是一个按照长方阵列排列的复数或实数集合&#xff0c;类似于数组。 由…...

FPGA 时钟多路复用

时钟多路复用 您可以使用并行和级联 BUFGCTRL 的组合构建时钟多路复用器。布局器基于时钟缓存 site 位置可用性查找最佳布局。 如果可能&#xff0c;布局器将 BUFGCTRL 布局在相邻 site 位置中以利用专用级联路径。如无法实现&#xff0c;则布局器将尝试将 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模块&#xff08;CoT&#xff09;: 提出了CoT模块&#xff0c;能够有效利用输入键之间的上下文信息…...

linux库函数 gettimeofday() localtime的概念和使用案例

在Linux系统中&#xff0c;gettimeofday() 和 localtime() 是两个常用的时间处理函数&#xff0c;分别用于获取高精度时间戳和将时间戳转换为本地时间。以下是它们的概念和使用案例的详细说明&#xff1a; 1. gettimeofday() 函数 概念 功能&#xff1a;获取当前时间&#xf…...

微信聊天记录永久保存:WeChatExporter开源工具全流程指南

微信聊天记录永久保存&#xff1a;WeChatExporter开源工具全流程指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 问题&#xff1a;数据丢失的三重警示 2023年某科技…...

ncmdump:突破NCM格式限制的音频转换解决方案

ncmdump&#xff1a;突破NCM格式限制的音频转换解决方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 问题场景&#xff1a;数字音乐格式的兼容性困境 在流媒体音乐服务普及的今天&#xff0c;网易云音乐采用的NCM加密格式成为了…...

Inner-IoU: More Effective Intersection over Union Loss with Auxiliary Bounding Box——基于辅助边界框的更有效交并比损失

这篇题为《Inner-IoU: More Effective Intersection over Union Loss with Auxiliary Bounding Box》的论文&#xff0c;主要研究了目标检测中边界框回归&#xff08;BBR&#xff09;损失函数的改进问题。以下是其核心研究内容的全面总结概括&#xff1a; 1. 研究背景与问题 现…...

Fish Speech-1.5语音合成企业标准:WAV采样率/比特率/声道数配置指南

Fish Speech-1.5语音合成企业标准&#xff1a;WAV采样率/比特率/声道数配置指南 如何在企业级应用中配置Fish Speech-1.5的音频输出参数&#xff0c;获得最佳语音合成效果 语音合成技术在企业应用中越来越重要&#xff0c;从智能客服到有声内容制作&#xff0c;都需要高质量的语…...

Java医疗系统通过等保三级测评前,这8个高危漏洞必须在72小时内闭环(附OWASP Top 10映射清单)

第一章&#xff1a;医疗Java系统等保三级合规性基线与高危漏洞判定标准在医疗行业&#xff0c;Java系统承载着电子病历、HIS、LIS、PACS等核心业务&#xff0c;其安全合规性直接关系患者隐私与公共健康。等保三级要求系统具备完善的身份鉴别、访问控制、安全审计、入侵防范及可…...

Youtu-VL-4B-Instruct效果可视化:热力图呈现视觉词注意力与文本对齐关系

Youtu-VL-4B-Instruct效果可视化&#xff1a;热力图呈现视觉词注意力与文本对齐关系 1. 引言&#xff1a;当模型“看见”并“思考”时&#xff0c;它在看哪里&#xff1f; 想象一下&#xff0c;你给一个AI模型看一张照片&#xff0c;然后问它&#xff1a;“图片里有什么&…...

实战指南:在Altera FPGA上配置AES256加密的完整流程与避坑要点

1. 为什么要在FPGA上配置AES256加密&#xff1f; 最近有个做工业控制的朋友找我吐槽&#xff0c;说他们竞争对手居然直接复制了他们的FPGA程序&#xff0c;改个LOGO就当成自己的产品卖。这种事情在嵌入式领域其实很常见&#xff0c;特别是使用Altera&#xff08;现在属于Intel&…...

Anything to RealCharacters 2.5D转真人引擎:AI艺术展数字作品写实化呈现

Anything to RealCharacters 2.5D转真人引擎&#xff1a;AI艺术展数字作品写实化呈现 你是否曾想过&#xff0c;将那些精美的二次元插画、可爱的卡通头像&#xff0c;或者充满想象力的2.5D游戏角色&#xff0c;一键变成栩栩如生的真人照片&#xff1f;这听起来像是电影里的特效…...

C#实战:5分钟搞定Modbus RTU通讯(基于NModbus4库)

C#实战&#xff1a;5分钟搞定Modbus RTU通讯&#xff08;基于NModbus4库&#xff09; 工业自动化领域的数据采集离不开设备通讯协议的支持&#xff0c;而Modbus RTU作为最广泛应用的串行通信协议之一&#xff0c;几乎成为工控开发者的必修课。今天我们就用C#和NModbus4库&#…...

OpenClaw备份恢复:Qwen3-VL:30B飞书配置迁移指南

OpenClaw备份恢复&#xff1a;Qwen3-VL:30B飞书配置迁移指南 1. 为什么需要备份恢复OpenClaw配置 上周我的主力开发机突然硬盘故障&#xff0c;导致所有数据丢失。最让我头疼的不是代码仓库——它们都有远程备份&#xff0c;而是那套精心调校的OpenClaw飞书助手配置。这个助手…...