使用Visual Studio Code开发Arduino踩坑日记(持续更新)

2023-05-16

使用Visual Studio Code开发Arduino踩坑日记(持续更新)

文章目录

  • 使用Visual Studio Code开发Arduino踩坑日记(持续更新)
  • 1.在browse.path中未找到包含文件
    • 问题描述
    • 问题分析
    • 解决思路
    • 解决过程
    • 附:查看库文件位置

环境描述:

  • Windows10
  • 由于项目要求Arduino IDE 1.5.2,亲测最新版本也可
  • VScode 1.49.3 (user setup)
  • Arduino插件 0.3.2

1.在browse.path中未找到包含文件

问题描述

在Arduino原生IDE中导入库没有问题,但是在VScode中导入库则有蓝色波浪线提示错误,底端调试控制台问题描述选项卡报错在browse.path中未找到包含文件。 C/C++ [x, 1]

截图如下

在这里插入图片描述

问题分析

VScode编辑Arduino文件实际上是调用的Arduino原生的IDE,因此所有的编译验证和上传本质上都是用的Arduino原生的IDE

而VScode则提供了文本编辑功能,包括代码补全和提示

Arduino的语法类似于C/C++,因此在Arduino中是使用C/C++的插件来提供代码补全和提示

所以问题出现在C/C++插件,C/C++插件找不到导入的库文件的位置,因此无法进行代码提示和补全

出现该问题就意味着一定安装了该插件,这个插件是微软官方出品的用于增强C/C++代码补全,提示,debugging和代码浏览的插件

在这里插入图片描述

因此问题就出现在该插件的库文件搜索路径上

解决思路

我们只需要编辑C/C++插件的库文件搜索路径,为其添加Arduino的库文件路径即可

VScode的所有插件的配置文件都保存在.vscode这个文件夹下

而VScode配置文件又分为全局配置文件和局部配置文件,局部配置文件就是当前工程项目的文件夹下的.vscode文件夹

局部配置文件如下,这里我的工程文件,即打开的文件是ARDUINOPROJECT

在这里插入图片描述

全局配置文件位置取决于安装的模式,是仅当前用户可用(user setup)还是此电脑所有人均可用,不同的安装模式全局的配置文件位置不同

我这里是仅当前用户(详见环境描述),因此全局配置文件位置在如下路径C:\Users\22321\.vscode(22321是我的用户名)

因此只需要在当前项目配置文件夹和全局配置文件夹下创建C/C++插件的配置文件,编辑相同内容即可(避免因为配置文件不同造成冲突)

此外,由于我们安装的Arduino插件中也会设定调用C/C++插件时候默认的搜索位置,因此我们还需要编辑Arduino插件中调用C/C++插件时候的路径搜索位置

解决过程

  1. 编辑局部配置文件夹下创建.vscode文件夹(如果有则不用创建),在其中创建c_cpp_properties.json文件,即C/C++配置文件

    写入如下内容

    需要注意的是,这里7,8,9三行是我自己的库文件位置,在配置自己的c_cpp_properties.json文件需要改成自己的库文件位置,查看自己的库文件位置后面有介绍

    第七行**表示当前文件夹下所有文件及文件夹都是库文件

      {
       "configurations": [
           {
               "name": "Win32",
               "includePath": [
                   "${workspaceFolder}/**",
                   "C:\\Program Files\\Arduino-1.5.2\\hardware\\arduino\\avr\\libraries\\**",
                   "C:\\Program Files\\Arduino-1.5.2\\libraries",
                   "C:\\Users\\22321\\Documents\\Arduino\\libraries"
               ],
               "defines": [
                   "_DEBUG",
                   "UNICODE",
                   "_UNICODE"
               ],
               "intelliSenseMode": "msvc-x64"
           }
       ],
       "version": 4
      }
    

    在这里插入图片描述

    保存

  2. 编辑局部配置文件
    将上面的局部配置文件c_cpp_properties.json复制到全局的配置文件

    在这里插入图片描述

  3. 编辑Arduino插件配置文件
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    添加如下内容

    "C_Cpp.default.browse.path": [
            "C:\\Program Files\\Arduino-1.5.2\\hardware\\arduino\\avr\\libraries\\**",
            "C:\\Program Files\\Arduino-1.5.2\\libraries",
            "C:\\Users\\22321\\Documents\\Arduino\\libraries"
        ],
    

    在这里插入图片描述

  4. 保存,重启VScode,问题解决

    在这里插入图片描述

