实测结论:在STM32F407@168MHz、configTICK_RATE_HZ=1000下,让任务以10ms周期翻转GPIO,用逻辑分析仪抓取。vTaskDelay(10)的周期抖动峰峰值约0.8~1.5ms,且误差会累积漂移;vTaskDelayUntil(&last,10)抖动峰峰值约0.1~0.3ms,长期无累积漂移。原因是vTaskDelay从调用时刻起算相对延时,任务执行时间、被高优先级任务抢占、中断处理都会叠加进下一个周期;vTaskDelayUntil基于上次唤醒的绝对节拍,自动补偿执行耗时。实操建议:周期性任务优先用vTaskDelayUntil,并保证单次执行时间远小于周期;初始化last用xTaskGetTickCount();若周期小于任务最坏执行时间会直接返回并可能死循环,需检查。对抖动极敏感场景可提高tick频率或改用硬件定时器触发。