确认延时方式:
HAL_Delay(ms): 适用于裸机、简单应用,但会阻塞任务。
osDelay(ms) / vTaskDelay(ms): 适用于 RTOS,但需确保 SysTick 配置正确。
xTaskGetTickCount() / micros():用来检查任务实际执行间隔,判断延时是否符合预期。
✅ 调试代码(检查任务延时):
c
复制
编辑
TickType_t start = xTaskGetTickCount();
vTaskDelay(1000);
TickType_t end = xTaskGetTickCount();
printf("Delay time: %lu ms\n", end - start);
如果任务延时不准确,可能的原因:
时钟源异常
任务优先级问题(高优先级任务占用 CPU)
其他任务/中断导致的抢占
|
 共1人点赞
|