附:查看库文件位置

Arduino库文件包含自带库文件和第三方库文件,第三方库文件通常位于如下路径C:\Users\22321\Documents\Arduino\libraries,注意22321是我的用户名,具体查看时需要修改为你自己的用户名

在这里插入图片描述

自带库文件位置通常位于ArduinoIDE 安装的位置,查看Arduino IDE安装位置就不说了

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Visual Studio Code开发Arduino踩坑日记(持续更新) 的相关文章

  • Arduino 无法被识别

    我不确定这是问问题的正确地方 但我在 stackoverflow 上看到过其他 Arduino 线程 所以我认为没问题 我的 arduino uno 兼容板未被识别 我在 Windows 8 和 Windows XP 上尝试过 当我打开设备
  • Android USB API:在充电和数据发送之间切换

    我开始使用 Android USB API 将数据从 Arduino 发送到 Android 设备 是否可以以编程方式在发送 接收数据之间切换并只为 Android 手机充电 我知道你不能同时做这两件事 而且 因为你必须打开一个FileIn
  • 无法通过 USB 将计算机时间同步到 Arduino

    我想将时间从我的电脑同步到arduino 我正在使用他们的时间库 但它不起作用 如何让arduino与我的电脑上的时间相同 我目前使用的是Mac 他们的文件说 在unix系统上 可以使用shell命令设置时间 TZ adjust 8 ech
  • Arduino 以太网扩展板未连接到 Web 服务器

    我在让 Arduino 以太网扩展板与服务器通信时遇到问题 串行监视器上的结果始终是 我的arduino代码是 include
  • 将字符串转换为字节数组,然后返回原始字符串

    在Java或Android中是否可以将字符串转换为字节数组 然后将其转换回原始字符串 我的目标是将一些字符串发送到微控制器 Arduino 并将其存储到 EEPROM 这是唯一的 1 KB 中 我尝试使用MD5 http en wikipe
  • 如何返回变量?

    我正在编写一个程序 将字母翻译成摩尔斯电码 然后将它们传输到 LED 并闪烁 我无法返回值 include
  • Arduino 错误:无法将参数 '1' 的 'String' 转换为 'char*' 到 'char* strtok(c​​har*, const char*)'

    我正在研究一个 arduino 分配 它分割传入的字符串并将字符串的术语放入 6 个不同的变量中 分割时的示例输入字符串有 6 个术语 我弹出以下错误 无法将参数 1 的 String 转换为 char 到 char strtok c ha
  • arduino安装DHT11库

    步骤操作如下 打开Arduino IDE 在菜单栏中选择 项目 gt 加载库 gt 管理库 在库管理器的搜索框中 输入 DHT sensor library 找到 DHT sensor library by Adafruit 点击 安装 安
  • Arduino:将数据存储在 EEPROM 中的轻量级压缩算法

    我想将大量数据存储到我的 Arduino 上ATmega168 http www atmel com devices atmega168 aspx ATmega328 http www atmel com devices atmega328
  • Arduino 中的字符串比较

    我正在开发基于网络的家庭自动化系统 因此我的Arduino向服务器发送请求并在串行监视器中获得以下响应以及 loneOn 这是由于Serial println r 陈述 HTTP 1 1 200 OK Date Mon 13 Oct 201
  • Arduino I2S 正弦波

    我正在开发一个项目 我想通过组合不同的正弦波来生成 简单 声音 我使用的是 arduino mkrZero 因为它内置了 I2S 接口 并且似乎有足够的处理能力来满足我的需求 I have wired my system exactly l
  • PySerial 从 Arduino 读取线路的延迟

    我正在使用带有基本 DigitalReadSerial 设置的 arduino uno 如下所述 http arduino cc en Tutorial DigitalReadSerial http arduino cc en Tutori
  • 如何将 ASCII char 转换为其 ASCII int 值?

    我想将 char 转换为它的ASCII http en wikipedia org wiki ASCIIint 值 我可以用所有可能的值填充一个数组并与其进行比较 但这对我来说似乎不正确 我想要类似的东西 char mychar k pub
  • 同时使用 GPRS 和 GSM

    我正在尝试使用 GSM GPRS 调制解调器的 GPRS 功能将数据发送到远程服务器 但我无法这样做 我在 Arduino 论坛上发布了一个问题 但没有得到任何回复 这是问题的链接 https robotics stackexchange
  • 终止导致设备或资源繁忙的进程:“/dev/ttyUSB0”?

    我使用以下 Python 代码连接到我的 Arduino 板 device glob glob dev ttyUSB 0 time sleep 1 arduino serial Serial device 115200 timeout 5
  • 为什么使用 libnfc 和 PN532 SHIELD 时“找不到 NFC 设备”

    我在 ArchLinux 上安装了 libnfc 并通过我的 Adafruit PN532 arduino SHIELD 使用它 nfc list返回消息 未找到 NFC 设备 我在 etc nfc devices d pn532 conf
  • ESP8266 I2C从机不确认数据

    我有一个 TM4C123 处理器作为 I2C 主处理器 一个 ESP8266 作为从处理器 对于 ESP 我使用的是 Arduino IDE 并在 2 5 2 版安装了 ESP8266 支持 它应该支持 I2C 从模式 但是 我无法让它工作
  • 将浮点数转换为字节数组的 C 函数

    我正在尝试创建一个函数来接受浮点变量并将其转换为字节数组 我找到了一段有效的代码片段 但如果可能的话 希望在函数中重用它 我也在使用 Arduino 环境 但我知道它接受大多数 C 语言 目前工作 float variable 1 11 b
  • 使用 Java 控制 Arduino

    我正在寻找一个LED http en wikipedia org wiki Light emitting diode用Java程序打开和关闭 我用 C 完成了这个项目大约 5 分钟 但用 Java 似乎更具挑战性 我让 Arduino 等待
  • 如何提高 PySerial 读取速度

    我目前正在构建一台使用 Arduino Mega2560 作为主控制器的机器 Arduino 通过串口连接 获取命令 执行它并每 1ms 吐出一堆测量数据 我有一个运行 Python 的 Raspberry Pi 为用户提供一个漂亮的 GU

