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

FreeRTOS之队列集

文章目录

  • 用途
  • 创建队列集
  • 把队列加入队列集
  • 读取队列集

用途

一个任务可能需要从多个不同的数据源接收数据,如果没有队列集,任务需要在多个队列之间进行轮询,可能导致任务在某些情况下无法及时响应。使用队列集,任务可以以阻塞的方式等待这队列中的任意一个有数据到来,而不需要分别对每个队列进行轮询。队列集本质上也是一个队列

创建队列集

QueueSetHandle_t xQueueCreateSet( const UBaseType_t uxEventQueueLength )
参数说明
uxQueueLength队列集长度,最多能存放多少个数据(队列句柄)
返回值非 0:成功,返回句柄,以后使用句柄来操作队列
NULL:失败,因为内存不足

把队列加入队列集

BaseType_t xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
QueueSetHandle_t xQueueSet );
参数说明
xQueueOrSemaphore队列或信号量句柄,即要加入队列集的对象
xQueueSet队列集句柄
返回值pdTRUE:表示将队列或信号量成功加入队列集
pdFALSE:表示加入操作失败

读取队列集

QueueSetMemberHandle_t xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
TickType_t const xTicksToWait );
参数说明
xQueueSet用于标识要操作的队列集的句柄
xTicksToWait控制任务在队列集为空时的阻塞行为,以时钟节拍数为单位。0 表示不阻塞直接返回,portMAX_DELAY 表示一直阻塞直到有数据,其他值则阻塞指定的时钟节拍数
返回值NULL 代表操作失败;返回有效的队列句柄则表示成功从队列集中获取到有数据的队列

相关文章:

  • Vulnhub-sundown
  • 关于MCP SSE 服务器的工作原理
  • 波特率、比特率、传信率、传码率......
  • 17 | 实现简洁架构的 Biz 层
  • 前端轮播图carousel案例(带详细注释)
  • 深入探索 Java Stream
  • 赶紧白P这款免费神器!
  • AGI大模型(3):大模型生成内容
  • 【ES6】在ES6中自定义数组
  • STM32 HAL库实战:高效整合DMA与ADC开发指南
  • 向智能辅助驾驶的道路车道线检测算法研究
  • Franka机器人ROS 2 发布:赋能机器人研究和行业应用
  • 职坐标IT技能提升全攻略
  • 得物,蓝禾,快手,优博讯,三七互娱,途游游戏,顺丰,oppo,游卡,汤臣倍健,康冠科技,作业帮25春招内推
  • 驾培市场与低空经济无人机融合技术详解
  • MongoDB分页实现方式对比:PageRequest vs Skip/Limit
  • 用C# Newtonsoft.Json库实现JSON数据中某个字段值的提取
  • 【Academy】XML 外部实体 (XXE) 注入 ------ XML external entity (XXE) injection
  • 13 | 实现统一的错误返回
  • 线程同步与互斥
  • 母亲节书单|关于生育自由的未来
  • 家电维修担心遇“李鬼”?上海推动“物业+专业服务”进社区
  • 国家发改委:美芯片药品等领域关税影响全球科技发展,损害人类共同利益
  • 马克思主义理论研究教学名师系列访谈|董雅华:让学生感知马克思主义理论存在于社会生活中
  • 习近平出席俄罗斯总统举行的欢迎仪式
  • 复旦设立新文科发展基金,校友曹国伟、王长田联合捐赠1亿元