外观
PlatformIO 与 pioarduino
PlatformIO 是一个跨平台的嵌入式构建与工程管理工具,常以 VS Code 扩展形式使用。它本身不是「框架」,而是把工具链、库管理和多开发板配置统一起来;在 ESP32 上,它可以驱动 Arduino 或 ESP-IDF 框架。对 ESP32 用户来说,当下最重要的是搞清楚平台包的来源。
概览
在 PlatformIO 中,开发板由「平台」(platform)定义。ESP32 对应的官方平台是 platformio/platform-espressif32。查看其 GitHub 发布页(2026-10-14):
- 最近的版本是 7.1.x 系列,支持 ESP-IDF 到 v6.1(7.1.0 加入)。
- 但这些发布说明里 Arduino 框架始终标注为 2.0.17,基于 IDF v4.4.7。也就是说,官方平台里的 Arduino 核心停留在 2.x,没有 Arduino-ESP32 3.x。
- 发布页没有明文宣布「停止更新 Arduino」,这是根据版本号推断的现象;官方 PlatformIO 团队的态度请以其公告为准。
由于 Arduino-ESP32 3.x 带来的新芯片支持(如 ESP32-C5、P4 的 Arduino 支持)和 API 变化,社区出现了分支项目 pioarduino(pioarduino/platform-espressif32)。
关键信息
官方平台的写法
ini
; platformio.ini,本地电脑上用 PlatformIO 构建
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200使用官方平台时,Arduino 代码跑在 2.x 核心上,较新的芯片可能没有 Arduino 支持,但 framework = espidf 一般更新得快。
pioarduino 的写法
pioarduino 的 README 给出的稳定版写法如下:
ini
[env:stable]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
framework = arduino
board = esp32dev开发版则使用 platform = https://github.com/pioarduino/platform-espressif32.git#develop。README 当时写明 stable 是 Arduino 3.3.12 与 IDF v5.5.5,与上一篇 Arduino-ESP32 中的稳定版对应。
pioarduino 还有几个特点:
- 默认文件系统为 LittleFS,可用
board_build.filesystem切换。 - 提供「Hybrid compile」功能,使 Arduino 可用于 ESP32-C2、C61 和 solo1 等官方 Arduino 包支持不完整的芯片。
- 有自己的 VS Code 扩展 pioarduino IDE 和安装脚本。
- 板级问题由社区通过 PR 修复,维护者不负责逐个开发板。
- 它是社区项目,不是乐鑫或 PlatformIO 官方产品。
怎么选
| 场景 | 建议 |
|---|---|
| 已有老项目基于 Arduino 2.x,稳定运行 | 保持官方平台,不必折腾 |
| 要 Arduino 3.x 的新 API 或新芯片 | pioarduino |
| 只用 ESP-IDF 框架,想要 VS Code 管理 | 官方平台 framework = espidf 或直接用乐鑫的 VS Code 扩展,见 ESP-IDF |
| 完全不想管构建细节 | Arduino IDE 2.x |
社区分支的维护风险
pioarduino 依赖社区维护者的持续投入。把它用在长期项目前,锁定平台版本(用具体 release 链接而不是 stable),并保存一份构建产物与工具链缓存,以免上游变动导致无法复现构建。
适合谁 / 不适合谁
适合需要多开发板、多环境(debug / release)、CI 自动构建或依赖版本锁定的用户。不适合只想「点一下上传」的纯新手,对他们来说 Arduino IDE 更直观。
参考资料
- PlatformIO 官方 ESP32 平台发布页:https://github.com/platformio/platform-espressif32/releases
- pioarduino 平台仓库:https://github.com/pioarduino/platform-espressif32
- PlatformIO 文档(Espressif 32):https://docs.platformio.org/en/latest/platforms/espressif32.html