随机推荐

  • HAL_UART_IRQHandler(UART_HandleTypeDef *huart)里面的中断接收函数

    目录 前言1 UART Receive IT2 HAL UART Receive3 HAL UART Receive IT 前言 看了很长时间串口中断的HAL库 xff0c 最容易混淆的就是函数的名称 xff0c 主要集中在UART Rec
  • 位操作读写寄存器一个字节的多个位

    一 写寄存器多个位 方法一 span class token comment bitStart 目标字节的起始位 length 位长度 data 存放改变目标字节位的值 b 写入后的一个字节值 span u8 mask
  • STM32 电压采集上位机 C#

    工具箱中添加progressBar 添加一个事件函数 xff0c 用于串口接收数据 xff0c 并显示电压值 private void PortDataReceivedEvent object sender SerialDataReceiv
  • cmake使用教程(一)多目录下多个文件的构建

    1 采用 out of source 外部构建多个目录多个文件 这里的文件存储方式如下 xff1a 其中build是构建目录 xff0c 即构建的结果和中间产物都在该目录下 include是包含目录 src是子函数的目录或是依赖文件的目录
  • vue 实现遍历后端接口数据并展示在表格中

    用前端的vue遍历接口 首先就需要有后端的JSON数据 这里可以自己去写接口 可以伪造JSON数据 整理是伪造的JSON数据 34 userId 34 1 34 deptId 34 103 34 userName 34 34 admin 3
  • STM32的存储器映射中的指针操作

    例如 xff1a GPIOB的端口输出数据寄存器ODR的地址是0x4001 0C0C 并且ODR寄存器是32位的 那么我们可以用如下代码对寄存器进行操作 xff1a unsigned int 0x4001 0C0C 61 0xFFFFFFF
  • Mac 启动Redis报错 没有指定的conf文件

    报错如下 xff1a Warning no config file specified span class token punctuation span span class token keyword using span the de
  • java 优化双重for循环

    首先我们要有两个对象分别是 学生信息 和 学生住宿信息 span class token keyword class span span class token class name Student span span class toke
  • 微服务 - gateway网关配置

    server port 10010 网关端口 spring application name gateway 服务名称 cloud nacos server addr localhost 8848 nacos地址 gateway route
  • 如何在手机或平板上编写代码?

    下面给大家推荐一款免费的 在线协作式 基于浏览器的 IDE的在线编程网站 支持语言包括 Java C 43 43 C C JavaScript CSS PHP等50多种主流开发语言 地址 The collaborative browser
  • 羊了个羊, 低配版开源代码来啦~

    前几天朋友圈突然被一个小游戏 羊了个羊 刷屏了 xff0c 出于好奇我也打算小玩一把试试 xff0c 结果没想到上头了 游戏的玩法非常简单 xff0c 类似 消消乐 xff0c 从一堆方块中找到相同图案的 3 个方块并消除即可 但没想到 x
  • MySQL 使用索引和不使用索引的区别(附17W条数据SQL文件)

    MySQL 使用索引可以减少查询的时间 xff0c 而不使用索引的查询会更加耗时 xff0c 因为MySQL需要扫描整个表 此外 xff0c 使用索引可以提高查询的性能 xff0c 同时也可以提高查询的可读性和可维护性 换句话来说 使用索引
  • 如何使用AI来帮你写代码(Cursor使用教程)

    x1f4ac 产品介绍 cursor是一个新的Ide xff0c 它使用Ai来帮助您重构理解调试并使用Cursor编写代码我们的目标是使构建软件的过程更快 更愉快 我们从头开始构建了一个代码编辑器 xff0c 对我们的第一个功能进行了原型设
  • [Java多线程-基础] 如何定位线程中的死锁问题?

    x1f512 死锁代码 下面提供的代码演示了死锁的情况 程序创建了两个线程 xff0c 线程1和线程2 xff0c 它们都试图以不同的顺序获取两个不同的资源 xff0c resource1和resource2 线程1首先获取resource
  • [Java多线程-基础] 避免线程死锁问题(ReentrantLock的使用)

    ReentrantLock 的设计初衷是为了提供一种比 synchronized 更加灵活和可控的锁机制 与 synchronized 相比 xff0c ReentrantLock 提供了更多的功能 xff0c 如可重入性 公平锁和中断锁等
  • IDEA插件:智能代码生成器,附带注释和性能/安全检测功能

    x1f680 1 安装插件 在插件中搜索关键字 biot 点击安装 x1f680 2 代码生成 右侧的侧边栏点击biot后 在下方的输入框中输入你要问的内容 x1f680 3 biot AI 选中选区中的代码 点击鼠标右键让ai来帮你改代码
  • 安装Windows Server 2016 服务器 标准版

    注意事项 xff1a 安装带桌面版的 管理员密码设置 xff0c 要 注意大小写加数字 xff0c 不然会设置失败 安装文件下载 xff1a MSDN 我告诉你 PE U盘 微PE 服务器的驱动 xff0c 可以自己到对应服务器厂家的官网上
  • 第五节:基于Pytorch的相关可视化

    第五节 xff1a 基于Pytorch的相关可视化 在Pytorch发布后 xff0c 网络及训练过程的可视化工具也相应的被开发出来来帮助用户监督所建立的模型的结构和训练过程 本章将讲解HiddenLayer库 xff0c HiddenLa
  • 第六节:Pytorch实现全连接神经网络

    第六节 xff1a Pytorch实现全连接神经网络 前面的五节中 xff0c 我们讲解了使用PyTorch搭建一个神经网络中需要的需要各种技巧 xff0c 包括 xff1a 网络的搭建 选择不同的实践技巧 xff08 优化器选择 学习率下
  • 使用Visual Studio Code开发Arduino踩坑日记(持续更新)

    使用Visual Studio Code开发Arduino踩坑日记 持续更新 文章目录 使用Visual Studio Code开发Arduino踩坑日记 持续更新 1 在browse path中未找到包含文件问题描述问题分析解决思路解决过