如果你玩过单片机开发,尤其是STM32这类ARM芯片的最小系统板,可能会遇到一个尴尬的情况:板子上只有一个USB接口,但这个接口只能用来供电和调试,没法直接下载程序。这时候就需要一个不到10块钱的小工具——USB转TTL模组。
这种模组本质上是个"翻译官",它能把电脑USB接口发出的信号转换成单片机能够理解的TTL电平信号(通常是3.3V或5V)。我刚开始玩单片机时,发现正点原子的开发板自带下载功能,但自己焊的最小系统板就不行,后来才知道缺的就是这个关键部件。
市面上常见的型号有CH340G、CP2102等,价格都在10元以内。它们的主要区别在于驱动芯片和传输速率,但对初学者来说差异不大。我实测过CH340和CP2102,在下载STM32程序时稳定性都很好,只是CH340在Windows系统上偶尔需要手动安装驱动。
拿到USB转TTL模组后,你会看到4个主要引脚:
这里有个新手最容易踩的坑:TXD要和单片机的RXD相连,RXD则要接单片机的TXD。我第一次用时想当然地同名称相连,结果死活无法通信,后来查资料才知道这是串口通信的基本规则——发送端要对接收端。
以STM32F103C8T6最小系统板为例:
注意:如果使用5V模组,建议先确认单片机是否支持5V电平,否则可能烧毁芯片。STM32系列通常只耐受3.3V,这时需要选择带3.3V输出的模组,或者额外加电平转换电路。
CH340模组在Windows10/11上有时能自动识别,但更常见的情况是需要手动安装:
安装成功后,在设备管理器会看到新的COM端口(比如COM3)。我遇到过驱动安装失败的情况,后来发现是Windows自动更新了错误驱动,需要先卸载再重装。
推荐使用免费的串口调试助手或Putty:
bash复制波特率:115200(STM32常用)
数据位:8
停止位:1
校验位:None
流控制:None
这些参数必须与单片机程序设置一致。曾经帮学弟调试时,他用的9600波特率而程序设的是115200,结果收到全是乱码,调整后立即正常。
对于STM32的串口下载,FlyMcu是最常用的工具之一:
踩坑记录:正点原子开发板支持一键下载,是因为板载电路自动控制了DTR/RTS信号。如果自制板没有这个电路,就需要手动复位。
更专业的做法是使用ST官方工具:
bash复制1. 选择UART模式
2. 设置正确的COM口和波特率
3. 勾选"Verify after download"
4. 在"Erasing"选项卡选择必要的擦除方式
5. 点击"Download"按钮
这个工具的优势是支持更可靠的校验机制,我遇到FlyMcu下载失败的情况时,换用这个工具通常能解决问题。
按照这个检查清单逐步排查:
有次我折腾两小时发现是USB线只能充电不能传数据,换线后秒解决。所以遇到问题要从最基础的开始检查。
典型症状:下载成功但按下复位没反应。这时候需要:
曾经有个项目因为忘记改BOOT0状态,以为芯片坏了差点换片,后来发现是这个低级错误。
如果觉得有线下载麻烦,可以考虑:
我最近在做的智能家居项目就用了ESP01S做无线下载,省去了插拔线的麻烦。
对于经常调试的情况,可以自制带自动复位电路的转接板: