3. 开发环境搭建:SDK获取与编译(以ESP-MDF为例),串口驱动安装,烧录工具配置,第一条log打印
说实话,很多初学者一上来就急着写代码,结果卡在环境搭建上两三天。我见过太多人拿着开发板,驱动装不上、SDK编译报错、烧录没反应……然后就开始怀疑人生。
别急,这一章我带你一步步把坑填平。环境搭好了,后面写代码才顺手。
3.1 整体流程概览
先给你一张图,看看我们今天要干哪些事:
嗯,流程不复杂。但每一步都有小坑,我一个个说。
3.2 获取ESP-MDF SDK
ESP-MDF是乐鑫官方的Mesh开发框架,基于ESP-IDF。我个人习惯用Git来管理,方便后续更新。
打开终端,执行:
git clone --recursive https://github.com/espressif/esp-mdf.git
这里有个坑——--recursive参数不能省。它会把子模块一起拉下来。我刚开始做项目时忘了加这个参数,结果编译时一堆头文件找不到,折腾了半天才发现是子模块没更新。
cd esp-mdf
git submodule update --init --recursive
拉完后,检查一下目录结构。你至少应该看到esp-idf、components、examples这几个文件夹。缺了哪个都不行。
3.3 编译SDK示例
SDK拿到了,先别急着改代码。先编译一个官方示例,验证环境通不通。
进入示例目录:
cd esp-mdf/examples/get-started/hello_world
然后配置目标芯片:
idf.py set-target esp32
我建议你第一次用esp32,兼容性最好。如果你用的是ESP32-S3或C3,后面再改。
接着编译:
idf.py build
第一次编译会下载工具链,大概几分钟。如果卡住了,多半是网络问题。我遇到过好几次,换个镜像源就好了。
python --version
推荐Python 3.8~3.10。太新或太旧都可能出问题。
编译成功的话,终端最后会显示Project build complete。看到这个,恭喜你,环境基本没问题了。
3.4 串口驱动安装
编译通过了,但程序怎么烧进去?得靠串口。
市面上常见的ESP开发板,串口芯片有两种:
| 芯片型号 | 常见开发板 | 驱动下载 |
|---|---|---|
| CP2102 / CP2104 | ESP32-DevKitC、NodeMCU-32S | Silicon Labs官网 |
| CH340 / CH341 | 一些国产低价板 | 南京沁恒官网 |
| FT232 | 老款开发板 | FTDI官网 |
怎么看你的板子用哪种?看板子背面,或者插上电脑后,在设备管理器里看。Windows下如果显示"未知设备",那就是驱动没装。
我曾经帮一个朋友远程调试,他折腾了两天,最后发现是CH340驱动没装。装完立马识别。所以,别小看这一步。
3.5 烧录工具配置
驱动装好了,接下来把固件烧进去。
乐鑫官方提供了flash_download_tool,也有命令行工具esptool.py。我推荐用命令行,更可控。
在示例目录下执行:
idf.py -p COM3 flash
把COM3换成你实际的端口号。Linux/Mac下一般是/dev/ttyUSB0或/dev/ttyS0。
烧录时要注意:
- 开发板要进入下载模式。大部分ESP32开发板会自动进入,不需要手动按按钮。
- 如果一直卡在
Connecting...,试试按住BOOT键,再按一下EN键,然后松开BOOT。 - 波特率默认115200,不用改。
烧录成功后,终端会显示Hash of data verified。然后自动复位,程序开始运行。
3.6 查看第一条log
程序跑起来了,怎么看输出?用串口终端工具。
Windows下我习惯用PuTTY或MobaXterm。Linux下直接用screen或minicom。
配置参数:
- 波特率:115200
- 数据位:8
- 停止位:1
- 校验位:无
- 流控:无
打开串口,你应该能看到类似这样的输出:
ESP-ROM:esp32rom: Apr 18 2017 17:22:53
...
I (30) boot: ESP-IDF v4.4.2 2nd stage bootloader
I (30) boot: compile time 15:30:00
...
Hello World!
This is esp32 chip with 2 CPU core(s)
WiFi Mesh demo started
看到Hello World!了吗?这就是你的第一条log。虽然简单,但意义重大——它证明你的开发环境完全通了。
嗯,到这里,环境搭建就完成了。你可能会觉得步骤有点多,但相信我,一次配好,后面几十章都用得上。我每次换电脑或重装系统,都是按这个流程走一遍,从来没出过问题。
下一章,我们开始真正写Mesh代码。到时候你会发现,环境搭好了,写代码其实挺爽的。
公众号:蓝海资料掘金营,微信deep3321