使用VS Code开发Arduino

2023-11-15

目的

Arduino官方的IDE作为编辑器的功能挺简陋的,用起来并不是很舒服,相比较之下用VS Code(Visual Studio Code)作为编辑器来说就好用多了。现在我们可以在VS Code中安装Arduino插件来开发Arduino。这篇文章将对相关内容做个说明。

软件安装

虽然可以使用VS Code开发Arduino,但是Arduino相关的包管理、库管理、编译上传等功能都得由Arduino IDE提供,所以我们还是需要安装Arduino IDE。

Arduino IDE下载页面:https://www.arduino.cc/en/software
VS Code下载页面:https://code.visualstudio.com/
推荐在安装时选中 将“通过 Code” 操作添加到Windows资源管理器目录上下文菜单 ,如果没有选的话也可以通过再次安装软件来选择:
在这里插入图片描述

在上面两个软件安装完成后,接下来打开VS Code,在扩展中搜索Arduino,选择Microsoft出品的那个,安装该扩展:
在这里插入图片描述

快速使用

如果你的Arduino IDE是安装到默认路径下的话,那什么都不需要设置就可以在VS Code中通过Arduino插件进行开发了;如果不是那可能就需要在插件中设置Arduino IDE路径了,注意修改设置后可能需要重启VS Code才会生效:
在这里插入图片描述

创建一个文件夹,在文件夹中创建和文件夹名相同并且后缀为 .ino 的文件,使用VS Code打开该文件夹,在资源管理器中选中 ino 文件时软件会自动识别该项目为Arduino的项目,这时候可以在左下看到Arduino内置的一些例程。接下来在右下角选择开发板,选择后VS Code就会自动在目录下生成名为 .vscode 的文件夹:
在这里插入图片描述

.vscode 文件夹用于保存该项目相关的配置文件,默认情况下其中会有一个 arduino.json 文件,我们可以在其中添加 "output": "./build" 参数,这个参数的作用是将当前工程编译过程中间文件输出到当前目录下的 build 文件夹中,这可以加快后面重复编译时的速度:
在这里插入图片描述

完成上面的设置后就可以编写代码然后点击右上角按钮进行编译了,默认请情况下会在编译时添加项目需求的库文件路径,这样在后面写代码时就可以有代码提示功能了:
在这里插入图片描述
如果编译时路径还有问题,或着添加了新的库后可以尝试按键盘上 Ctrl+Alt+I ,或者查看下右下角的C/C++配置是否正确。库文件路径和代码提示这些可能还需要C/C++插件支持:
在这里插入图片描述

到目前为止我们已经可以使用VS Code开发Arduino了,如果想要开发第三方的开发包(第三方库同理),需要先在Arduino IDE中安装开发板数据包,比如对于ESP32来说 可以参考 《使用Arduino开发ESP32(01):开发环境搭建》 这篇文章的 开发环境搭建 章节进行安装。安装完成后就可以在VS Code Arduino下选择这些开发板了:
在这里插入图片描述
上面演示中再选择对应开发板后,关闭该页面,再次打开后就可以设置该开发板的参数了。

我们可以在软件右下角选择串口和打开串口监视器:
在这里插入图片描述

更多说明

编译输出时中文乱码

目前广泛存在的一个问题时编译输出时中文会乱码,比较常见的解决问题是修改VS Code的Arduino扩展代码或者降低 Arduino IDE 版本。就我个人而言倾向于直接不要中文,将 Arduino IDE 的语言改为英文就好了:
在这里插入图片描述

Arduino扩展配置说明

VS Code的Arduino扩展大概总共有二十多个可配置的参数,可以在该扩展的详情页看到相关的介绍。这些参数主要分为两部分,这里介绍下这两部分参数配置保存的地方。

一部分参数是全局有效的参数,这些参数可以在该扩展详情页中进入配置,这里配置的参数修改的是VS Code全局的用户配置文件 settings.json ,这个文件中以 arduino. 开头的参数都是Arduino扩展的参数:
在这里插入图片描述

还有一部分参数是每个项目本身的参数,比如用的什么开发板、串口参数等,这些参数位于前面提到的项目文件夹中的 .vscode/arduino.json 文件中:
在这里插入图片描述

另外前面部分的那些全局参数也可以每个项目单独设定,在 .vscode 文件夹中建立 settings.json 文件,然后再该文件中编写相关的配置就行,相同的参数项目中比全局的优先级更高。

使用 arduino-cli

前面演示中我们编译上传以及开发板的管理这些都是依赖 Arduino IDE 的,现在我们还有一个新的选择 arduino-cli ,其项目地址如下:
https://github.com/arduino/arduino-cli

使用该工具时VS Code的Arduino扩展必须要配置如下两项:

"arduino.useArduinoCli": true,
"arduino.path": "arduino-cli路径"

目前版本下默认就会推荐使用 arduino-cli
Arduino IDE 2.1.1 VSCode 1.81.1 Arduino扩展v0.6.0),安装扩展重启软件打开项目时会进行提示,也可以手动进行配置:
在这里插入图片描述

总结

使用VS Code开发Arduino总体来说还是很方便的。

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

使用VS Code开发Arduino 的相关文章

