FreeRTOS学习(八) 延时函数

声明及感谢: 跟随正点原子资料学习, 在此作为学习的记录和总结 环境 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() 函数使用例子 例程:

经验分享 程序员 微信小程序 职场和发展