为什么:“标识符“vTaskDelay”未定义”?

问题描述 投票:0回答:1

我将 Visual Studio 代码与当前的 espressif 插件(IDF 版本 5.1.2)一起使用。以下程序可以在esp32上编译并执行,没有任何问题:

#include <iostream>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"

#include "main.h"

void HelloCMake::run(int i)
{
    std::cout << "Hello World from C++ "<< i << '\n';
    vTaskDelay(pdMS_TO_TICKS(1000));
}

extern "C" void app_main(void)
{
    HelloCMake App;
    int i = 0;

    while (true)
    {
        App.run(i);
        i++;
    }    
}

但是,编辑向我展示了以下内容:

  1. 标识符“vTaskDelay”未定义
  2. 标识符“pdMS_TO_TICKS”未定义

为什么仍然显示两个问题?请问我该如何解决这个问题?

谢谢!

马库斯

enter image description here

由 DeepL.com 翻译(免费版)

询问了 Google 和 ChatGPT...

visual-studio-code esp32 freertos esp-idf
1个回答
0
投票

您需要添加 esp include 路径到 JSON 文件,以便在 VScode 编辑器中进行语法识别。编译和IDE语法高亮是2个不同的东西,IDE环境强调错误是因为它找不到函数的声明,与编译无关。

© www.soinside.com 2019 - 2024. All rights reserved.