【RTOS】快速体验FreeRTOS所有常用API(7)任务通知

目录

    • 七、任务通知
      • [7.1 基本概念](#7.1 基本概念)
      • [7.2 发出通知](#7.2 发出通知)
      • [7.3 等待通知](#7.3 等待通知)
      • [7.4 实例](#7.4 实例)

七、任务通知

该部分在上份代码基础上修改得来,代码下载链接:

https://wwzr.lanzout.com/i4Efu1la39wh

密码:cbvx

该代码尽量做到最简,不添加多余的、不规范的代码。

内容主要包括

  • 任务通知的基本概念、发出通知、等待通知

最终实现效果:

  • 任务1先运行,运行一会儿使用任务通知通知任务2开始运行。

7.1 基本概念

任务通知是一种轻量级的同步机制,用于在任务之间进行通信和同步。任务通知是由二进制信号量和事件组实现的,提供了更简单和更高效的方式来实现任务间的同步。

使用场景

  • 轻量级任务同步 : 任务通知可以用于触发其他任务的执行。一个任务执行完某个特定操作后,通过 xTaskNotifyGive 发送通知,从而唤醒等待通知的任务。

7.2 发出通知

使用 xTaskNotifyGive 函数向任务发送通知。

C 复制代码
//发送任务通知
xTaskNotifyGive(xTask);
// xTask :任务句柄

这将向指定任务发送一个通知。

7.3 等待通知

使用 ulTaskNotifyTake 函数等待接收任务通知。

C 复制代码
ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait );
// xClearCountOnExit     函数返回前是否清零: pdTRUE:把通知值清零 pdFALSE:如果通知值大于0,则把通知值减一
// xTicksToWait         等待通知时间, 0:不等待,即刻返回; portMAX_DELAY:一直等待

示例:

C 复制代码
// 等待任务通知
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);

7.4 实例

任务1发出通知,任务2等待通知

相关推荐
LCG元16 分钟前
STM32F103 双ADC交错采样实战:DUALMOD寄存器拆解、DMA位宽陷阱与1.71MSPS有效采样率实测
stm32·单片机·嵌入式硬件
高升说19 分钟前
智能相机的工程解剖:算力进机身之后,系统怎么设计
嵌入式·边缘计算·机器视觉·智能相机
星栖与芯10 小时前
LiteOS-M 切换汇编逐行图解(4):中断三件套与 HalTaskSchedule 触发
汇编·stm32·单片机·嵌入式硬件·harmonyos
潘潘的嵌入式日记17 小时前
I²C 主机读到的 U16 偶尔跳变?先修复多字节快照发布
嵌入式·并发·数据一致性·i2c·快照
LCG元18 小时前
STM32F103 SPI 驱动 W5500 以太网模块实战:硬件协议栈寄存器体系、Socket 状态机避坑与 TCP 吞吐实测
stm32·单片机·嵌入式硬件
Zhang.Yi18 小时前
STM32-SPI
stm32·单片机·嵌入式硬件
AAA代码批发商21 小时前
Days 46 i.MX6ULL 裸机开发|从内核切入外设,汇编点亮 LED(补充)
arm开发·嵌入式·裸机开发
无敌贵点大王21 小时前
RTThread学习记录10——C语言实现面向对象的编程
c语言·stm32·学习·链表
单片机仿真设计1 天前
【proteus仿真】基于 STM32F103 的汽车温度监测系统(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·课设
anew___1 天前
舵机——让 Arduino 动起来
c++·stm32·单片机·嵌入式硬件·c