第三章 开发板与调试工具准备
做嵌入式开发,说白了就是跟硬件打交道。你写再漂亮的代码,最终都要落到引脚上、波形里。这一章我带你过一遍常用工具,都是我自己项目里天天摸的东西。
3.1 常用MCU平台怎么选
我个人习惯备两块开发板:一块STM32,一块ESP32。不是炫富,是它们各有各的脾气。
| 特性 | STM32(F103 / F4系列) | ESP32 |
|---|---|---|
| 内核 | Cortex-M3 / M4 | Xtensa LX6 双核 |
| UART外设数量 | 3~8路(看型号) | 3路 |
| 调试接口 | SWD / JTAG | USB转串口 + JTAG |
| 开发环境 | Keil / STM32CubeIDE | ESP-IDF / Arduino |
| 价格 | 30~80元(最小系统板) | 25~50元(模组) |
我建议初学者先从STM32F103C8T6入手。为什么?资料多,坑少,网上随便一搜就是现成代码。ESP32虽然带WiFi和蓝牙,但它的UART时钟树比STM32复杂,调试时容易多绕弯路。
3.2 逻辑分析仪——你的第二双眼睛
写UART驱动,没有逻辑分析仪就像蒙着眼睛走路。我刚开始做项目时,总觉得串口助手能打印数据就够了。直到有一次,数据偶尔错位,查了三天才发现是波特率偏差0.5%。
从那以后,逻辑分析仪就成了我桌面的常驻设备。
3.2.1 选什么型号
- 入门级: Saleae Logic 8(或者国产克隆版),采样率24MHz,够用
- 进阶: DSLogic Plus,采样率400MHz,能抓高速信号
- 穷玩法: 用STM32自己做个简易逻辑分析仪,网上有开源方案
3.2.2 怎么接线
逻辑分析仪的通道夹子夹到UART的TX和RX引脚上。别忘了共地——GND必须连,不然波形全是乱的。我见过有人没接地,抓出来的波形像鬼画符,还以为是芯片坏了。
3.3 USB转串口模块
这东西太常见了,但很多人用不对。常用的芯片有CH340、CP2102、FT232。我个人偏爱CP2102,稳定,驱动好装。
接线就三根:TX接开发板的RX,RX接开发板的TX,GND接GND。嗯,这里要注意:TX和RX是交叉的,别直连。我刚开始学的时候犯过这个错,串口助手死活收不到数据,还以为是代码写错了。
| USB转串口模块 | 开发板UART |
|---|---|
| TX | RX |
| RX | TX |
| GND | GND |
| VCC(可选) | VCC(3.3V/5V) |
3.4 示波器使用入门
逻辑分析仪看协议没问题,但要看信号质量——比如上升沿抖不抖、电平有没有毛刺——还得上示波器。
我建议准备一台带宽100MHz以上的数字示波器。不用太贵,国产的普源、鼎阳都行。二手市场淘一台也就一千多。
3.4.1 测UART波形的基本步骤
- 探头接地夹子夹到开发板的GND
- 探头探针点到UART的TX引脚
- 设置触发电平为1.65V(3.3V的一半)
- 触发边沿选下降沿(UART空闲时为高电平,起始位是低电平)
- 调整时基,让一个字节的波形占屏幕一半左右
你会看到什么?一个低电平的起始位,接着8个数据位(LSB在前),最后是高电平的停止位。如果波特率是115200,每个bit的宽度大约是8.68微秒。拿示波器的光标量一下,误差在±2%以内就算正常。
我曾经遇到过一个案例: 客户说他们的设备偶尔通信失败,我拿示波器一抓,发现TX引脚上的上升沿有回勾,像是驱动能力不够。换了一个GPIO驱动强度配置,问题就解决了。没有示波器,这种问题根本查不出来。
3.5 本章知识体系
下面这张图把本章的核心工具和它们之间的关系串起来了。你写代码的时候,可以对照着看自己缺了哪个环节。
3.6 工具清单速查
最后给你一个清单,照着准备就行,别漏了东西。
- 开发板: STM32F103C8T6 最小系统板 × 1
- 调试器: ST-Link V2(SWD接口) × 1
- 逻辑分析仪: 24MHz采样率,8通道 × 1
- USB转串口: CP2102模块 × 2
- 示波器: 100MHz带宽,双通道 × 1(可选但推荐)
- 耗材: 杜邦线(公对母、母对母各20根),面包板 × 1