1. ESP32 开发环境搭建:工欲善其事,必先利其器
做嵌入式开发,第一关永远是环境搭建。很多人觉得这事简单,不就是装个软件嘛。但我在带项目时见过太多人卡在这一步——板子连不上、编译报错、驱动装不上,折腾半天还没开始写代码就泄气了。
这一章,我带你把 Arduino IDE 装好、ESP32 板级支持包配好、驱动搞定。每一步我都会说清楚为什么这么做,以及我踩过的坑。
1.1 为什么选 Arduino IDE?
你可能想问:ESP-IDF 不是官方工具吗?为什么不用它?
我的回答是:看场景。ESP-IDF 功能强大,但学习曲线陡。对于 Wi-Fi 配网和网页配置这类偏应用层的开发,Arduino IDE 完全够用,而且上手快得多。我在做原型验证时,90% 的情况都用 Arduino IDE——改代码、烧录、看串口输出,一气呵成。
1.2 安装 Arduino IDE
去官网下载最新版。我建议你下载 1.8.x 版本,别急着用 2.0。为什么?1.8.x 更稳定,第三方库兼容性更好。我在 2.0 刚出时试过,有些库编译报错,折腾了半天又退回 1.8.x 了。
安装步骤很简单:
- 打开
arduino-1.8.19-windows.exe(以 Windows 为例) - 一路点 "Next",安装路径我建议用默认的
C:\Program Files (x86)\Arduino - 安装完成后,桌面会出现 Arduino 图标
1.3 配置 ESP32 板级支持包
Arduino IDE 默认不支持 ESP32。你需要手动添加板级支持包(Board Support Package, BSP)。说白了,就是告诉 IDE:"嘿,我要用 ESP32 这颗芯片,你把它的编译工具链和库给我准备好。"
操作流程:
- 打开 Arduino IDE,点击 文件 → 首选项
- 在 "附加开发板管理器网址" 里填入:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - 点击 工具 → 开发板 → 开发板管理器
- 搜索 "ESP32",找到 esp32 by Espressif Systems,点击安装
安装过程会下载约 200MB 的文件,包括编译器、工具链和库。网速慢的话,可能要等 10-15 分钟。我建议你找个网络好的时候做这一步,别在咖啡馆蹭网装——别问我怎么知道的。
1.4 安装 USB 驱动
ESP32 开发板通常使用 CP2102 或 CH340 芯片做 USB 转串口。你的电脑需要安装对应的驱动才能识别板子。
| 驱动芯片 | 常见开发板 | 驱动下载 |
|---|---|---|
| CP2102 | ESP32-DevKitC、NodeMCU-32S | Silicon Labs 官网 |
| CH340 | ESP32 廉价开发板、ESP32-WROOM-32 | WCH 官网 |
| FTDI | 部分老款开发板 | FTDI 官网 |
怎么判断你的板子用哪个驱动?插上板子,打开设备管理器,看 "端口 (COM 和 LPT)" 下面显示什么。如果是 "Silicon Labs CP210x",那就是 CP2102;如果是 "USB-SERIAL CH340",那就是 CH340。
1.5 选择开发板与测试烧录
驱动装好后,插上板子,在 Arduino IDE 里选择正确的开发板型号:
- 点击 工具 → 开发板 → ESP32 Arduino
- 选择 ESP32 Dev Module(大部分开发板都选这个)
- 选择正确的端口(比如 COM3 或 COM5)
然后我们写一个最简单的测试程序——点灯:
void setup() {
pinMode(2, OUTPUT); // ESP32 板载 LED 通常接 GPIO2
}
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
点击上传按钮。如果一切顺利,你会看到板子上的 LED 开始一秒一闪。恭喜你,环境搭建成功了!
1.6 本章知识结构
下面这张图帮你理清整个环境搭建的流程和关系:
1.7 避坑指南
环境搭建看起来简单,但坑不少。我把这些年遇到过的典型问题列出来,你遇到了可以直接对照:
- JSON 网址访问不了:我曾经在客户现场配环境,死活加不上 BSP。后来发现是公司网络屏蔽了 GitHub。解决办法:用手机热点,或者手动下载 JSON 文件放到
C:\Users\你的用户名\AppData\Local\Arduino15目录下。 - 编译报错 "ESP32 core 2.0.0 not found":BSP 版本太旧。去开发板管理器里更新到最新版。
- 上传时报错 "Timed out waiting for packet header":按住 BOOT 键再上传。如果还不行,检查串口线——有些劣质 USB 线只能充电,不能传数据。
- 串口监视器乱码:波特率没设对。ESP32 默认串口波特率是 115200,在串口监视器右下角选对就行。