FreeRTOS学习(七)事件组 Event Groups

创建事件标志

#define event_1 (1<<1)
#define event_2 (1<<2)

创建事件组 xEventGroupCreate()

#include “FreeRTOS.h”
#include “event_groups.h”
EventGroupHandle_t xEventGroupCreate( void );

//例子
EventGroupHandle_t eventgroup;
eventgroup = xEventGroupCreate();

设置事件状态 xEventGroupSetBits

EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet );

//例子
xEventGroupSetBits(eventgroup, event_1); //发生事件1

等待和判断事件 xEventGroupWaitBits

EventBits_t xEventGroupWaitBits( 
	const EventGroupHandle_t xEventGroup, //事件组句柄
	const EventBits_t uxBitsToWaitFor, // 等待哪个事件
	const BaseType_t xClearOnExit, // pdTRUE 清除
	const BaseType_t xWaitForAllBits, 	//pdFALSE(逻辑或)只要有一位满足就行
										//pdTRUE (逻辑与)都满足才可以
	TickType_t xTicksToWait  // 阻塞等待时间
);

//例子
EventBits_t eventRet;
eventRet = xEventGroupWaitBits(eventgroup ,event_1|event_2,pdTRUE ,pdFALSE,portMAX_DELAY);

if(eventRet & event_1)
{
	//事件1发生
}
if(eventRet & event_2)
{
	//事件2发生
}

你可能感兴趣的:(ESP,RTOS,C语言)