sublime text需依赖arduino-cli实现arduino真编译,stino插件因兼容arduino ide 1.x已失效;正确做法是手动安装arduino-cli、配置path、初始化并安装核心,再自定义build system指定fqbn、串口、工作目录和selector。

Sublime Text 本身不支持 Arduino 编译,所有“Build succeeded”都是假象——它只是调用 arduino-cli 做外包工作。想让它真干活,必须手动配齐路径、FQBN、串口和头文件搜索路径,漏一个就 Build failed。
为什么 Stino 插件现在基本不能用
Stino 依赖 Arduino IDE 1.x 的内部结构(比如硬编码读取 boards.txt、调用 Java 组件),而官方早已转向 arduino-cli 2.x,配置全变成 JSON 和扁平化目录。你现在装 Stino,大概率遇到:
Stino: Error: Failed to parse boards listAttributeError: 'NoneType' object has no attribute 'get'- 菜单项全灰、串口识别为空、上传无响应
- 它不读
arduino-cli config,还会覆盖你本地的平台配置
截至 2026 年 5 月,Stino 已无实质维护,GitHub 最后一次提交是 2017 年。
必须用 arduino-cli,且要手动加进系统 PATH
别下 Arduino IDE 图形版再试图“集成”——你要的是命令行工具链本身。正确做法是:
- 从
arduino-cli官方 releases 下对应系统的二进制(如arduino-cli_0.40.2_macOS_64bit.tar.gz) - 解压后把
arduino-cli文件移到/usr/local/bin(macOS/Linux)或加到 Windows 的系统环境变量PATH - 终端运行
arduino-cli version确认可执行;再跑arduino-cli config init生成默认配置 - 执行
arduino-cli core update-index && arduino-cli core install arduino:avr安装 Uno/Nano 所需核心 - 验证是否真通:在空目录放个
Blink.ino,终端执行arduino-cli compile -b arduino:avr:uno .,能生成.hex文件才算过关
Sublime 自定义 Build System 必须写对这四点
Tools → Build System → New Build System,填入以下内容(注意替换实际值):
{
"cmd": ["arduino-cli", "compile", "--fqbn", "arduino:avr:uno", "$file_path"],
"working_dir": "$file_path",
"selector": "source.arduino",
"variants": [
{
"name": "Upload",
"cmd": ["arduino-cli", "upload", "-p", "/dev/cu.usbmodem*", "--fqbn", "arduino:avr:uno", "$file_path"]
}
]
}
关键细节:
-
"selector": "source.arduino"决定该构建系统只对.ino文件生效 -
$file_path是当前文件所在目录,不是文件路径本身;编译必须在项目根目录下进行(即.ino文件所在目录) - 上传时
-p后的串口路径需匹配真实设备,macOS 常见为/dev/cu.usbmodem*或/dev/tty.usbserial*,Windows 是COM3、COM4等 - FQBN(Fully Qualified Board Name)必须与已安装的核心匹配,例如
arduino:avr:uno、esp8266:esp8266:nodemcuv2,错一个字符就报Unknown FQBN
最容易被忽略的是:Sublime 不会自动识别你的项目结构。如果你的 .ino 文件不在项目根目录,或者依赖其他 .h/.cpp 文件但没声明 include_dirs,编译会直接失败——它不会像 Arduino IDE 那样帮你自动扫同名文件夹下的所有源码。你得自己确保路径干净、依赖显式、FQBN 和串口实时可用。











