第13章 事件标志组
约 393 字大约 1 分钟
2026-01-19
事件标志组概述:
事件标志组就像是一个共享的标志牌集合,每个标志位都代表一种特定的状态或事件,任务可以等待或设置这些标志位,从而实现任务之间的协同工作。
可以实现多条件触发,例如,设备启动需同时满足“传感器初始化完成”(位0)和“网络连接就绪”(位1)。案例需求
task1:读取按键按下键值,根据不同键值将事件标志组相应事件位置 1,模拟事件发生。
按键 SW3 按下,第 0 位置 1
按键 SW4 按下,第 1 位置 1
按键 SW5 按下,第 2 位置 1
task2:等待事件标志组中0、1、2 事件位都置 1,处理相应操作相关宏
configUSE_16_BIT_TICKS 决定系统滴答计数器使用16位(=1)还是32位(=0)注意: 事件组的核心是一个位掩码变量(
EventBits_t,实际类型为TickType_t),其位宽由configUSE_16_BIT_TICKS决定
相关类型:
EventGroupHandle_t 事件标志组句柄的类型
EventBits_t 事件标志组值的类型相关函数
xEventGroupCreate() 使用动态方式创建事件标志组
xEventGroupCreateStatic() 使用静态方式创建事件标志组
xEventGroupClearBits() 清零事件标志位
xEventGroupClearBitsFromISR() 在中断中清零事件标志位
xEventGroupSetBits() 设置事件标志位
xEventGroupSetBitsFromISR() 在中断中设置事件标志位
xEventGroupWaitBits() 等待事件标志位
xEventGroupSync() 设置事件标志位,并等待事件标志位