Arduino vscode:标识符“ sprintf”未定义

问题描述

我刚刚为VSCode安装了vscode-arduino插件,因为我真的想停止在那个可怕的IDE中工作。在设置它时,我遇到了两个问题,其中一个问题要求我将已安装的arduino IDE降级到1.8.6版,另一个问题要求我添加定义:USBCON到我的c_cpp_properties.json。这是我的.vscode文件夹中的所有文件

arduino.json

{
    "board": "arduino:avr:nano","configuration": "cpu=atmega328old","sketch": "EEPROM_Programmer.ino"
}

c_cpp_properties.json

{
  "configurations": [
    {
      "name": "Win32","includePath": [
        "C:\\Program Files (x86)\\Arduino\\tools\\**","C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\**","C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr\\**"
      ],"forcedInclude": [
        "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino\\Arduino.h"
      ],"intelliSenseMode": "msvc-x64","compilerPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.24.28314\\bin\\Hostx64\\x64\\cl.exe","cStandard": "c11","cppStandard": "c++17","defines": ["USBCON"]
    }
  ],"version": 4
}

如果有人有任何建议,将不胜感激!

解决方法

我在VS Code IntelliSense for Arduino上也遇到了类似的问题。

以某种方式,IntelliSense无法与Visual Studio编译器一起使用。我已经更改了c_cpp_properties.json文件中的以下设置,以使用Arduino提供的编译器。

旧:

"intelliSenseMode": "msvc-x64","compilerPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.24.28314\\bin\\Hostx64\\x64\\cl.exe"

新功能:

"intelliSenseMode": "clang-x64","compilerPath": "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr\\bin\\avr-gcc.exe"

也许您必须调整Arduino文件夹的路径。

此更改解决了我的不确定标识符问题。