温州大凯工艺品有限公司英文网站,电子宣传册如何制作,三明企业网站建设,企业网站域名注册队列集简介 一个队列只允许任务间传递的消息为同一种数据类型#xff0c;如果需要在任务间传递不同数据类型的消息时#xff0c;那么就可以使用队列集 #xff01; 作用#xff1a;用于对多个队列或信号量进行“监听”#xff0c;其中不管哪一个消息到来#xff0c;都可让…队列集简介 一个队列只允许任务间传递的消息为同一种数据类型如果需要在任务间传递不同数据类型的消息时那么就可以使用队列集 作用用于对多个队列或信号量进行“监听”其中不管哪一个消息到来都可让任务退出阻塞状态 假设有个接收任务使用到队列集接收和信号量的获取如下
接收任务( ){等待队列集中消息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、获取队列集的消息