Sublime配置Arduino单片机开发_Sublime编写硬件代码详细教程
Sublime Text需通过手动配置arduino-cli实现Arduino开发:必须独立安装arduino-cli并写死绝对路径,配置FQBN与串口,补充include路径解决跳转失效,弃用已停更的Stino,推荐PlatformIO替代

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
先说一个核心事实:Sublime Text 本身并不能直接编译或上传 Arduino 代码。你看到的那些语法高亮,它连 Arduino.h 这个头文件都不认识。所有在 Sublime 里成功的“编译”提示,背后其实都是调用了外部的 arduino-cli 工具来完成的。想让这套流程真正跑起来,你得亲手把命令路径、板型标识、串口设备这几个关键环节一一配好,但凡漏掉一个,Build failed 的报错就会立刻跳出来给你看。
arduino-cli 必须独立安装,别碰 Arduino IDE 自带的 CLI
Arduino IDE 的安装包里确实藏着 arduino-cli,但它通常被放在很深的目录里(比如 macOS 的 Contents/Ja va/bin/arduino-cli)。问题在于,这个路径不会自动加入系统环境变量,版本更新也麻烦,Sublime Text 启动时根本找不到它。所以,行业里的通用做法是单独下载二进制文件:
- 去
GitHub releases页面下载最新版(Windows 选.exe,macOS 根据芯片选arm64或amd64,Linux 选对应架构) - 解压后放到一个固定位置:macOS/Linux 推荐
/usr/local/bin/arduino-cli,Windows 推荐C:\arduino-cli\arduino-cli.exe - 打开终端,运行
arduino-cli version确认能输出版本号;接着运行arduino-cli core update-index && arduino-cli core install arduino:a vr来安装 Uno、Nano 这类板子所需的核心支持包
Build System 配置里必须写死 arduino-cli 路径
这里有个常见的坑:Sublime 启动时不会加载你在终端里配置的 ~/.zshrc 或者系统 PATH。这意味着,哪怕你在终端里输入 which arduino-cli 能正确显示路径,在 Sublime 里执行 Build 时,它依然会报 command not found。解决方法只有一条:不依赖任何环境变量,直接在配置里写上绝对路径。
操作步骤是,在 Sublime 里新建一个 Build System(Tools → Build System → New Build System),然后把类似下面的配置内容贴进去:
{
"cmd": ["/usr/local/bin/arduino-cli", "compile", "--fqbn", "arduino:a vr:uno", "$file_path"],
"working_dir": "$file_path",
"selector": "source.arduino",
"variants": [
{
"name": "Upload",
"cmd": ["/usr/local/bin/arduino-cli", "upload", "-p", "/dev/cu.usbmodem14201", "--fqbn", "arduino:a vr:uno", "$file_path"]
}
]
}
配置时,有几点需要特别注意:
/dev/cu.usbmodem14201这个串口名需要换成你电脑上真实的设备名(macOS 用ls /dev/cu.*查看,Windows 通常是COM3这样的格式)arduino:a vr:uno是完整的 FQBN(完全限定板型名称),不能简写成uno;想查看所有可用板型,可以在终端运行arduino-cli board listall- 把
selector设为source.arduino,可以确保这个构建系统只对.ino文件生效,避免误触发其他类型的文件
头文件跳转失效?因为 Sublime 根本没索引 Arduino 核心库
你是不是也遇到过,在代码里 Ctrl+Click 想跳转到 Wire.h 这样的头文件,结果 Sublime 却提示 “No definition found”?这其实不是插件的问题,根源在于 Sublime 默认不会去扫描 arduino-cli 安装的那些硬件包路径。它根本不知道 ~/.arduino15/packages/arduino/hardware/a vr/1.8.6/cores/arduino 这个目录的存在,自然不会把它加入索引。
解决这个问题,通常有两个可行的方案:
- 轻量级做法:直接在刚才的 Build System 配置里,增加一个
"include_dirs"字段,把核心库的路径填进去。例如:"include_dirs": ["~/.arduino15/packages/arduino/hardware/a vr/1.8.6/cores/arduino", "~/.arduino15/packages/arduino/hardware/a vr/1.8.6/variants/standard"](注意,路径中的版本号需要根据你实际安装的版本进行调整)。 - 功能增强做法:安装
EasyClangComplete这类代码补全插件。然后,在终端执行一次arduino-cli compile --export-binaries --verbose命令,从输出的详细日志里,把所有以-I开头的包含路径找出来,再逐一填到插件的配置文件(如ecc_config.json)里。
别用 Stino,PlatformIO 才是 Sublime 下唯一持续维护的替代方案
如果你在网上搜索 Sublime 开发 Arduino 的旧教程,可能会看到推荐 Stino 这个插件。但必须警惕的是,Stino 已经停更多年。它内部硬编码依赖 Arduino IDE 1.x 时代的 Ja va 架构和 boards.txt 文件格式,而现在的 arduino-cli 2.x+ 版本已经完全转向了 JSON 配置和扁平化的平台目录结构。这就导致 Stino 连板型列表都解析不了,常见的报错包括 AttributeError: 'NoneType' object has no attribute 'get' 和 Failed to parse boards list。
如果你需要板型管理、库自动安装、串口监视器这些一体化支持,目前最靠谱的选择是直接使用 PlatformIO:
- 通过 Sublime 的 Package Control 安装
PlatformIO IDE插件。 - 首次启动时,它会自动下载
platformio-core和atmela vr等平台文件,这个过程可能有点耗时,但只需一次。 - 新建项目时,选择
Arduino框架和Arduino Uno板型,它会自动生成platformio.ini配置文件。之后,编译(Ctrl+B)、上传(Ctrl+Alt+U)、打开串口监视器(Ctrl+Alt+I)这些操作就全部就绪了。
话说回来,还有一个容易被忽略的细节:Sublime 的 Build System 只管调用命令,它不会帮你处理串口权限、驱动兼容性或者板子的复位时机这些底层问题。所以,当上传失败时,最快速的排查方法其实是打开终端,手动运行一遍上传命令,比如 arduino-cli upload -p /dev/cu.xxx --fqbn arduino:a vr:uno ./Blink,查看原始的错误输出,这比盯着 Sublime 底部面板猜原因要高效得多。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
VSCode如何使用Extension API_VSCode Extension API使用总结
VSCode Extension API 使用总结:避开那些“坑你没商量”的细节 开发VSCode扩展,API文档看似清晰,但真到动手时,总会遇到一些“诡异”的问题:命令明明注册了却搜不到,监听的事件死活不触发,调试时一切正常,发布后用户却反馈崩溃。其实,很多问题都出在几个关键的生命周期和配置细节上
保障代码纯洁:通过Composer Exclude Files剔除无关测试数据
保障代码纯洁:通过Composer Exclude Files剔除无关测试数据 先说一个核心事实:Composer本身并没有提供一种配置选项,能让你在composer install或composer update之后,直接阻止某些文件(比如测试数据、fixtures、 env example等)被
VSCode如何设置中文语言界面_VSCode中文语言界面设置详解
必须安装 Microsoft 官方中文语言包并正确配置 locale json 文件,否则界面无法完全中文化;第三方汉化插件无效且可能导致乱码或崩溃。 是不是以为装完语言包,界面就自动变中文了?其实不然。如果 locale 配置没写对或者根本没生效,你可能会遇到一个“半中半英”的尴尬局面:菜单可能是
Composer如何管理多个依赖包_Composer依赖包批量管理技巧【详解】
Composer如何管理多个依赖包:批量操作的核心逻辑与避坑指南 Composer无批量管理原子命令,所有操作本质是修改composer json后执行update install;require仅支持单包,多包需多次调用或--no-update后统一更新;update后跟包名可安全批量更新;rem
Composer提示composer.lock文件版本过旧_执行update刷新锁定【同步技巧】
Composer提示composer lock文件版本过旧?先别急着update! 遇到Composer提示你的composer lock文件“过时”了?先停一下,别条件反射地敲入composer update。这个操作看似能解决问题,实则可能埋下隐患。 结论:不要盲目运行 composer upd
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

