Arduino vscode: идентификатор «sprintf» не определен

#visual-studio-code #arduino #vscode-settings #arduino-ide

#arduino #visual-studio-code #arduino-ide

Вопрос:

Я только что установил vscode-arduino плагин для VSCode, потому что мне действительно хотелось бы прекратить работать в этой ужасной IDE. При его настройке я столкнулся с парой проблем, одна из них потребовала от меня понизить установленную arduino IDE до версии 1.8.6, а другая потребовала от меня добавить defines: 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
}
  

Если у кого-нибудь есть какие-либо предложения, мы будем признательны!

Комментарии:

1. Отвечая на заголовок — если вы хотите использовать sprintf , то включите stdio.h из стандартной библиотеки AVR.

2. Я пробовал это, но это не устраняет проблему. На самом деле это проблема из расширения vscode-arduino, я полагаю, потому что, когда я его компилирую, оно не выдает никаких ошибок. Это также начало происходить с SPI и переменными прямого доступа к порту, такими как PINB, PORTB и т.д.

Ответ №1:

У меня было несколько похожих проблем с VS Code IntelliSense для 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.

Это изменение решило мои проблемы с неопределенным идентификатором.