FreeRTOS使任务处于挂起态的API
在 FreeRTOS 中,任务的挂起状态(Suspended)与阻塞状态(Blocked)不同:挂起状态的任务会被无限期暂停,直到显式调用恢复函数,而阻塞状态的任务会在特定条件(如超时、信号量可用等)满足后自动恢复。以下是用于任务挂起和恢复的核心 API:
1. 挂起单个任务
void vTaskSuspend(TaskHandle_t xTaskToSuspend)
将指定任务挂起(暂停执行)。- 参数:
xTaskToSuspend
为目标任务句柄,传NULL
表示挂起当前任务自身。 - 示例:
vTaskSuspend(xTaskHandle); // 挂起指定任务 vTaskSuspend(NULL); // 挂起当前任务
- 参数:
2. 恢复单个任务
void vTaskResume(TaskHandle_t xTaskToResume)
恢复被挂起的任务,使其重新进入就绪状态。- 参数:
xTaskToResume
为要恢复的任务句柄
- 参数: