sublime text 不能直接编译烧录 arduino 代码,因其仅为文本编辑器,需通过 arduino-cli 和自定义 build system 实现编译上传;头文件补全需手动配置路径或借助 platformio。

Sublime Text 能不能直接编译烧录 Arduino 代码
不能。Sublime Text 本身只是文本编辑器,没有内置编译器、avr-gcc 工具链或 avrdude 烧录能力。它只能“写”代码,不能“构建”和“上传”。想用 Sublime 写 Arduino,必须靠外部工具链 + 构建系统桥接。
怎么让 Sublime 调用 Arduino CLI 编译和上传
推荐用官方 arduino-cli(比旧版 IDE 更轻、更适配编辑器集成),配合 Sublime 的 Build System 实现一键编译/上传。
- 先装好
arduino-cli,并运行arduino-cli config init初始化配置 - 确保已通过
arduino-cli core install arduino:avr安装 AVR 核心 - 在 Sublime 中新建 Build System(Tools → Build System → New Build System),填入:
{
"cmd": ["arduino-cli", "compile", "--fqbn", "arduino:avr:uno", "$file"],
"working_dir": "${file_path}",
"selector": "source.cpp",
"variants": [
{
"name": "Upload",
"cmd": ["arduino-cli", "upload", "-p", "/dev/ttyUSB0", "--fqbn", "arduino:avr:uno", "$file"]
}
]
}
-
/dev/ttyUSB0需换成你实际的串口(macOS 是/dev/cu.usbmodem*,Windows 是COM3等) -
arduino:avr:uno要匹配你的板子型号,查可用列表用arduino-cli board listall | grep avr - 保存为
Arduino.sublime-build,之后按Ctrl+B编译,Ctrl+Shift+B选 Upload 上传
为什么不用 Package Control 里的 Arduino 插件
老插件(如 Arduino-IDE 或 Stino)依赖已弃用的 Arduino 1.x API,不支持 Arduino CLI,且多年未更新。常见问题包括:
- 板子列表为空,
Board not found错误反复出现 - 上传时卡在
Connecting to programmer: .,实则是串口权限或 avrdude 版本不兼容 - 无法识别
platformio.ini或新式库管理方式 - 插件自身会偷偷下载旧版工具链,和系统级
arduino-cli冲突
不如直接用 CLI + 自定义 Build System,路径可控、出错可读、升级明确。
头文件和自动补全怎么解决
Sublime 默认不索引 Arduino 核心库,#include <arduino.h></arduino.h> 会标红、跳转失效、无函数提示。这不是语法错误,是符号未加载。
- 手动添加头文件路径到 Sublime 的
index_files(需配合插件如EasyClangComplete或SublimeCodeIntel) - 更简单做法:用
arduino-cli sketch create新建项目,它生成的标准结构含src/和lib/,再把整个目录用 Sublime 打开 —— 这样核心路径能被部分插件自动识别 - 如果只写简单 Blink,其实补全不关键;但涉及
Wire.h、SPI.h等,建议搭配 PlatformIO 插件(它原生支持 Arduino 生态,且 Sublime 可通过platformio-ide的 CLI 模式接入)
真正卡住人的往往不是写代码,而是板子没响应时不知道该查串口权限、驱动、FQBN 是否匹配,还是 arduino-cli 的缓存坏了 —— 这些都比编辑器配置重要得多。











