Saltar al contenido

¿VS Code da errores de encabezado para Arduino? ¿Falta el encabezado oficial?

Si encuentras algún fallo en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes subir el código al proyecto final.

Solución:

Actualizar: No es necesario instalar bibliotecas adicionales. IntelliSense puede funcionar usando solo los encabezados instalados por la aplicación Arduino, pero algunos otros pueden ayudar. Más actualizaciones a continuación.

Cuando se compila VSCode, utiliza el SDK. Sin embargo, IntelliSense no puede leer los archivos SDK para operar (por lo que sé), lo que arroja estos molestos errores y elimina la mayoría de las capacidades de finalización de código.

Ambas cosas includePath y browse.path necesita ser configurado. includePath no incluye recursivamente (pero esa característica parece estar disponible pronto). browse.path es recursivo, pero incluye la ubicación exacta de los archivos de encabezado en includePath sigue siendo necesario para las funciones de IntelliSense. browse.path utilizará Tag Parser para proporcionar herramientas como la “bombilla” en la que puede hacer clic para ayudar a resolver su includePath asunto. (Fuente: ¿Cuál es la diferencia entre “includePath” y “browse.path” en c_cpp_properties.json?)


Mac:

avr/pgmspace.h se encuentra en: /Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/avr/pgmspace.h. Está codificado en las bibliotecas como avr/pgmspace.h; por esta razón, necesitamos incluir la ruta que avrSe encuentra en.

1. Instale homebrew-avr:

2. Edite c_cpp_properties.json:

"includePath": [
    "$workspaceFolder/libraries",
    "/System/Library/Frameworks/Kernel.framework/Versions/A/Headers",
    "/Applications/Arduino.app/Contents/Java/libraries",
    "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include",
    "/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/variants/standard"
],
"browse": 
    "limitSymbolsToIncludedHeaders": false,
    "path": [
        "/System/Library/Frameworks/Kernel.framework/Versions/A/Headers",
        "/Applications/Arduino.app/Contents/Java/"
    ]
,
"forcedInclude": [
    "/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h"
],

ventanas 10:

1. Instalar WinAVR

2. Edite c_cpp_properties.json:

Revisar includePath para verse así:

"includePath": [
    "$workspaceFolder/libraries",
    "C:/Program Files (x86)/Arduino/hardware/tools/avr/lib/gcc/avr/5.4.0/include",
    "C:/Program Files (x86)/Arduino/hardware/arduino/avr/cores/arduino",
    "C:/Program Files (x86)/Arduino/hardware/arduino/avr/variants/standard",
    "C:/Program Files (x86)/Arduino",
],

Método alternativo (probablemente una mala idea):

Si puede obtener una versión de cualquier biblioteca faltante, probablemente pueda ponerla en su libraries carpeta de su proyecto si su includePath incluye "$workspaceFolder/libraries". Asegúrese de asignar un espacio de nombres adecuado a sus bibliotecas, por ejemplo libraries/avr/pgmspace.h. No he probado este método.


Actualizaciones:

  • Cambiado de home.path a includePath. Vea más aquí: vscode-cpptools/FAQ
  • Las herramientas descargadas por el vscode-arduino Las bibliotecas no son necesarias en Windows 10.
  • Se cambiaron las rutas de configuración de Windows para usar barras diagonales en lugar de barras diagonales inversas con escape.

Fuente y más consejos: Habilitación de Arduino Intellisense con Visual Studio Code

La respuesta aceptada no funcionó para mí. No se puede encontrar ni crear el archivo c_cpp_properties.json. Además, quería que fuera global, y no solo para un proyecto/área de trabajo/carpeta.

Entonces, para VSCode 1.14 (2019), simplemente navego hasta settings.json (el global) y agrego esta sección json:

"C_Cpp.default.includePath": [
    "C:/Program Files (x86)/Arduino/libraries/**",
    "C:/Program Files (x86)/Arduino/hardware/arduino/avr/cores/arduino/**",
    "C:/Program Files (x86)/Arduino/hardware/tools/avr/avr/include/**",
    "C:/Program Files (x86)/Arduino/hardware/tools/avr/lib/gcc/avr/5.4.0/include/**",
    "C:/Program Files (x86)/Arduino/hardware/arduino/avr/variants/standard/**",
    "C:/Users//.platformio/packages/framework-arduinoavr/**",
    "C:/Users//Documents/Arduino/libraries/**",
    "$workspaceFolder/libraries/**",
    "$workspaceFolder/**"
],
"C_Cpp.intelliSenseEngine": "Tag Parser"

Publicó otra respuesta con todo el procedimiento y todos los detalles sobre el enfoque: Visual Studio Code includePath

Si conservas alguna indecisión o forma de beneficiar nuestro escrito te recordamos dejar una aclaración y con placer lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *