freertos xtasknotifywait
时间: 2023-06-29 11:12:06 浏览: 184
`xTaskNotifyWait()` 是 FreeRTOS 中一种任务间通信的方法,用于等待一个或多个事件通知。
该函数的原型如下:
```
BaseType_t xTaskNotifyWait( uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t *pulNotificationValue,
TickType_t xTicksToWait );
```
其中,参数含义如下:
- `ulBitsToClearOnEntry`:进入函数时需要清除的通知位。
- `ulBitsToClearOnExit`:退出函数时需要清除的通知位。
- `pulNotificationValue`:指向一个 `uint32_t` 类型的指针,用于存储通知值。
- `xTicksToWait`:等待通知的时间,单位为 Tick。
函数返回值为 `pdTRUE` 或 `pdFALSE`,表示是否成功等待到通知。
当调用 `xTaskNotify()` 或 `xTaskNotifyFromISR()` 函数时,可以向等待该通知的任务发送通知。通知值可以是任意的 `uint32_t` 类型的值,通知位可以用二进制位标记。
当等待任务接收到通知时,`ulBitsToClearOnExit` 中指定的通知位会被清除,`pulNotificationValue` 中存储的通知值会被更新。如果等待超时,则函数返回 `pdFALSE`。
阅读全文