NodeMCU和VS Code

4

我正在使用NodeMCU做一个小项目,它是一个比较典型的温度传感器类型的东西,汇报给我的自有网络服务。

我使用Arduino IDE很好地完成了它的基础工作,但我决定使用更强大的编辑器,所以我转移到了使用Visual Studio Code。它可以很好地工作,脚本可以打开,编译并上传到板子上没有任何问题。VS Code是一个比Arduino IDE更好得多的编辑器。

但是,VS Code会将2个标识符标记为未知。

首先是显示器的U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C,其次是D7作为引脚定义。在这两种情况下,我可以将鼠标悬停在标识符上,按F12,它将正确地显示适当头文件中的定义。(奇怪的是,在pins_arduino.h中的D7定义还将uint8_t标记为未定义,但按F12时也会显示它的定义)

正如我所说,尽管如此,脚本可以很好地编译、上传和运行。我可以忽略错误,但我的强迫症不允许我这样做。 ;)

我安装了Microsoft的Arduino for Visual Studio Code v0.2.29(最新版本)扩展程序和ESP8266 Community板定义v2.6.3。我正在使用Oliver的U8g2库,版本为2.27.6。

有人对此有什么想法吗?


有人想到什么主意吗? - Slugsie
1个回答

2

我遇到了相同的问题,看起来问题在于与默认的Arduino IDE不同,此扩展程序没有包含必要的最基本库以处理Arduino文件。因此,我必须手动添加Arduino.h。

#include <Arduino.h>

然后你需要找到你的pins_arduino文件并将其位置添加到includePath中。类似这样,在c_cpp_properties.json中更改includePath为以下内容:

"includePath": [
    "C:\\Users\\[USER]\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\**",
    "C:\\Users\\[USER]\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\2.6.0\\**",
    "C:\\Users\\[USER]\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\2.6.0\\variants\\ESPDuino"
],

希望这能解决您的问题。

我在编辑器中遇到了错误 identifier "D0" is undefinedC/C++(20),但是它可以编译和运行。你有什么想法应该包含什么? - M at
1
@Mat,VScode IntelliSense不知道D0是什么意思,但编译器知道。这就是为什么你会从VScode得到错误提示,但你仍然可以编译它。如果这让你感到困扰,正如我之前所说,你必须查找pins_arduino.h文件并将其位置添加到includePath中。如果你正确地做了这件事,你应该能够Ctrl+单击D0并直接进入pins_arduino.h文件。 - Pooya Sajjadi
我最终使用了 "forcedInclude": ["C:\\Users\\***username***\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\2.7.2\\variants\\d1\\pins_Arduino.h"] 来强制 IDE 识别它。 - M at

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接