本文内容参考:
https://www.freertos.org/zh-cn-cmn-s/a00127.html
特此致谢!
在ESP-IDF项目中用到了延时。如果是在Keil、尤其是STM32接口函数中,笔者很熟悉,是delay_ms函数或者在HAL库中是HAL_Delay函数;如果是Linux应用中,笔者也很熟悉,是sleep函数。唯独在这个ESP-IDF中,由于笔者是刚接触不久,因此虽然查到了对应的延时函数是vTaskDelay函数,但是对于其细节还不甚了解。因此,特意写此文章,对于自己是学习,多余后来者则是解析。
实际上,ESP-IDF中使用的这个vTaskDelay函数也并不是它自创的,而是引用的FreeRTOS中的函数。vTaskDelay函数的细节如下:
函数原型
vTaskDelay函数在FreeRTOS的task.h中,如下:
void vTaskDelay( const TickType_t xTicksToDelay );
注意:在FreeRTOS配置中,必须将 INCLUDE_vTaskDelay 定义为 1,此函数才可用。
函数功能
vTaskDelay()会指