基于任务通知(任务邮箱)的任务间通信
在FreeRTOS中,任务邮箱实际上是消息队列固定长度为1的特殊形式。任务邮箱效率更高、占用RAM空间更小,更加灵活。
FreeRTOS提供了如果几种方式发送通知给任务:
- 发送通知给任务,如果通知未读,不覆盖通知值
- 发送通知给任务,直接覆盖通知值
- 发送通知给任务,设置通知值的一个或多个位,可以当做事件组来使用
- 发送通知给任务,递增通知值,可以当做计数信号量使用。
由此可以任务通知的灵活程度,但是任务通知也是有限制的:
- 只能有一个任务接收通知消息,因为必须指定接收通知的任务
- 只有等待通知的任务可以被阻塞,发送通知的任务,在任务情况下者不会因为发送失败而进入阻塞状态
本次实例将演示基于任务通知的任务间通信。
1、硬件准备
- NodeMCU ESP32-S V3.0开发板一块
- 数据线一条