3. 开发环境搭建:SDK获取与编译(以ESP-MDF为例),串口驱动安装,烧录工具配置,第一条log打印

说实话,很多初学者一上来就急着写代码,结果卡在环境搭建上两三天。我见过太多人拿着开发板,驱动装不上、SDK编译报错、烧录没反应……然后就开始怀疑人生。

别急,这一章我带你一步步把坑填平。环境搭好了,后面写代码才顺手。

3.1 整体流程概览

先给你一张图,看看我们今天要干哪些事:

开发环境搭建流程 ① 获取ESP-MDF SDK git clone + 子模块更新 ② 编译SDK示例 idf.py build / make ③ 安装串口驱动 CP210x / CH340 ④ 配置烧录工具 flash_download_tool ⑤ 烧录固件到芯片 下载 + 复位 ⑥ 查看第一条log 串口终端:Hello World! 搞定!可以开始写Mesh代码了

嗯,流程不复杂。但每一步都有小坑,我一个个说。

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-idfcomponentsexamples这几个文件夹。缺了哪个都不行。

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版本不对,检查一下:
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驱动没装。装完立马识别。所以,别小看这一步。

验证方法:插上开发板,打开设备管理器,看到"端口(COM和LPT)"下面出现一个COM口,比如COM3或COM5,就说明驱动装好了。

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,不用改。
注意:烧录过程中不要拔掉USB线。我见过有人烧到一半断电,结果固件损坏,板子变砖。虽然ESP32有恢复模式,但折腾起来也麻烦。

烧录成功后,终端会显示Hash of data verified。然后自动复位,程序开始运行。

3.6 查看第一条log

程序跑起来了,怎么看输出?用串口终端工具。

Windows下我习惯用PuTTYMobaXterm。Linux下直接用screenminicom

配置参数:

  • 波特率: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。虽然简单,但意义重大——它证明你的开发环境完全通了。

小技巧:如果log乱码,检查波特率是不是115200。如果没输出,检查串口号对不对,或者开发板有没有供电。

嗯,到这里,环境搭建就完成了。你可能会觉得步骤有点多,但相信我,一次配好,后面几十章都用得上。我每次换电脑或重装系统,都是按这个流程走一遍,从来没出过问题。

下一章,我们开始真正写Mesh代码。到时候你会发现,环境搭好了,写代码其实挺爽的。


公众号:蓝海资料掘金营,微信deep3321