我用CubeMX直接生成的FreeRTOS,写了一个灯闪烁的任务,osDelay(500)就正常,用osDelayUntil(500)灯就卡死了,然后看了一下函数内部,发现调用了这么一步vTaskDelayUntil (&tcnt, (TickType_t)(ticks - tcnt));,为什么它这里要ticks - tcnt?不能直接用ticks吗?
嘉立创EDA
全部评论 默认 最新
rrr.
2026-03-11 23:19:23 来自吉林
osdelayuntil这个封装函数是时间戳的思想 cnt记录的是延时函数开始的时间戳 tick记录的是延时结束的时间戳 二者相减才是你要延时的时间
没有更多啦~