FreeRTOS在学习——3rd——事件标志组和任务通知和消息队列

事件标志组

简单来说,就是,信号量只能作为某一件事的标志。
消息队列一个全局Buff,用来任务与任务之间传输数据,它是直接复制的数据,并不是传回数据的指针

二值信号量就是一个盒子,里面只能是0或1,

计数型信号量也是1个盒子,不过里面的数可以是12345678910JQK等等,

互斥信号量是一个盒子,里面有个钥匙,拿走了你还得还回来;

递归互斥信号量一个盒子,好多钥匙,拿走几个盒子心里都有数,拿走几个都要给我还回来。

事件标志组就是一排盒子,每一个盒子可以作为一个信号量的盒子。
Enm………真TM形象,我都懂了
EventBits_ t是个32位的数据类型。EventBits_ t类型的变量可以存储24个事件位,另外的那高8位有其他用。事件位0存放在这个变量的bit0.上,变量的bit1就是事件位1,以此类推。
对于STM32来说一个事件标志组最多可以存储24个事件位
在这里插入图片描述

创建事件标志组API:
在这里插入图片描述
设置事件标志位API:
在这里插入图片描述
在这里插入图片描述
获取事件标志组的值得API:
在这里插入图片描述
等待指定事件位API:
在这里插入图片描述

任务通知:

发送任务通知API :
在这里插入图片描述
获取任务通知API:
在这里插入图片描述

消息队列:

提供向消息队列发送消息的API函数有:
在这里插入图片描述
从队列中读取消息的API函数:
在这里插入图片描述

调用函数uxQueueSpacesAvailable()获取队列Message_ Queue的剩余大小。
调用函数uxQueueMessages Waiting()获取队列当前消息数量,也就是队列的使用量

原文地址:https://www.cnblogs.com/hhsxy/p/14018419.html