vTaskDelay是相对延时,从调用时刻起算,任务执行时间会累积到周期中,导致实际周期=延时+执行时间,长期漂移明显。vTaskDelayUntil基于上次唤醒的绝对时间点递增,能补偿执行时间,周期稳定。实测:任务执行2ms,周期10ms,vTaskDelay实际约12ms,1000次后漂移约2s;vTaskDelayUntil保持10ms±1tick。选型:固定周期采样、控制循环用vTaskDelayUntil;非严格周期或需让出CPU的场合用vTaskDelay。注意vTaskDelayUntil的PreviousWakeTime需初始化为xTaskGetTickCount(),且周期必须大于任务最坏执行时间,否则会连续唤醒。