ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

FreeRTOS之事件标志组

FreeRTOS之事件标志组 事件标志组用于任务间通信或同步事件标志组和全局变量全局变量一般用在无RTOS的程序中因此程序对全局变量的访问是顺序的全局变量对于每一个访问它的程序来说都是最新值事件标志组一般用在多任务系统中多任务使用事件标志组可以防止访问冲突。因为多任务相当于并行执行访问全局变量可能会出现同时访问一个值的情况会出现访问冲突或变量不是最新值事件标志组在多任务中可以进行超时等待事件标志组本质上是一个16位或32位的软件状态寄存器。16位的话使用低8位32位的话使用低24位每位用0或1表示事件标志。事件标志组API功能EventGroupHandle_t xEventGroupCreate( void )创建事件标志组返回句柄EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet )设置标志位返回事件标志组BaseType_t xEventGroupSetBitsFromISR(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet,BaseType_t *pxHigherPriorityTaskWoken )设置标志位中断返回状态EventBits_t xEventGroupWaitBits(EventGroupHandle_t xEventGroup,EventBits_t uxBitsToWaitFor,BaseType_t xClearOnExit,BaseType_t xWaitForAllBits,TickType_t xTicksToWait )等待事件标志位置位返回事件标志组/* 创建事件标志组 */xCreatedEventGroupxEventGroupCreate();/* 设置事件标志组的 bit0 */xEventGroupSetBits(xCreatedEventGroup,BIT_0);/* 设置事件标志组的 bit1 */xEventGroupSetBits(xCreatedEventGroup,BIT_1);/*等待标志位置位*/uxBitsxEventGroupWaitBits(xCreatedEventGroup,/* 事件标志组句柄 */BIT_ALL,/* 等待 bit0 和 bit1 被设置 */pdTRUE,/* 退出前 bit0 和 bit1 被清除这里是 bit0 和 bit1 都被设置才表示“退出”*/pdTRUE,/* 设置为pdTRUE表示等待bit1和bit0都被设置*/xTicksToWait);/* 等待延迟时间 */
返回列表