如何修复 ESP32 错误: 'portTICK_PERIOD_MS' was not declared in this scope

问题:

尝试编译 ESP-IDF 固件(带或不带 PlatformIO)时,你看到类似这样的错误消息

espidf_porttick_error.txt
src/main.cpp:13:27: error: 'portTICK_PERIOD_MS' was not declared in this scope
    13 |         vTaskDelay(1000 / portTICK_PERIOD_MS);

解决方案

通过在发生错误的文件顶部(此示例中为 src/main.cpp)添加以下行来包含 FreeRTOS:

freertos_includes.cpp
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>


Check out similar posts by category: ESP8266/ESP32, FreeRTOS, PlatformIO