ESP32 FreeRtos 事件标志组

简介

事件组能不用就不用,能看懂别人代码就好!!!  

RTOS中的信号量、邮箱和消息队列都是事件。通过这些事件可以实现任务之间及任务和中断服务程序之间的通信。但信号量、邮箱和消息队列只能允许任务在阻塞状态下等待单个事件发生。当这些事件发生时,只能取消单个任务的阻塞状态。被取消阻塞状态的任务是等待事件列表中优先级最高的任务,对于FreeRtos,如果具有相同高优先级的任务等待该事件,则等待时间最长的那个任务获得该事件,从而取消阻塞状态。而事件组是RTOS的另一个功能,使用事件组可以实现多任务之间的同步。其具有如下特性。

1)事件组允许任务在阻塞状态下等待一个或多个事件的组合发生。

2)事件组在事件发生时取消阻塞等待同一事件或事件组合的所有任务。

事件组的这些独特属性使它们在同步多个任务、向多个任务广播事件、允许任务在阻塞状态下等待一组事件中的任何一个发生,以及允许任务在阻塞状态下等待多个操作完成等方面非常有用。事件组还提供了减少应用程序使用RAM的机会,因为通常可以用单个事件组替换多个二进制信号量。

API:

        1)创建事件组的函数原型

        EventGroupHandle_t  xEventGroupCreate(void);

        函数的返回值:如果创建成功,此函数返回事件组的句柄,此句柄是其他事件组函数的控制句柄;否则返回NULL。

        在使用这个函数前需要定义事件组句柄,例如:

        static EventGroupHandle_t mycreateEventGroup = NULL;

        xCreatedEventGroup=myEventGroupCreate();

        xEventGroupSetBits

        xEventGroupWaitBits

        xEventGroupGetBits

        xEventGroupClearBits

运行环境

事件标志组等待

 事件标志组同步

事件标志组同步+LCD显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值