0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FreeRTOS事件组是什么意思

工程师邓生 来源:硬件会 作者:硬件会 2022-09-15 11:47 次阅读

d6075dd0-342b-11ed-ba43-dac502259ad0.png

信号量类似,事件组是任务共享了3个字节(24bit)的内容,但不同的是事件组能针对1对多,多对多的任务。如下图所示:

左边的任务可以对事件组的某一位置1或者清0,变为1说明某任务发生了。右边的任务就是阻塞等待,监控该位是否变为1

d62010f0-342b-11ed-ba43-dac502259ad0.png

举个在淘宝上买东西的例子:

d6428be4-342b-11ed-ba43-dac502259ad0.png

任务1负责监督是否有商品添加到购物车;用户添加到购物车第0位置1,没添购物车第0位置0 任务2负责监督是否付款,当监督到任务1置1时,打开支付宝扣款成功了第1位置1 任务3是负责出货,当监督到任务2置1后,将第2位置1 当第0、1、2位都为1时,说明交易完成了。

位移操作:

1<<0:1往左边移0位,表示第0位为1 1<<1:1往左边移1位,表示第1位为1 1<<2:1往左边移2位,表示第2位为1 位或运算,实质就是相加:0001|0010|0100=0111 if(a&b):a与b位与,对应的两个二进制位均是1的时候结果位才是1,否则为0

API函数:

EventGroupHandle_t xEventPurchase = NULL;//创建事件句柄

xEventPurchase = xEventGroupCreate();//创建事件组

xEventGroupSetBits(xEventPurchase,1<<0); // 将bit 0 设置为1

d66da8ba-342b-11ed-ba43-dac502259ad0.png

xEventGroupGetBits(xEventPurchase); //读取

xEventGroupClearBits(xEventPurchase, 0xFFFFFF); //清0

代码举例:

d68e919c-342b-11ed-ba43-dac502259ad0.png

d6ad0262-342b-11ed-ba43-dac502259ad0.png

d6e0a4a0-342b-11ed-ba43-dac502259ad0.png

d704f648-342b-11ed-ba43-dac502259ad0.png

d7222a88-342b-11ed-ba43-dac502259ad0.png



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FreeRTOS
    +关注

    关注

    12

    文章

    473

    浏览量

    61349
  • 信号量
    +关注

    关注

    0

    文章

    53

    浏览量

    8257

原文标题:FreeRTOS事件组(等待)

