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()獲取隊列當前消息數量,也就是隊列的使用量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章