FreeRTOS事件标志组API函数

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

创建一个事件标志组 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)//要获取的事件标志组的句柄
返回值:当前事件标志组的值




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值