文章出处:【微信号:硬件会,微信公众号:硬件会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FreeRTOS内存机制详解

    FreeRTOS是一种实时操作系统,它提供了多种内存分配方式,包括动态内存分配和静态内存分配。
    的头像 发表于 12-31 16:49 1112次阅读
    <b class='flag-5'>FreeRTOS</b>内存机制详解

    FreeRTOS中断测试避坑指南

    任何调用中断安全FreeRTOS API函数的中断服务例程都可以使用的最高中断优先级。不要从任何优先级高于此的中断调用中断安全FREERTOS API函数(优先级越高,数值越低)。
    的头像 发表于 12-21 09:04 453次阅读
    <b class='flag-5'>FreeRTOS</b>中断测试避坑指南

    FreeRTOS中的任务管理

    任务是 FreeRTOS 中最基本的调度单元,它是一段可执行的代码,可以独立运行。FreeRTOS 中的任务是基于优先级的抢占式调度,优先级高的任务可以抢占优先级低的任务的 CPU 资源。任务的创建、删除、挂起、恢复、设置优先级等操作都是通过调用 API 函数来实现的。
    的头像 发表于 11-27 17:03 405次阅读

    FreeRTOS的发展历史和技术演进

    在嵌入式系统的领域中,实时操作系统(RTOS)是非常重要甚至不可或缺的组成部分。FreeRTOS(Real-Time Operating System)是一款广泛使用的开源 RTOS,为嵌入式开发
    的头像 发表于 11-18 17:55 930次阅读

    基于STM32F407的FreeRTOS学习笔记(5)

    在数据结构中有一种很重要的数据结构叫做队列,其特点是数据先进先出。在FreeRTOS中也有一类队列,我们利用这类队列在FreeRTOS中实现任务与任务间的消息传递,所以也可以称之为消息队列。
    的头像 发表于 11-07 11:43 378次阅读
    基于STM32F407的<b class='flag-5'>FreeRTOS</b>学习笔记(5)

    FreeRTOS内存管理实现

    FreeRTOS是一个为嵌入式系统设计的开源实时操作系统。它提供了一个多任务内核和一系列功能,适合在资源受限的设备上管理实时任务和应用程序。FreeRTOS内存管理的关键方面之一是堆管理。
    的头像 发表于 10-10 16:17 504次阅读
    <b class='flag-5'>FreeRTOS</b>内存管理实现

    在STM32F103单片机上移植FreeRTOS

    移植 FreeRTOS 以正点原子的跑马灯工程为基础,在上面扩展。在基础工程中新建一个名为 FreeRTOS 的文件夹: 创建 FreeRTOS 文件夹以后就可以将 FreeRTOS
    的头像 发表于 09-28 14:39 1183次阅读
    在STM32F103单片机上移植<b class='flag-5'>FreeRTOS</b>

    FreeRTOS中断测试实验

    FreeRTOS 中断测试实验 设定:FreeRTOS 中优先级低于 configMAX_SYSCALL_INTERRUPT_PRIORITY的中断会被屏蔽掉,高于的就不会,那么我们就写个简单的例程
    的头像 发表于 09-28 11:42 328次阅读
    <b class='flag-5'>FreeRTOS</b>中断测试实验

    Cortex-M内核使用FreeRTOS特别注意事项

    本文来自CSDN博客FreeRTOS基础篇,本篇主要分享Cortex-M内核使用FreeRTOS特别注意事项。
    发表于 09-19 15:01 384次阅读
    Cortex-M内核使用<b class='flag-5'>FreeRTOS</b>特别注意事项

    ch32v307移植freertos

    ch32v307移植freertos  在进行嵌入式开发时,操作系统的选择非常重要。最近,越来越多的嵌入式应用程序开始采用实时操作系统(RTOS),其中最流行的是FreeRTOSFreeRTOS
    的头像 发表于 08-22 15:53 779次阅读

    基于STM32的FreeRTOS开发(1)----FreeRTOS简介

    FreeRTOS 是一个免费和开源的实时操作系统,它主要用于嵌入式系统。它非常轻量级,可以在很小的硬件资源上运行,因此非常适合在限制硬件资源的嵌入式系统中使用。 FreeRTOS提供了一组简单的任务
    的头像 发表于 07-27 09:49 886次阅读
    基于STM32的<b class='flag-5'>FreeRTOS</b>开发(1)----<b class='flag-5'>FreeRTOS</b>简介

    FreeRTOS的定时器设计实现

    定时器用于根据系统时启动特定的函数,执行相应的任务。FreeRTOS的定时器可以配置启动一次或者间隔一定时间执行。
    的头像 发表于 07-25 15:28 1004次阅读
    <b class='flag-5'>FreeRTOS</b>的定时器设计实现

    RA FreeRTOS任务创建

    随着嵌入式应用程序变得越来越复杂,单片机裸机开发已经无法满足工程师对于复杂程序的需求。于是具有多任务调度和实时响应特性的RTOS便越来越受工程师们青睐。瑞萨RA系列MCU兼容FreeRTOS系统
    的头像 发表于 07-12 10:00 206次阅读
    RA <b class='flag-5'>FreeRTOS</b>任务创建

    FreeRTOS简介及FreeRTOS源码包组成结构

    FreeRTOS 是市场领先的面向微控制器和小型微处理器的实时操作系统 (RTOS),与世界领先的芯片公司合作开发。
    的头像 发表于 06-09 14:21 4147次阅读
    <b class='flag-5'>FreeRTOS</b>简介及<b class='flag-5'>FreeRTOS</b>源码包组成结构

    FreeRTOS教程.pdf

    安富莱_STM32-V4开发板_FreeRTOS教程(V1.0).pdf
    发表于 05-09 14:08 106次下载