事件组
configUSE_16_BIT_TICKS为1时可以存储8个时间位,为0时可以存储24个事件组
动态与静态创建时间标志组
EventGroupHandle_t xEventGroupCreate(void)
EventGroupHandle_t xEventGroupCreateStatic(StaticEventGroup_t *pxEventGroupBuffer)
清除事件位
//将事件标志组中指定事件位清零
EventBits_t xEventGroupClearBits(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToClear);
EventBits_t xEventGroupClearBitsFromISR(EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToClear);
设置事件位
//设置指定的事件位为1
EventBits_t xEventGroupSetBits(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet);
EventBits_t xEventGroupSetBitsFromISR(EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet,
BaseType_t* pxHigherPriorityTaskWoken);
//pxHigherPriorityTaskWoken :标记退出次函数以后是否进行任务切换,当此值为pdTRUE的时候在退出中断服务函数之前一定要
// 进行一次任务切换
获取事件标志组值
EventBits_t xEventGroupGetBits(EventGroupHandle_t xEventGroup)
EventBits_t xEventGroupGetBitsFromISR(EventGroupHandle_t xEventGroup)
等待指定的事件位
某个人可能需要与多个事件进行同步,那么这个任务就需要等待并判断多个事件位;
EventBits_t xEventGroupWaitBits(EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor,//指定要等待的事件位,0x05=bit0和bit2
const BaseType_t xClearOnExit,//pdTRUE 退出函数前所有事件位清零
const BaseType_t xWaitForAllBIts,//pdTRUE所有事件位为或者阻塞时间到了,函数就会返回
const TickType_t xTicksToWait);