第二章:测试环境搭建——硬件准备与软件工具链安装
说实话,测试环境搭建这事儿,看着简单,但坑特别多。我见过太多人卡在这一步,折腾一整天连个灯都点不亮。今天我就把这些年踩过的坑、总结的经验,一次性说清楚。
2.1 硬件准备:选对工具,少走弯路
做ESP32的测试,硬件是基础。硬件选不对,后面全是白费功夫。
2.1.1 开发板怎么选?
我个人习惯用官方模组,比如ESP32-WROOM-32。为什么?因为稳定。我在项目中遇到过用第三方模组,结果WiFi死活连不上,查了两天才发现是天线匹配问题。嗯,从那以后我就老实了。
如果你刚开始学,我建议买官方开发板,比如ESP32-DevKitC。它自带USB转串口,调试方便。别图便宜买那种几块钱的裸板,你想想看,连个复位按键都没有,每次下载程序都要手动拉低IO0,多折腾。
我的推荐清单:
- 入门级:ESP32-DevKitC(官方,稳定可靠)
- 进阶:ESP32-S3-DevKitC(支持更多外设)
- 量产验证:自研板 + 官方模组
2.1.2 调试器:JTAG还是USB转串口?
这里有个误区。很多人以为调试器就是下载器。其实不是。下载器只管把程序烧进去,调试器才能帮你单步执行、看变量。
我建议你准备两样东西:
- USB转TTL模块(比如CH340):用来下载程序和看日志。便宜,几块钱一个。
- JTAG调试器(比如J-Link或ESP-Prog):用来做高级调试。说实话,前期可以不用,但做复杂项目时,没有它你根本查不出问题。
注意:我曾经有一次用劣质USB线,导致下载总是失败。换了根好线,问题立刻解决。别小看一根线,它可能是你最大的坑。
2.1.3 电源:稳定是第一位的
ESP32对电源比较敏感。WiFi发射时电流能到300mA以上,如果电源不稳,会频繁重启。
我的建议:
- 用官方开发板自带的USB供电,一般没问题
- 如果自己画板子,用AMS1117-3.3V稳压,输入电容至少10μF
- 别用面包板供电,接触不良会让你怀疑人生
2.2 软件工具链安装:一步步来,别急
软件环境搭建,说白了就是装几个工具。但顺序很重要。我见过有人先装Python再装ESP-IDF,结果版本冲突,折腾半天。
2.2.1 安装ESP-IDF
ESP-IDF是乐鑫官方的开发框架。它包含了编译器、调试工具、库文件等。我个人习惯用v4.4 LTS版本,稳定,文档全。
安装步骤:
- 打开终端,执行:
git clone --recursive https://github.com/espressif/esp-idf.git - 进入目录:
cd esp-idf - 运行安装脚本:
./install.sh(Linux/Mac)或install.bat(Windows) - 设置环境变量:
. ./export.sh
小技巧:Windows用户建议用PowerShell,别用CMD。我遇到过CMD下路径解析错误,折腾了半小时才发现是这个问题。
2.2.2 安装Python
ESP-IDF依赖Python 3.6以上版本。我建议装Python 3.8或3.9,兼容性最好。
安装时注意:
- 勾选"Add Python to PATH"
- 安装完成后,打开终端输入
python --version验证 - 如果系统有多个Python版本,用
python3指定版本
避坑指南:我曾经在Windows上装了Python 3.11,结果某个库不兼容,编译报错。后来换成3.9,一切正常。所以,别追新,稳定第一。
2.2.3 串口工具
串口工具用来查看ESP32的日志输出。我推荐两个:
| 工具 | 适用平台 | 特点 |
|---|---|---|
| PuTTY | Windows | 轻量,稳定,支持SSH和串口 |
| screen | Linux/Mac | 命令行,简单高效 |
| MobaXterm | Windows | 功能丰富,支持多标签 |
我个人习惯用MobaXterm。为什么?因为它能保存会话配置,不用每次重新设置波特率。你想想看,每次都要输入 screen /dev/ttyUSB0 115200,多麻烦。
2.3 环境验证:点亮第一盏灯
工具都装好了,怎么知道环境对不对?很简单,写个程序点灯。
这是ESP32的"Hello World"。代码很简单:
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define LED_GPIO 2
void app_main(void)
{
gpio_set_direction(LED_GPIO, GPIO_MODE_OUTPUT);
while (1) {
gpio_set_level(LED_GPIO, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(LED_GPIO, 0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
编译和烧录:
idf.py set-target esp32
idf.py menuconfig # 可以跳过,用默认配置
idf.py build
idf.py -p /dev/ttyUSB0 flash monitor
如果看到LED每隔1秒闪烁一次,恭喜你,环境搭建成功了!
验证清单:
- ✅ 编译成功,无报错
- ✅ 烧录成功,无超时
- ✅ LED按预期闪烁
- ✅ 串口输出正常,能看到日志
如果LED不亮,别慌。先检查:
- 串口号对不对?用
ls /dev/tty*查看 - 波特率是不是115200?
- GPIO2是不是被其他外设占用了?
嗯,到这里,你的测试环境就搭好了。下一章我们开始讲测试用例怎么写。说实话,那才是真正的重头戏。
公众号:蓝海资料掘金营,微信deep3321