第二章 硬件准备:搭建你的测试环境
做嵌入式开发,尤其是调试串口AT指令,硬件环境没搭好,后面全是白费功夫。我见过太多新手拿着杜邦线随便一插,结果数据死活不对,最后发现是TX和RX接反了。这种低级错误,咱们完全可以在第一步就避免掉。
这一章,我带你把硬件环境搭得明明白白。你跟着做就行,不用急。
2.1 你需要准备什么?
先列个清单,缺什么赶紧补。我个人习惯是买两份,万一烧了还有备用的。
| 硬件/工具 | 推荐型号/规格 | 用途说明 |
|---|---|---|
| STM32最小系统板 | STM32F103C8T6(最常用) | 主控芯片,跑AT指令解析代码 |
| USB转串口模块 | CH340G 或 CP2102 | 连接电脑与STM32,收发数据 |
| 杜邦线 | 公对母、母对母各10根 | 板间连线,注意线序 |
| 示波器/逻辑分析仪 | 逻辑分析仪(24MHz以上) | 抓波形,定位时序问题(可选) |
| 面包板 | 830孔 | 方便临时搭电路,减少飞线 |
我的建议: 逻辑分析仪别省。几十块钱的USB逻辑分析仪,能让你看到串口线上到底发生了什么。我曾经花了一整天查一个AT指令没响应的问题,最后用逻辑分析仪一看,原来是地线虚焊,信号根本没过去。
2.2 核心接线:别把TX和RX搞反
这是最基础也最容易翻车的地方。串口通信是交叉连接的:
- STM32的TX → USB转串口模块的RX
- STM32的RX → USB转串口模块的TX
- GND → GND(这个必须接,不接通信绝对失败)
为什么是交叉?因为发送端要对着接收端发。你想想看,如果TX对TX,那两边都在喊,没人听,数据就丢了。
注意: 千万不要把5V接到3.3V的引脚上!STM32的IO口是3.3V电平,USB转串口模块如果是5V输出,你得加电平转换,或者选3.3V版本的模块。我刚开始做的时候烧过一个CH340,就是因为接了5V。
2.3 供电方案:稳定是第一位的
STM32最小系统板一般有两种供电方式:
- USB直接供电:通过板载的Micro USB口,插上手机充电器或电脑USB口就行。简单,但电流有限。
- 外部稳压供电:用3.3V稳压芯片(比如AMS1117-3.3)从面包板供电。适合带外设多的场景。
我建议调试阶段用USB供电,省事。但要注意,如果接了Wi-Fi模块或者4G模块,启动瞬间电流可能超过500mA,这时候就得用外部电源了。
2.4 搭建步骤:手把手来一遍
别嫌啰嗦,按这个顺序做,能省掉一半的排查时间。
- 先把STM32最小系统板插到面包板上,注意引脚不要短路。
- 接USB转串口模块:用公对母杜邦线,把模块的TX、RX、GND分别连到STM32的对应引脚。
- 检查电源:用万用表量一下STM32的3.3V引脚和GND之间,电压应该在3.3V左右。如果不对,立刻断电检查。
- 连接电脑:把USB转串口模块插到电脑上,安装驱动(CH340需要手动装,CP2102一般免驱)。
- 打开串口助手:设置波特率115200、8位数据、1位停止位、无校验。发送一个“AT\r\n”,看看有没有返回“OK”。
关键检查点: 如果发送AT没反应,先检查接线,再检查波特率是否匹配。我遇到过最坑的一次,是USB转串口模块的TX引脚虚焊,信号根本没发出去。
2.5 用逻辑分析仪验证信号
这一步不是必须的,但如果你想让调试效率翻倍,我强烈建议你学会用逻辑分析仪。说白了,它就是让你“看到”串口线上的电平变化。
接线很简单:
- 逻辑分析仪的通道0 → STM32的TX引脚
- 逻辑分析仪的GND → 板子的GND
然后打开逻辑分析仪软件(比如Saleae Logic),设置采样率1MHz以上,触发方式选“下降沿”。发送一个AT指令,你就能看到一串高低电平的波形。数一下每个位的宽度,就能算出实际波特率——这是排查波特率不匹配的终极手段。
避坑指南: 我曾经遇到一个案例,代码里配的波特率是115200,但示波器一看实际只有9600。原因是时钟配置错了,导致串口时钟分频不对。这种问题,光靠串口助手永远查不出来。
2.6 硬件连接总览图
下面这张图,把整个硬件连接关系画清楚了。你照着接,不会错。
2.7 常见硬件故障速查表
硬件搭好了,但万一不工作怎么办?别慌,对照这张表排查,大部分问题都能解决。
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 串口助手收不到任何数据 | TX/RX接反、GND没接、波特率不匹配 | 检查接线,确认波特率,用逻辑分析仪看波形 |
| 收到乱码 | 波特率不一致、电平不匹配、时钟不准 | 核对波特率,检查STM32时钟配置 |
| 发送AT无响应 | 模块没上电、AT指令格式不对(缺\r\n) | 检查模块供电,确认指令以\r\n结尾 |
| 数据偶尔丢包 | 地线接触不良、电源纹波大、干扰 | 换粗地线,加100nF去耦电容 |
再强调一次: 如果你用的是面包板,杜邦线一定要插紧。面包板用久了,内部弹簧片会松,导致接触不良。我遇到过最诡异的问题,是面包板上一根线没插到底,结果数据时通时断,折腾了两天才发现。