必须运行Arduino: Initialize初始化项目并正确配置arduino.json中的board字段,否则VSCode不显示开发板选项;还需安装arduino-cli、对应核心、驱动,并手动选择串口和波特率。

Arduino插件装了但找不到开发板选项
VSCode 默认不带 Arduino 支持,必须装 Arduino 官方插件(作者:Microsoft),不是第三方“Arduino IDE”或“PlatformIO”——后者是替代方案,但配置逻辑完全不同。装完插件后,Ctrl+Shift+P 输入 Arduino: Initialize 才会生成 .vscode/arduino.json 和 platformio.ini(如果选了 PlatformIO 模式);没运行这步,状态栏不会出现板子/端口选择器。
常见错误现象:Board not found、状态栏显示 No board selected、Arduino: Upload 灰掉。原因通常是:未初始化项目、arduino.json 里 board 字段为空、或 JSON 格式有误(比如多逗号、单引号)。
- 新建文件夹 → 用 VSCode 打开 → 运行
Arduino: Initialize→ 选 “Arduino”(非 PlatformIO)→ 按提示选开发板型号(如arduino:avr:uno) - 确认
.vscode/arduino.json中"board": "arduino:avr:uno"存在且拼写准确(大小写敏感,冒号不能少) - Windows 下若用 CH340 芯片(常见于国产 Nano),需单独安装驱动;macOS 13+ 可能需在「系统设置 → 隐私与安全性」中允许
CH34xUSBSerialDriver.kext
串口设备识别不到或上传失败报 permission denied
上传前必须手动指定串口,VSCode 不会自动猜。状态栏点击 Serial Port(通常显示 Select Serial Port),从下拉列表选对的端口:Windows 是 COM3 类,macOS 是 /dev/cu.usbserial-XXXX 或 /dev/cu.wchusbserialXXXX,Linux 是 /dev/ttyUSB0。选错端口或权限不足都会导致 avrdude: ser_open(): can't open device 或 Permission denied。
- macOS/Linux 下,用户需加入
dialout(Linux)或accessibility(macOS)组,或临时用sudo chmod a+rw /dev/cu.usbserial-*(不推荐长期使用) - Windows 用户遇到
Access is denied,检查是否被 Arduino IDE、串口调试工具或其他进程占用了 COM 口 - 上传时开发板需处于复位等待状态:部分板子(如 Nano)需在点击上传后 1 秒内按一下复位键;UNO 一般自动触发,但 USB 转串口芯片异常时也得手动复位
代码写完点 Upload 没反应或报 avrdude 错误
VSCode 的 Arduino 插件底层调用的是系统已安装的 arduino-cli,不是你本地的 Arduino IDE。如果没装 CLI 或路径不对,上传会卡住或报 command 'arduino.upload' not found。插件默认尝试从 PATH 找 arduino-cli,找不到就弹窗让你下载——但下载的版本可能和当前板子包不兼容。
- 先在终端运行
arduino-cli version,确认 CLI 已安装且 ≥ 0.35.0(旧版不支持新版 AVR 核心) - 在
arduino.json中显式指定 CLI 路径:"arduinoCliPath": "/usr/local/bin/arduino-cli"(macOS/Linux)或"arduinoCliPath": "C:\Users\xxx\AppData\Local\ArduinoCLI\arduino-cli.exe"(Windows) - 确保核心已安装:运行
arduino-cli core install arduino:avr;如果要用 ESP32,还得加espressif:esp32,否则上传时会提示Board xxx not found - 注意:
arduino-cli和 Arduino IDE 的板子管理是分开的,IDE 里装的库/板子,CLI 默认看不见
烧录成功但板子没运行,或 Serial Monitor 打不开
上传成功只代表二进制写进了 Flash,不代表程序逻辑正确或串口通信正常。Serial Monitor 是独立功能,需确保代码里有 Serial.begin(9600),且波特率和 Monitor 设置一致。VSCode 状态栏点击 Serial Monitor 后,默认打开的是 115200 波特率,如果代码用的是 9600,就得点右下角波特率数字手动改成 9600。
- Serial Monitor 无法连接常见于:端口被占用(比如另一个串口工具开着)、开发板未供电、USB 数据线仅充电(无数据线)、或板子崩溃卡死(可拔插 USB 重启)
- 某些板子(如 Leonardo、Micro)用
Serial是虚拟串口,需等while(!Serial);等待 Monitor 打开后再输出,否则首条信息会丢失 - 如果上传后 LED 不闪、串口无输出,先用 Arduino IDE 同样代码测试,排除硬件或 Bootloader 损坏可能
实际配置中最容易被忽略的是 arduino-cli 的独立性——它不读取 Arduino IDE 的配置,所有核心、库、板子都得用 CLI 命令重装一遍,而且不同版本 CLI 对核心的兼容性差异很大。别指望装个插件就万事大吉。











