
與信號量類似,事件組是任務共享了3個字節(jié)(24bit)的內(nèi)容,但不同的是事件組能針對1對多,多對多的任務。如下圖所示:
左邊的任務可以對事件組的某一位置1或者清0,變?yōu)?說明某任務發(fā)生了。右邊的任務就是阻塞等待,監(jiān)控該位是否變?yōu)?

舉個在淘寶上買東西的例子:

任務1負責監(jiān)督是否有商品添加到購物車;用戶添加到購物車第0位置1,沒添購物車第0位置0 任務2負責監(jiān)督是否付款,當監(jiān)督到任務1置1時,打開支付寶扣款成功了第1位置1 任務3是負責出貨,當監(jiān)督到任務2置1后,將第2位置1 當?shù)?、1、2位都為1時,說明交易完成了。
位移操作:
1<<0:1往左邊移0位,表示第0位為1 1<<1:1往左邊移1位,表示第1位為1 1<<2:1往左邊移2位,表示第2位為1 位或運算,實質(zhì)就是相加:0001|0010|0100=0111 if(a&b):a與b位與,對應的兩個二進制位均是1的時候結(jié)果位才是1,否則為0
API函數(shù):
EventGroupHandle_t xEventPurchase = NULL;//創(chuàng)建事件句柄
xEventPurchase = xEventGroupCreate();//創(chuàng)建事件組
xEventGroupSetBits(xEventPurchase,1<<0); // 將bit 0 設置為1

xEventGroupGetBits(xEventPurchase); //讀取
xEventGroupClearBits(xEventPurchase, 0xFFFFFF); //清0
代碼舉例:





審核編輯:劉清
-
FreeRTOS
+關注
關注
14文章
499瀏覽量
66970 -
信號量
+關注
關注
0文章
53瀏覽量
8769
原文標題:FreeRTOS事件組(等待)
文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
DR1 系列評估板 PS 端裸機與 FreeRTOS 開發(fā)案例手冊
ucos與freertos哪個好?
FreeRTOS和uC/OS-II的功能特性
freertos關閉任務調(diào)度的方法
FreeRTOS與uC/OS-II如何選擇?
FreeRtos 能否同時使用兩個 CPU?
FreeRTOS任務調(diào)度及優(yōu)先級問題
【CPKCOR-RA8D1】關于AI人臉檢測移植遇到的一些問題
如何使用 CyCloneTCP 和 FreeRTOS 從 SNTP 服務器獲取時間?
為FreeRTOS增加新的設備驅(qū)動程序
OPENRTOS為FreeRTOS提供商業(yè)許可證
詳解FreeRTOS與SAFERTOS的區(qū)別
FreeRTOS事件組是什么意思
評論