创建一个事件标志组 xEventGroupCreate,事件标志组可用的bit数取决于configUSE_16_BIT_TICKS=1 16位时8个bit =0时 即32位时24个bit
EventGroupHandle_t xEventGroupCreate( void )返回值:NULL:事件标志组创建失败其他值:创建成功的事件标志组句柄
将指定的事件位置1 xEventGroupSetBits
EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, //要操作的事件标志组的句柄 const EventBits_t uxBitsToSet ) //指定要置1的事件位,比如要将bit3置1的话,就设置为0x08,可以同时设多个位
返回值:任何值:在将指定事件位置1后的事件组值
将指定的事件位置1用在中断中,注意有三个宏都要为1 #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )INCLUDE_xTimerPendFunctionCall在FreeRTOS.h文件的210行
BaseType_t xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, BaseType_t *pxHigherPriorityTaskWoken )
等待指定的事件位EventBits_t xEventGroupWaitBits( EventGroupHandle_t xEventGroup, //指定要等待的事件标志组 const EventBits_t uxBitsToWaitFor, //指定要等待的事件位,相应位为1 const BaseType_t xClearOnExit, //退出函数前 uxBitsToWaitFor参数置位是否要清零 pdTRUE清零,pdFALSE不改变 const BaseType_t xWaitForAllBits, //是否要等到所有事件位都置1才返回 TickType_t xTicksToWait ) //阻塞时间返回值:任何值:返回当所等待的事件位置1后的事件组值,或者阻塞时间到.根据这个值我们就知道哪些事件位置1了.如果函数因为阻塞时间到而返回值就不代表任何的含义.
获取事件标志组值EventBits_t xEventGroupGetBits(EventGroupHandle_t xEventGroup)//要获取的事件标志组的句柄
返回值:当前事件标志组的值

本文详细介绍了FreeRTOS中事件标志组的创建、使用及管理方法。包括如何创建事件标志组、设置事件位、从ISR中设置事件位、等待特定事件位及获取事件标志组的当前状态等内容。

5408

被折叠的 条评论
为什么被折叠?



