在 FreeRTOS 中,阻塞 API 是指那些会导致调用任务进入阻塞状态(Blocked State)的函数,即任务会暂时让出 CPU,直到某个条件满足(如超时、信号量可用、队列数据到达等)。以下是常见的阻塞 API 分类及示例:
1. 任务延迟(延时)
vTaskDelay()
使任务阻塞指定的时间(以系统节拍Tick
为单位)。void vTaskDelay(const TickType_t xTicksToDelay);
vTaskDelayUntil()
精确的周期性延迟(避免时间漂移)。void vTaskDelayUntil(TickType_t *pxPreviousWakeTime, const TickType_t xTimeIncrement);
2. 队列(Queue)操作
xQueueReceive()
从队列中接收数据,若队列为空则阻塞。BaseType_t xQueueReceive(QueueHandle_t xQueue,