声明及感谢: 跟随正点原子资料学习, 在此作为学习的记录和总结
环境 keil , stm32f103
FreeRTOS延时函数有两个
分别是:
vTaskDelay()
vTaskDelayUntil()
1.vTaskDelay()
任务相对延时.
函数原型:
void vTaskDelay( const TickType_t xTicksToDelay )
参数: 为延时个数, 通常情况下,将延时单位转换成ms, 这样 延时时间为 参数值 * 1ms
这个函数不能保证一个周期性任务的频率。
2.vTaskDelayUntil()
任务绝对延时
该函数用在周期性任务以保证任务执行频率的稳定
函数原型:
void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement )
参数: pxPreviousWakeTime 上一次任务延时结束被唤醒的时间, 任务中 第一次调用函数,需要将pxPreviousWakeTime
初始化进任务的循环体的中, 在以后的运行中, 会被自动更新。
xTimeIncrement 任务需要延时时间的节拍数。(相对于pxPreviousWakeTime 本次延时的节拍数)
vTaskDelayUntil() 函数使用例子
例程:
http://www.freertos.org/vtaskdelayuntil.html