Sublime Text 本身不能编译或上传 Arduino 代码,所有功能均依赖外部调用独立安装的 arduino-cli;必须写死其绝对路径、显式指定 FQBN(如 arduino:avr:uno)和真实串口(如 /dev/cu.usbmodem14301),禁用已停更的 Stino 插件,并手动配置 include 路径以支持头文件跳转。

Sublime Text 本身不能编译或上传 Arduino 代码,它连 Arduino.h 都不认识——所谓“Build succeeded”,全是调用外部 arduino-cli 实现的。配错路径、漏写 --fqbn、串口名填成通配符,Build failed 就立刻报给你看。
arduino-cli 必须独立安装且路径写死
Sublime 启动时不会继承你终端里的 PATH,更看不到 Arduino IDE 图形版里自带的 arduino-cli。Stino 插件会偷偷覆盖你本地配置,还硬编码过时路径(比如 "arduino_app_path": "/Applications/Arduino.app/Contents/Java"),新版 IDE 结构已变,这条路早就走不通了。
- 从
arduino-cli官方releases页面下载对应系统的二进制(不是 IDE 安装包,也不是pip install arduino-cli——那是旧社区分支,不支持arduino:avr@2.3.5) - macOS/Linux:解压后放到
/usr/local/bin/arduino-cli,运行chmod +x /usr/local/bin/arduino-cli加执行权限,再跑arduino-cli version确认输出是0.39+ - Windows:解压到无空格路径,如
C: oolsrduino-cli.exe;Build System 中必须写成"cmd": ["C:\tools\arduino-cli.exe", "compile", ...](反斜杠要双写)
Build System 必须显式指定 FQBN 和真实串口
--fqbn 和 --port 是 arduino-cli compile 和 upload 的强制参数,漏一个就失败。FQBN 不是板子简称,串口也不能用 shell 通配符。
- FQBN 格式严格:
Uno是arduino:avr:uno,Nano是arduino:avr:nano:cpu=atmega328;写成uno或arduino:uno会触发Error: board arduino:uno not found - 查真实 FQBN:
arduino-cli board listall | grep -i uno(macOS/Linux)或直接运行arduino-cli board listall(Windows) - 查真实串口:macOS 运行
ls /dev/cu.*,Windows 看设备管理器里的COM3(注意没有冒号),Linux 用ls /dev/ttyACM*;拔插板子后务必重查 - Build System 中
"cmd"字段必须是数组,不能拼成字符串;$file_path指向的是 sketch 文件夹路径,不是.ino文件本身
.ino 文件命名和项目结构有硬约束
arduino-cli 对项目结构极其敏感,不满足规则就报 No sketch found。
- 项目根目录下只能有一个
.ino文件,且文件名必须与文件夹名完全一致(如blink/blink.ino) - 不能手动改名或新建多个
.ino;如果已有main.ino,得重命名为main/main.ino并确保文件夹也叫main - Sublime 不自动注入
#include "Arduino.h"或封装setup()/loop()——这些是arduino-cli在编译前做的预处理,它只认标准结构
头文件跳转失效?得手动补 include 路径
Sublime 默认找不到 Arduino.h,所以 Ctrl+点击 跳转会失败。这不是语法高亮问题,而是路径缺失。
- 先确认已装好
Arduino IDE Syntax Highlighting包(别选错成旧版),并手动把.ino关联到 Arduino 语法 - 右键项目文件夹 →
Preferences → Settings – Syntax Specific,添加如下内容(路径按你本地实际调整):{ "include_paths": [ "/Users/you/Library/Arduino15/packages/arduino/hardware/avr/1.6.23/cores/arduino", "/Users/you/Library/Arduino15/packages/arduino/hardware/avr/1.6.23/variants/standard" ] } - 这个路径要和
arduino-cli core install实际安装的位置一致;macOS 下通常在~/Library/Arduino15/,Windows 在%LOCALAPPDATA%Arduino15
最常被忽略的一点:Sublime 的 Build System 不解析核心库路径,#include <Arduino.h> 右键跳转基本不可用,Serial. 几乎无补全——这不是配置错了,是 Sublime 本来就不干这事。真要补全和跳转,PlatformIO 才是正解;Sublime 的定位,就是轻量编辑 + 稳定触发 arduino-cli。

















