第三章 开发板与调试工具准备

做嵌入式开发,说白了就是跟硬件打交道。你写再漂亮的代码,最终都要落到引脚上、波形里。这一章我带你过一遍常用工具,都是我自己项目里天天摸的东西。

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复杂,调试时容易多绕弯路。

我的习惯: 拿到新板子第一件事,先看原理图。找到UART引脚对应的GPIO号,记下来。别信网上说的“默认引脚”,不同厂家做的板子可能不一样。

3.2 逻辑分析仪——你的第二双眼睛

写UART驱动,没有逻辑分析仪就像蒙着眼睛走路。我刚开始做项目时,总觉得串口助手能打印数据就够了。直到有一次,数据偶尔错位,查了三天才发现是波特率偏差0.5%。

从那以后,逻辑分析仪就成了我桌面的常驻设备。

3.2.1 选什么型号

  • 入门级: Saleae Logic 8(或者国产克隆版),采样率24MHz,够用
  • 进阶: DSLogic Plus,采样率400MHz,能抓高速信号
  • 穷玩法: 用STM32自己做个简易逻辑分析仪,网上有开源方案

3.2.2 怎么接线

逻辑分析仪的通道夹子夹到UART的TX和RX引脚上。别忘了共地——GND必须连,不然波形全是乱的。我见过有人没接地,抓出来的波形像鬼画符,还以为是芯片坏了。

避坑: 逻辑分析仪的输入电压范围一般是0~5V。STM32的UART电平是3.3V,没问题。但如果你用5V的板子(比如Arduino Uno),记得先确认分析仪能不能承受,否则烧了通道别怪我。

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)
我的习惯: 模块上的VCC引脚我一般不接开发板的VCC,除非确定电压一致。很多模块默认输出5V,接到3.3V的STM32上可能会烧芯片。供电还是用开发板自己的USB口更安全。

3.4 示波器使用入门

逻辑分析仪看协议没问题,但要看信号质量——比如上升沿抖不抖、电平有没有毛刺——还得上示波器。

我建议准备一台带宽100MHz以上的数字示波器。不用太贵,国产的普源、鼎阳都行。二手市场淘一台也就一千多。

3.4.1 测UART波形的基本步骤

  1. 探头接地夹子夹到开发板的GND
  2. 探头探针点到UART的TX引脚
  3. 设置触发电平为1.65V(3.3V的一半)
  4. 触发边沿选下降沿(UART空闲时为高电平,起始位是低电平)
  5. 调整时基,让一个字节的波形占屏幕一半左右

你会看到什么?一个低电平的起始位,接着8个数据位(LSB在前),最后是高电平的停止位。如果波特率是115200,每个bit的宽度大约是8.68微秒。拿示波器的光标量一下,误差在±2%以内就算正常。

我曾经遇到过一个案例: 客户说他们的设备偶尔通信失败,我拿示波器一抓,发现TX引脚上的上升沿有回勾,像是驱动能力不够。换了一个GPIO驱动强度配置,问题就解决了。没有示波器,这种问题根本查不出来。

3.5 本章知识体系

下面这张图把本章的核心工具和它们之间的关系串起来了。你写代码的时候,可以对照着看自己缺了哪个环节。

开发板与调试工具知识体系 开发板与调试工具知识体系 MCU平台 STM32 ESP32 逻辑分析仪 USB转串口模块 示波器 工具选择建议 • 调试UART协议:逻辑分析仪 + USB转串口模块,成本低,上手快 • 排查信号完整性:示波器必不可少,尤其在高波特率(1Mbps以上)场景 • 日常开发:USB转串口模块是标配,建议备2个,一个发一个收

3.6 工具清单速查

最后给你一个清单,照着准备就行,别漏了东西。

  • 开发板: STM32F103C8T6 最小系统板 × 1
  • 调试器: ST-Link V2(SWD接口) × 1
  • 逻辑分析仪: 24MHz采样率,8通道 × 1
  • USB转串口: CP2102模块 × 2
  • 示波器: 100MHz带宽,双通道 × 1(可选但推荐)
  • 耗材: 杜邦线(公对母、母对母各20根),面包板 × 1
注意: 杜邦线质量参差不齐。我遇到过劣质杜邦线接触不良,导致UART通信时断时续,排查了整整一个下午。建议买带防呆卡扣的那种,贵几块钱但省心。