VSCode运行Arduino脚本的硬件编程教程
使用VSCode运行Arduino脚本需要依赖Arduino命令行工具,必须安装并配置其路径。通过执行Arduino初始化命令,生成arduino json配置文件,并正确选择开发板型号和串口号。此外,串口权限、驱动程序安装、端口独占以及构建缓存清理都会影响上传成功率。如果配置不正确,上传可能失败。
许多开发者在 VS Code 中尝试编写 Arduino 程序时,点击 Upload 却发现毫无反应,进度条一动不动。实际上,VS Code 本身并不直接执行 Arduino 脚本,它只是调用底层命令行工具 arduino-cli 来完成编译与烧录。换句话说,只要缺少任何一个环节——例如未安装 arduino-cli、未初始化项目、未正确选择开发板或串口——点击 Upload 就如同空转。下面我们将逐一拆解这些关键步骤,每一步都不可或缺。

arduino-cli 未安装或路径配置错误?Upload 按钮直接变灰不可用
插件本质上只是一个图形界面,真正的编译和烧录工作完全依赖 arduino-cli。如果没有正确安装它,或者 VS Code 在系统 PATH 中无法找到它,Upload 按钮就会呈现灰色,无法点击。因此,手动安装这一步无法跳过。
- Windows:前往 GitHub releases 下载
arduino-cli_0.41.2_Windows_64bit.zip,解压后将arduino-cli.exe放入C:\tools目录,然后在 VS Code 设置中填写完整路径:C:\tools\arduino-cli.exe。 - macOS:推荐使用
brew install arduino-cli进行安装,更加省心;若手动下载,务必执行chmod +x arduino-cli并创建软链接到/usr/local/bin/arduino-cli。 - Linux:运行
which arduino-cli确认实际路径,然后在 VS Code 设置中arduino.path必须填写绝对路径(例如/home/you/.arduino15/arduino-cli),不允许使用符号链接。 - 验证安装是否成功:在终端执行
arduino-cli version,如果能看到版本号才算通过;若没有任何输出,请先检查路径问题,不要继续后续操作。
如果跳过初始化步骤?.vscode/arduino.json 无法自动生成
新建项目后若跳过 Arduino: Initialize 命令,后续所有板型和端口选择都会失效——状态栏不会出现 “Select Board” 或 “Select Serial Port” 选项。这一步是整个配置的基石。
- 打开一个空文件夹 → 在 VS Code 中打开该文件夹 → 按下
Ctrl+Shift+P(Windows)或Cmd+Shift+P(macOS)→ 输入Arduino: Initialize并回车。 - 选择 “Arduino” 模式(而非 PlatformIO),然后从列表中选择完整的板型标识,例如
arduino:a vr:uno,而不是仅写 “Uno” 或 “Arduino Uno”。 - 生成的
.vscode/arduino.json文件中,"board"和"port"字段必须存在,且拼写必须严格准确(注意大小写、冒号和双引号),JSON 中不能出现单引号或多余逗号。 - 如果列表中找不到你的开发板(例如 ESP32),先在终端运行
arduino-cli core install esp32:esp32,然后重启 VS Code 再试。
串口选择错误或权限未赋予?上传时提示 “No device found on COM3”
VS Code 不会自动刷新串口列表——当你拔插开发板后,状态栏显示的仍然是之前的旧端口,如果不手动重新选择,上传必定失败。
- 连接开发板后,按下
Ctrl+Shift+P→ 输入Arduino: Select Serial Port→ 从下拉菜单中选取正确的端口:Windows 下为COM3,macOS 下为/dev/cu.usbmodem14301,Linux 下为/dev/ttyUSB0。 - macOS 用户需注意区分
/dev/cu.*(正确)和/dev/tty.*(通常无效);Linux 用户需要确保当前用户属于dialout组:执行sudo usermod -a -G dialout $USER,然后完全退出 VS Code 再重新打开(仅 Reload Window 不会生效)。 - Windows 上请检查设备管理器中的 USB-SERIAL CH340 或 CP210x 是否带有黄色感叹号;如果驱动未正确安装,端口根本不会出现在列表中。
- 上传之前务必确认端口没有被其他程序占用(如 Arduino IDE、串口助手、Python 脚本等),否则会出现
a vrdude: ser_open(): can't open device这类静默错误,并非硬件问题。
上传卡住、烧录旧代码、监视器显示乱码?常见问题及解决套路
表面看像是通信故障,但很多时候是由于缓存未清理、FQBN 参数填写错误,或者开发板未能进入编程模式导致的。
- 首先删除项目根目录下的
build/文件夹再试——arduino-cli默认会复用上次的构建产物。 - 检查
arduino.json是否缺少"fqbn"字段,或者其值填写不完整(例如 Nano 需要arduino:a vr:nano:cpu=atmega328)。 - 对于 Nano 这类较老的开发板,需要手动复位:点击 Upload 后 1 秒内按下板载复位键;UNO 通常可自动复位,但遇到 CH340 异常时也需要手动按下。
- 监视器显示乱码?90% 是因为端口被占用:上传后 CLI 会独占串口,如果其他程序仍连接着该端口,VS Code 监视器连接的只是空连接——请将所有串口相关软件关闭后再试。
最容易忽视的一点是:所有配置(CLI 路径、核心安装、串口权限)都必须在执行 Arduino: Initialize 之后再进行;如果先随意点击 Select Board 再补全环境设置,大概率会引发状态不一致,错误信息也含糊不清,导致难以定位原因。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
AWS RDS 数据库配置入门与基础操作指南
本文介绍了AWSRDS的基本概念与核心价值,即提供托管式关系数据库服务,简化运维。详细阐述了创建RDS实例的关键配置步骤,包括引擎选择、实例规格、存储与网络设置。最后,指导读者如何通过多种方式安全连接至数据库实例,并开始进行数据操作,为后续应用开发奠定基础。
PHP MVC中AJAX请求无法调用控制器方法的原因与解决方案
PHPMVC中AJAX请求返回整页HTML的常见原因是控制器方法未正确输出响应或未终止执行,导致框架渲染视图。解决方法是在控制器中设置JSON响应头、输出数据后调用exit()明确终止,同时前端使用小写url和dataType: "json "。
Go语言手动构造rsa.PublicKey:正确初始化大整数模数N完整指南
手动构造RSA公钥时,模数N为*big Int类型,不能直接使用超长十进制字面量,需通过SetString或UnmarshalText方法解析字符串。公钥指数E可直接赋值,推荐65537。生产环境应使用rsa GenerateKey生成密钥对,避免手动构造引发的安全和格式错误。
Go语言实现HTTP定时轮询监控多URL响应时间与状态检测
使用Go语言实现HTTP定时轮询监控,通过按行分割与Tab解析URL列表,避免闭包陷阱和nil指针,每个URL启动独立ticker安全并发请求,并配置超时控制与资源关闭,确保响应时间与状态码准确检测。
Tkinter中Label标签在主循环动态更新的正确方法
在Tkinter中正确动态更新标签的方法:将标签组件的textvariable参数绑定到一个StringVar变量,然后通过调用该变量的 set()方法更新其值,界面会自动刷新。这样避免直接修改text属性或调用update()。此做法实现数据与界面的解耦,代码更简洁,响应更及时,避免手动同步的闪烁,推荐做法。
- 热门数据榜
相关攻略
2026-07-10 06:41
2026-07-10 06:40
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