随机推荐

  • Vue3-自定义轮播图插件(逐步-1)

    1 大致框架建好 在src文件下新建一个文件XX 在XX中建立一个index vue作为主页面 在文件XX里建一个components文件用于存放组件 在components文件中建一个slideBox vue来写我们的轮播图主体 在sli
  • BGP总结

    BGP总结 BGP 边界网关协议 使用范围 BGP范围 在AS之间使用的协议 协议的特点 算法 路径矢量型 没有算法 协议是否传递网络掩码 传递网络掩码 支持VLSM CIDR 协议消息数据包封装 基于TCP封装 端口号 179 AS 自治
  • mybatis中代码复用问题resultMap、sql、include标签

    xml映射文件 对于重复出现的sql 片段可以使用sql标签提取出来 在使用的地方使用include标签引用即可 MyBatis之ResultMap标签 ResultMap标签基本作用 建立SQL查询结果字段与实体属性的映射关系信息 在深入
  • 华为OD机试 - 求符合要求的结对方式(Java )

    题目描述 用一个数组A代表程序员的工作能力 公司想通过结对编程的方式提高员工的能力 假设结对后的能力为两个员工的能力之和 求一共有多少种结对方式使结对后能力为N 输入描述 5 1 2 2 2 3 4 第一行为员工的总人数 取值范围 1 10
  • Mxnet在Windows10, vs2015平台的编译及开发-CPU版本

    环境 基础配置 Windows10 cmake3 11 1 vs2015 QT5 11 1 mxnet配置 OpenBLAS v0 2 9 Win64 int32 opencv3 4 1 相关资源百度云链接 https pan baidu
  • 机器学习——L1范数充当正则项,让模型获得稀疏解,解决过拟合问题

    问 使用L2范数正则项比L1范数正则项得到的是更为稀疏的解 答 错误 L1范数正则项得到的是更稀疏的解 因为在L1正则项中 惩罚项是每个参数绝对值之和 而在L2正则项中 惩罚项是每个参数平方的和 L1正则项可以压缩参数中的小值 更容易导致一
  • MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较

    前段时间做拦截件监控的时候把拦截件生命期存入mongodb 因生命期有各种变化 因此对此表的更新写操作非常多 老大给我看了一篇文章 才知道mongodb已经支持lsm存储方式了 原文如连接 https github com wiredtig
  • MongoDB安装时无法启动服务

    在安装MongoDB数据库的时候 有可能出现安装速度较慢 然后取消安装以后 再一次重新去安装的时候 在安装的最后一步可能会出现无法启动服务的现象 这种情况直接点击Ignore 完成安装以后 打开DOS窗口 使用该命令将MongDB服务删除掉
  • Qt UI 入门之QPushbutton

    Qt UI 入门之QPushbutton QPushbutton
  • 邻接表图,增加、删除、修改,功能齐全,有双权和有单权

    刚刚考完 纪念一下 虽说不是考试提交的最终代码 但是是我提前准备的考试源码 供给考试使用 这是单权 下面是双权的 include
  • linux jobs命令

    原文链接 http blog 163 com a7701 126 blog static 20821732201276231717 fg bg jobs ctrl z都是跟系统任务有关的 虽然现在基本上不怎么需要用到这些命令 但学会了也是很
  • AtCoder Beginner Contest 313

    A To Be Saikyo atcoder jp AC代码 include
  • Android EventBus收不到消息事件?又给自己挖坑了吧

    骚年 老给自己挖坑 该扇嘴巴子了 检查一下看是不是以下几种情况 没有register事件 事件类没对上号 比如导错包 接收事件的方法不是public 事件被优先级更高的拦截且中断了
  • 怎么将webm文件转换成MP4格式在手机上播放

    由于各品 不同型号的手机配置不同 手机支持的视频格式也可能不同 比较常见的就是视频格式转换 即将手机不支持播放的格式视频转换成手机支持的格式视频 手机最常用的格式是MP4 3GP 3G2等格式 所以我们只需将在电脑上下载的视频转换成这些适合
  • 想用Python做副业?看这一篇就够了

    大家好 我是耿直 随着人工智能 大数据 物联网的广泛应用 与之紧密关联的Python技术开始受到人们的极大关注 各行业对Python技术服务的需求量呈指数级暴增 尤以爬虫技术服务为甚 供不应求早已成为常态 而近两年受到各种不可抗力的影响 做
  • Linux(Centos7) 运行脚本程序,终端只返回 “已杀死”

    最近在实验室服务器上跑代码 没跑多久就显示 已杀死 而且只显示已杀死 没有任何其他打印和日志 1 确定不是代码的bug 2 网上搜了一大堆 全说是OOM的问题 就是代码消耗内存太多 被OOM killer杀死 但是我用的服务器内存确定充足
  • 百度地图marker点击切换icon以及上一个icon恢复原样

    var preMarker this map addEventListener click function e console log e if e overlay e overlay toString object Marker var
  • openresty+lua安装

    一 下载软件 下载ngx openresty xxx tar gz并解压 wget https openresty org download ngx openresty 1 9 7 1 tar gz ngx openresty xxx bu
  • 将包含children的数据解析构成iview的cascader或者树行需要的结构

    function convertTree rst const result 遍历 tree rst forEach item gt 解构赋值 let value value label label children children ite
  • 使用VS Code开发Arduino

    文章目录 目的 软件安装 快速使用 更多说明 编译输出时中文乱码 Arduino扩展配置说明 使用 arduino cli 总结 目的 Arduino官方的IDE作为编辑器的功能挺简陋的 用起来并不是很舒服 相比较之下用VS Code Vi