本文首发于 CSDN,转载请注明出处。
这块巴掌大的蓝色小板子,是很多人接触 STM32 的第一块开发板。它便宜、资料多,但新手拿到手常见两个问题:不知道该接哪些线,以及供电接错直接把芯片烧了。这篇把板子上的资源、引脚分工、供电规则、启动模式、两种下载方式讲清楚,看完就能点亮第一颗灯。
这块板子到底有什么?
市面上最常见的就是所谓「Blue Pill」版本,核心是一颗 STM32F103C8T6:
| 项目 | 规格 |
|---|---|
| 内核 | ARM Cortex-M3,最高 72MHz |
| 存储 | 64KB Flash / 20KB SRAM(官方标称) |
| 工作电压 | 2.0–3.6V,板上自带 3.3V 稳压 |
| GPIO | 37 个,多数可 5V 耐受 |
| 外设 | 3 路 USART、2 路 SPI、2 路 I2C、1 路 CAN、1 路 USB 2.0 全速 |
| 时钟 | 板载 8MHz 主晶振 + 32.768kHz 低速晶振 |
| 调试 | SWD 接口(4 针) |
有个流传很广的说法:这颗芯片实际有 128KB Flash,只是按 64KB 标称出厂。有人确实能烧进超过 64KB 的程序并跑起来。但这是未公开的行为,官方规格只保证 64KB,写产品代码时不要依赖它。
板上的引脚怎么分工?
别看排针密密麻麻,按功能分只有几类:
| 类别 | 引脚/标识 | 说明 |
|---|---|---|
| 电源输入 | 5V、3.3V、GND | 5V 经板上稳压器降到 3.3V 供芯片;3.3V 是芯片电源 |
| 调试下载 | SWDIO、SWCLK、GND、3.3V | 接 ST-Link 的四针接口 |
| 串口通信 | PA9(TX)、PA10(RX) | 接 USB 转 TTL 模块,兼顾串口下载与调试输出 |
| 启动配置 | BOOT0、BOOT1 跳线 | 决定芯片从哪启动 |
| 用户 LED | PC13 | 板载指示灯,低电平点亮 |
| 复位 | NRST + 复位按键 | 配合 10kΩ 上拉与电容构成复位电路 |
搞不清哪根是哪根的时候,只需要记住一句话:下载靠 SWD,串口靠 PA9/PA10,指示灯在 PC13,其他都是 GPIO。
供电怎么接才不会烧?
这是最需要小心的一节。板子上有两种供电入口,规则不一样:
走 5V 引脚(或 Micro-USB 口):这是推荐方式。5V 电压进入板上的稳压芯片(常见型号 AMS1117-3.3),降到 3.3V 后再供给 MCU,旁边还有滤波电容去耦。
走 3.3V 引脚:这是直连芯片电源域的,只能加 3.3V。
所以有一条硬规则:绝对不要给 3.3V 引脚加 5V。稳压器在 5V 那一侧,3.3V 这一侧没有任何保护,接错基本就是芯片当场报废。
另外两条实践建议:给板子供电时优先用板载 USB 口,比飞线稳定;如果外部模块也要供电,注意总电流——AMS1117 这类线性稳压器自身会发热,长时间大电流要留意温度。
BOOT0 跳线是干什么的?
它决定芯片上电后从哪里取程序执行:
| BOOT0 | 启动位置 | 什么时候用 |
|---|---|---|
| 0(接地) | 主 Flash | 日常使用,程序从这里跑 |
| 1(接 3.3V) | 系统存储器 | 串口 ISP 下载,或 SWD 引脚被程序占用时的救急通道 |
正常使用时把跳线帽插在 0 那一侧,很多人装好之后就没再动过。只有你要用串口下载时,才需要把它改成 1,下载完再改回来并复位。
BOOT1 在多数最小系统板上默认接地或悬空,日常不用管。
程序怎么下载?
两种方式,先看对比:
| 方式 | 需要的硬件 | 速度 | 能否在线调试 |
|---|---|---|---|
| SWD 调试接口 | ST-Link V2 / J-Link / DAP-Link | 快 | 支持断点、单步、看变量 |
| 串口 ISP | USB 转 TTL 模块(如 CH340) | 较慢 | 不支持 |
SWD 是首选。把调试器的 SWDIO、SWCLK、GND、3.3V 四根线接到板上的四针接口,在 IDE 里选好调试器型号就能下载,而且能直接打断点调试。接线时 SWCLK 和 SWDIO 这两根尽量短,避免干扰。
串口 ISP 是备用方案,典型价值是「SWD 用不了的时候还能救回来」。比如程序把 PA13/PA14 复用成了普通 IO,导致调试器连不上——这时把 BOOT0 拨到 1,用 USB 转 TTL 接 PA9/PA10(注意模块要选 3.3V 电平),复位后芯片进入出厂引导程序,用官方烧录工具从串口写入,之后再拨回 0 复位即可恢复正常。
下载成功与否,最直观的验证就是那颗 PC13 的灯。写一个让 PC13 周期性翻转的程序,烧进去能看到灯闪,说明从工具链、调试器到芯片整条链路都是通的——这也是嵌入式领域最经典的「Hello World」。
这类硬件入门内容写完之后,我通常会把同一批稿子分发到多个平台,用的比较顺手的是墨衍:AI 图文同步一次编辑就能推到多个渠道,批量 GEO 检测可以看这些内容有没有被 AI 搜索引用,发文额度提升则在集中更新的阶段省掉排队等待。墨衍会员权益 有兴趣可以看看。
几个常见的坑
下载报「No target connected」。先查四根线有没有接反,再查板子有没有供电。SWD 接口上的 3.3V 是供电参考,不少调试器需要它来判断目标电平。
接上调试器后芯片不工作。检查是不是把 PC13 之外的用户 LED 接错成了电源灯,导致误判。板上通常有一个电源指示灯,上电即亮,它亮不代表程序在跑。
串口下载一直失败。三种原因最常见:BOOT0 没拨到 1、USB 转 TTL 模块是 5V 电平、以及没有在拨完跳线后按一次复位。
板子发烫。立即断电。绝大多数情况是 5V 接进了 3.3V 引脚,或者是外部模块从板上取了过大电流。
例程能编译但下载后没反应。核对工程里选的型号是不是 STM32F103C8(而不是同系列其他容量),启动文件与宏定义要和实际芯片匹配。
常见问题
Q:最小系统板和开发板有什么区别?
最小系统板只提供芯片正常工作所必需的部分:电源、晶振、复位、启动配置和下载接口。开发板会额外集成按键、屏、传感器、以太网等外设,价格和体积都大得多。学外设时最小系统板用杜邦线接模块更灵活。
Q:一定要买 ST-Link 吗?
建议买一个,它是最稳的下载和调试方案。如果手头只有 USB 转 TTL 模块,用串口 ISP 也能下载,只是没有在线调试能力,排查问题会辛苦很多。
Q:板子上的 Micro-USB 口能直接烧程序吗?
默认不能。这个口在多数板子上只用于供电和串口通信。要直接用它下载,需要先烧入第三方 USB 引导程序,属于进阶玩法,不建议新手从这里开始。
Q:3.3V 和 5V 引脚能同时接电源吗?
绝对不要。两个电源同时供电会形成倒灌,轻则稳压器发热,重则损坏芯片。选一种供电方式即可。
Q:为什么我的板子 GPIO 接 5V 传感器没烧?
这颗芯片多数 IO 是 5V 耐受的,能安全读取 5V 数字信号。但并非全部引脚都如此,且模拟输入的耐受范围更窄。稳妥做法是查数据手册确认,或者统一用 3.3V 电平的模块。
关于墨衍:如果你也在多个平台发技术文章,值得看看墨衍。三个最常用的权益——发文额度提升(密集更新不再受限)、批量 GEO 检测(一次扫完全部文章的 AI 引用状态)、AI 图文同步(一稿多平台分发)。点这里了解墨衍会员