前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >freeRTOS事件组学习

freeRTOS事件组学习

作者头像
用户1605515
发布2018-04-10 15:56:14
1.5K0
发布2018-04-10 15:56:14
举报
文章被收录于专栏:嵌入式程序猿嵌入式程序猿

像其他RTOS一样,freeRTOS同样有对事件标志位的创建和处理,在中断中可以通过事件组传递信息给其他的任务,那么如何创建事件组呢?

要使用创建Event的API,首先必须配置,且包含event的头文件和源文件在工程中,

主要使用EventGroupHandle_txEventGroupCreate( void ),源码如下显示:

使用用例可以参照下述代码

代码语言:javascript
复制
Example usage:
 /* Declare a variable to hold thecreated event group. */
    EventGroupHandle_t xCreatedEventGroup;
 /* Attempt to create the event group. */
    xCreatedEventGroup = xEventGroupCreate();
 /* Was the event group createdsuccessfully? */
    if( xCreatedEventGroup == NULL )
    {
 /* The event group was not createdbecause there was insufficient
        FreeRTOS heap available. */
    }
    else
    {
 /* The event group was created. */
    }
事件的删除使用void vEventGroupDelete( EventGroupHandle_t xEventGroup );API函数。
置事件位使用EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup,
                                 const EventBits_t uxBitsToSet );
和
BaseType_t xEventGroupSetBitsFromISR(
                          EventGroupHandle_t xEventGroup,
                          const EventBits_t uxBitsToSet,
                          BaseType_t *pxHigherPriorityTaskWoken );

还有事件清标志位API,获取位状态API,事件同步API等函数供用户调用和在工程中使用,从源码注释和API文档介绍可以很容易的上手事件组的应用。更多有关使用freeRTOS事件组的问题可以参阅官方文档或网站。具体在我们的工程应用中,比如可以在串口接收中断使用事件组。还有很多在我们工程中可以使用事件组的地方,希望大家在自己的实际应用中多多体验,学会事件组的使用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档