附录 - 硬件选项
本附录介绍 STM32F103C8T6(Blue Pill)开发板及相关硬件的详细信息,帮助初学者选择合适的开发工具和配件。
1. 核心硬件 - Blue Pill 开发板
1.1 产品简介
Blue Pill 是一款基于 STM32F103C8T6 微控制器的迷你开发板,因其蓝色 PCB 和高性价比而得名。该板子最初由 Leaf Labs 设计,现已被众多厂商复制生产,是嵌入式学习入门的热门选择。
1.2 核心规格参数
| 参数 | 规格 |
|---|---|
| 微控制器 | STM32F103C8T6 |
| 架构 | ARM Cortex-M3 |
| 工作电压 | 3.3V(板载 LDO 支持 5V 输入) |
| 主频 | 72MHz(最大) |
| Flash | 64KB(0x08000000 - 0x08010000) |
| SRAM | 20KB(0x20000000 - 0x20005000) |
| GPIO | 37个(部分复用) |
| ADC | 10位,10通道 |
| 定时器 | 3个通用定时器 + 1个高级定时器 |
| 通信接口 | USART、I2C、SPI、CAN |
| USB | USB 2.0 全速(设备模式) |
| 尺寸 | 约 53mm × 23mm |
1.3 引脚分布
Blue Pill 的引脚排列遵循标准 STM32 开发板布局:
USB
----
VBAT [1] [T] [28] PA14 (SWCLK)
PC13 [2] [27] PA13 (SWDIO)
PC14 [3] [26] PA12 (USB_D+)
PC15 [4] [25] PA11 (USB_D-)
PD0 [5] [24] PA10
PD1 [6] [23] PA9
NRST [7] [22] PA8
PC0 [8] [21] PB11 (I2C SCL)
PC1 [9] [20] PB10 (I2C SDA)
PC2 [10] [19] PB2 (BOOT1)
PC3 [11] [18] PB1
PC4 [12] [17] PB0
PC5 [13] [16] PA7 (SPI MOSI)
GND [14] [15] PA6 (SPI MISO)关键引脚说明:
| 引脚 | 功能 | 说明 |
|---|---|---|
| PA9 | USART1_TX | 串口发送 |
| PA10 | USART1_RX | 串口接收 |
| PA6 | SPI1_MISO | SPI 数据输入 |
| PA7 | SPI1_MOSI | SPI 数据输出 |
| PA5 | SPI1_SCK | SPI 时钟 |
| PB6 | I2C1_SCL | I2C 时钟 |
| PB7 | I2C1_SDA | I2C 数据 |
| PA11 | USB_D- | USB 数据负 |
| PA12 | USB_D+ | USB 数据正 |
| PC13 | 板载 LED | 低电平点亮 |
| NRST | 复位 | 低电平复位 |
1.4 板载 LED 和按键
板载 LED:
- 位置:PC13 引脚
- 特性:低电平点亮(输出高电平时熄灭)
- 用途:状态指示、 blinks 测试程序
板载复位按键:
- 位置:NRST 引脚附近
- 功能:手动复位微控制器
BOOT 选择跳针:
- BOOT0 引脚控制启动模式
- BOOT0 = 0:从 Flash 启动(正常使用)
- BOOT0 = 1:从系统存储器启动(用于串口下载)
1.5 电源选项
Blue Pill 提供多种电源输入方式:
| 电源输入 | 电压范围 | 说明 |
|---|---|---|
| USB 接口 | 5V | 通过板载 LDO 降压至 3.3V |
| VIN 引脚 | 6V-12V | 通过板载 LDO 降压 |
| 5V 引脚 | 5V | 直接供给板载 LDO 输入 |
| 3.3V 引脚 | 3.3V | 绕过 LDO,直接供给 MCU |
注意事项:
- 板载 LDO 型号常见为 AMS1117-3.3,最大输出电流约 800mA
- 通过 USB 供电时,电流受限于 USB 协议(500mA)
- 负载电流较大时,建议使用外部 3.3V 电源直接供电
1.6 已知问题和注意事项
USB 数据线问题
- 部分 Blue Pill 板子 USB D+ / D- 串有 1.5KΩ 上拉电阻在 3.3V 上
- 某些 USB 主机可能无法识别,建议更换数据线或移除上拉电阻
BOOT0 引脚默认下拉
- 默认从 Flash 启动,但如果需要串口下载,需将 BOOT0 跳针设置为 1
PC13 作为 GPIO 限制
- PC13 引脚输出驱动能力较弱,无法直接点亮高亮度 LED
- 该引脚还与 RTC 相关,使用时需注意
原装 Leaf Labs 板与国产版本差异
- 国产版本可能使用不同品牌的 STM32 芯片(需注意真伪)
- 某些版本 PCB 布线不同,可能影响 USB 稳定性
2. 调试器 - ST-Link 及替代方案
2.1 ST-Link V2
ST-Link V2 是 ST 官方推出的调试器,支持 STM32 芯片的 SWD(Serial Wire Debug)接口。
官方版本特点:
| 参数 | 规格 |
|---|---|
| 接口 | USB 2.0 |
| 调试接口 | SWD(2线制:SWCLK、SWDIO) |
| 目标电压 | 3.3V(部分版本支持 1.8V-5V) |
| 供电能力 | 可为目标板提供 3.3V/5V(有限电流) |
| 兼容软件 | ST-Link Utility、OpenOCD、Keil、STM32CubeIDE |
引脚定义(ST-Link V2):
| ST-Link 引脚 | 功能 | 连接至 Blue Pill |
|---|---|---|
| 1 (VTref) | 目标参考电压 | 3.3V |
| 4 (GND) | 接地 | GND |
| 7 (SWDIO) | 调试数据 | PA13 (SWDIO) |
| 9 (SWCLK) | 调试时钟 | PA14 (SWCLK) |
| 15 (NRST) | 复位(可选) | NRST |
接线建议:
ST-Link V2 Blue Pill
--------- --------
VTref (1) ----> 3.3V
GND (4) ----> GND
SWDIO (7) ----> PA13
SWCLK (9) ----> PA14
NRST (15) ----> NRST (可选)2.2 国产兼容版本
市面上存在大量 ST-Link V2 兼容产品,价格远低于官方版本。
优点:
- 价格低廉(约为官方版本的 1/10)
- 功能基本兼容
缺点和注意事项:
| 问题 | 说明 | 解决方案 |
|---|---|---|
| 固件更新问题 | 部分兼容版使用解密固件,无法更新 | 避免更新固件 |
| 芯片来源不明 | 内部芯片可能非原装 | 购买前查看评价 |
| 电压支持 | 某些版本仅支持 3.3V | 确认目标板电压 |
| 驱动兼容性 | 可能需要安装特定驱动 | 使用 Zadig 替换驱动 |
选购建议:
- 选择评论数量多、评价正面的商家
- 确认支持 SWD 接口
- 检查是否附带完整接线
2.3 J-Link 替代方案
J-Link 是 SEGGER 公司推出的调试器,性能优于 ST-Link,但价格较高。
适用场景:
- 专业开发环境
- 需要高速调试的项目
- 多芯片调试支持
软件支持:
- J-Link 支持所有主流 IDE
- 兼容 OpenOCD(通过 J-Link 驱动)
与 Blue Pill 的连接: 与 ST-Link V2 相同,使用 SWD 接口连接。
2.4 DAP-Link 替代方案
DAP-Link 是 ARM 官方推出的开源调试器方案,基于 CMSIS-DAP 协议。
优点:
- 开源方案,可自行制作
- 原生支持 HID 协议,无需安装特殊驱动
- 跨平台支持良好
常见产品形式:
- 官方 CMSIS-DAP 调试器:如 Mini-DAPLink
- 第三方兼容产品:如基于 Raspberry Pi Pico 的 DAP-Link 固件
在 Blue Pill 上的使用: DAP-Link 使用与 ST-Link 相同的 SWD 接口,连接方式完全一致。
2.5 调试器对比总结
| 调试器 | 价格 | 稳定性 | 易用性 | 推荐程度 |
|---|---|---|---|---|
| ST-Link 官方 | 高 | 优 | 优 | ★★★★☆ |
| ST-Link 兼容版 | 低 | 中 | 中 | ★★★☆☆ |
| J-Link | 高 | 优 | 优 | ★★★★☆ |
| DAP-Link | 中 | 优 | 优 | ★★★★★ |
3. 配件和线缆
3.1 USB-TTL 串口模块(可选)
串口模块用于在没有调试器的情况下,通过串口与 Blue Pill 通信。
推荐规格:
| 参数 | 建议规格 |
|---|---|
| 芯片 | CH340、CP2102、FT232RL |
| 电压 | 3.3V 或支持 3.3V/5V 切换 |
| 接口 | Micro USB 或 USB Type-A |
接线方式:
USB-TTL 模块 Blue Pill
----------- --------
RX ----> PA9 (USART1_TX)
TX ----> PA10 (USART1_RX)
GND ----> GND
3.3V ----> 3.3V (仅在需要供电时连接)注意事项:
- 确认模块电压与 Blue Pill 匹配(3.3V)
- 某些模块逻辑电平为 5V,可能需要电平转换
- 接线时 RX 接 TX,TX 接 RX(交叉连接)
3.2 杜邦线和面包板
杜邦线建议:
| 类型 | 数量 | 用途 |
|---|---|---|
| 母对公 | 20根 | 连接调试器、传感器 |
| 母对母 | 20根 | 模块间连接 |
| 公对公 | 10根 | 特殊连接需求 |
| 彩色区分 | 推荐 | 便于区分信号 |
面包板建议:
- 830孔标准面包板(初学者推荐)
- 或 400孔小型面包板(节省空间)
3.3 USB 数据线类型
| 类型 | 说明 | 注意事项 |
|---|---|---|
| Micro USB | 常见于 Blue Pill | 确保数据线支持数据传输 |
| USB Type-A to Micro | 标准连接线 | 某些充电线仅供电无法通信 |
| USB Type-C | 部分新型 Blue Pill | 确认板载接口类型 |
辨别数据线方法:
- 观察线材粗细(数据线通常更粗)
- 尝试连接电脑,查看是否识别为设备
- 避免使用仅标注"充电"的线缆
4. 替代开发板
4.1 STM32 Nucleo 系列
Nucleo 是 ST 官方的开发生态板,具有标准化引脚分布(Arduino 兼容)和内置调试器。
代表型号:
| 型号 | MCU | Flash | SRAM | 特点 |
|---|---|---|---|---|
| Nucleo-F103RB | STM32F103RBT6 | 128KB | 20KB | 64pin,Arduino 兼容 |
| Nucleo-F401RE | STM32F401RET6 | 512KB | 128KB | 高性能,72MHz |
| Nucleo-F411RE | STM32F411RET6 | 512KB | 128KB | 高主频,100MHz |
优点:
- 内置 ST-Link 调试器
- Arduino 兼容引脚座
- 原厂品质保证
- 完善的文档和技术支持
缺点:
- 价格高于 Blue Pill
- 尺寸较大
4.2 STM32 Discovery 系列
Discovery 是 ST 的另一产品线,重点展示特定外设功能。
代表型号:
| 型号 | MCU | 特点 |
|---|---|---|
| STM32F4Discovery | STM32F407VG | 带 MEMS 传感器、音频 |
| STM32F3Discovery | STM32F303VC | 运放、高精度 ADC |
| STM32L476GDISCO | STM32L476RG | 低功耗、LCD 控制 |
优点:
- 板载丰富外设(LED、传感器、音频等)
- 内置调试器
- 原厂品质
缺点:
- 价格较高
- 部分引脚被板载外设占用
4.3 其他第三方开发板
WeAct Studio STM32F103C8T6:
- 与 Blue Pill 兼容
- 改进的 USB 电路设计
- 更稳定的晶振
RobotDyn STM32F103:
- 小型化设计
- 内置 USB-C 接口
通用设计考量:
- 确认引脚分布兼容性
- 检查调试接口是否引出
- 确认供电电路设计
5. 外设扩展
5.1 基础外设
LED 和按键模块:
- 3mm/5mm 直插 LED(红、绿、蓝)
- 带电阻的 LED 模块(3.3V 专用)
- 轻触按键模块
推荐连接:
LED 模块 Blue Pill
------- --------
VCC --> 3.3V
GND --> GND
SIG --> 任意 GPIO(如 PA0)5.2 显示模块
OLED 显示屏:
| 类型 | 驱动芯片 | 通信接口 | 分辨率 |
|---|---|---|---|
| OLED | SSD1306 | I2C / SPI | 128×64 |
| OLED | SH1106 | I2C | 128×64 |
连接示例(I2C):
OLED 模块 Blue Pill
-------- --------
VCC --> 3.3V
GND --> GND
SCL --> PB6 (I2C1_SCL)
SDA --> PB7 (I2C1_SDA)LCD 1602/2004:
- 并行接口或 I2C 转接板
- 需要电平转换(如使用 5V 版本)
5.3 传感器模块
| 传感器 | 接口 | 功能 |
|---|---|---|
| DHT11/DHT22 | 单总线 | 温湿度检测 |
| DS18B20 | 单总线 | 温度检测 |
| HC-SR04 | GPIO | 超声波测距 |
| BMP280 | I2C/SPI | 气压、温度 |
| MPU6050 | I2C | 六轴加速度计、陀螺仪 |
| HC-05/HC-06 | USART | 蓝牙通信 |
5.4 通信模块
WiFi 模块:
- ESP8266(ESP-01):需要 3.3V 供电和 AT 指令
- ESP32:更强大,支持双模蓝牙
蓝牙模块:
- HC-05:主从一体
- HC-06:从机模式
接线注意:
- 确认模块电压兼容(3.3V 专用或宽电压)
- 某些模块需要电平转换(5V 与 3.3V 之间)
5.5 其他常用模块
| 模块 | 用途 |
|---|---|
| 舵机模块 (SG90) | 角度控制 |
| 电机驱动 | 直流电机、步进电机控制 |
| 继电器模块 | 大电流设备控制 |
| SD 卡模块 | 数据存储 |
| RTC 时钟 (DS3231) | 实时时钟 |
6. 采购建议
6.1 注意事项
芯片真伪鉴别
- ST 官方芯片表面印刷清晰,标识规范
- 国产兼容芯片可能有细微差异(字体、标识位置)
- 通过 STM32CubeProgrammer 读取芯片唯一 ID 验证
板子质量检查
- PCB 边缘光滑无毛刺
- 焊点均匀饱满,无虚焊
- 元器件位置端正,无歪斜
USB 接口检查
- 接口松动不建议购买
- 确认 USB 座金属外壳接地良好
调试器兼容性
- 确认调试器支持 SWD 接口
- 部分超低价调试器可能存在功能缺陷
6.2 常见陷阱
| 陷阱 | 说明 | 避免方法 |
|---|---|---|
| 虚假容量 | 声称更大 Flash/SRAM | 查看芯片型号 |
| 二手芯片 | 使用翻新或拆机芯片 | 检查引脚氧化情况 |
| 电压不匹配 | 5V 逻辑模块 | 确认电压规格 |
| 缺少关键元件 | 省去上拉电阻等 | 仔细查看板子照片 |
6.3 质量鉴别建议
外观检查
- 芯片表面无划痕、氧化
- 晶振旁边有空贴片位置(可能是偷工减料)
- PCB 板材质量(好板子手感光滑)
通电测试
- 上电后芯片微热为正常
- 过热可能存在短路
- LED 指示灯亮度正常
功能验证
- 通过调试器连接测试
- 运行简单程序验证所有功能
- 检查 USB 枚举是否正常
6.4 采购清单建议
入门必备:
- [ ] Blue Pill 开发板 × 1
- [ ] ST-Link V2 调试器(含下载线)× 1
- [ ] USB 数据线(数据线,非充电线)× 1
- [ ] 面包板 × 1
- [ ] 杜邦线套装
可选配件:
- [ ] USB-TTL 串口模块
- [ ] LED 和按键套装
- [ ] 万用表(调试必备)
- [ ] 示波器(高级调试)
7. 硬件常见问题
7.1 USB 无法识别
症状: 电脑无法识别 Blue Pill 的 USB 设备
可能原因:
- USB 数据线仅供电不支持数据传输
- USB D+/D- 上拉电阻配置问题
- 板子未上电或电源问题
- 电脑 USB 控制器驱动问题
解决方案:
步骤 1:确认数据线
- 更换为已知良好的数据线
- 尝试连接多个 USB 端口
步骤 2:检查供电
- 测量 3.3V 引脚电压是否正常
- 确认 USB 接口接触良好
步骤 3:检查 D+/D- 电路
- 某些 Blue Pill 板子在 D+ 上有 1.5K 上拉电阻
- 尝试移除或添加上拉电阻
步骤 4:电脑端排查
- 在设备管理器中查看是否有未知设备
- 尝试其他电脑进行交叉验证7.2 芯片真伪鉴别
方法一:读取芯片 ID
# 使用 STM32CubeProgrammer 或 OpenOCD
# 正常芯片会返回唯一的 JTAG ID方法二:观察外观
| 正品特征 | 可疑特征 |
|---|---|
| 印刷清晰、字体规范 | 字体模糊、标识歪斜 |
| 引脚镀锡均匀 | 引脚颜色不均、有腐蚀 |
| 表面质感一致 | 表面有明显打磨痕迹 |
方法三:功能测试
- 测试所有 GPIO 引脚
- 验证 ADC 精度
- 检查 USB 功能
- 测试通信接口
7.3 电源问题
症状一:芯片发热严重
可能原因:
- 短路(焊锡桥接)
- 负载过大
- 供电电压过高
解决步骤:
1. 断电检查
- 目视检查焊点
- 测量各电源引脚对地电阻
2. 降低负载
- 移除所有外设
- 仅保留最小系统
3. 检查供电
- 测量输入电压
- 确认 LDO 输出电压症状二:程序运行不稳定
可能原因:
- 供电不足
- 电源噪声过大
- 退耦电容缺失
解决建议:
- 增加电源滤波电容(0.1μF + 10μF)
- 使用独立电源供电大电流外设
- 检查接地是否良好
7.4 调试连接问题
症状: 调试器无法连接芯片
排查步骤:
1. 硬件检查
- 确认 SWDIO、SWCLK 连接正确
- 检查 GND 共地
- 确认 VTref 电压匹配
2. 线缆检查
- 使用短杜邦线(长线可能信号衰减)
- 避免使用质量差的排线
3. 目标板状态
- 尝试按住复位键的同时开始连接
- 检查芯片是否损坏
4. 软件设置
- 确认选择了正确的芯片型号
- 检查调试接口设置(SWD/JTAG)7.5 BOOT 引脚配置问题
启动模式说明:
| BOOT0 | BOOT1 | 启动模式 |
|---|---|---|
| 0 | X | 从 Flash 启动(正常模式) |
| 1 | 0 | 从系统存储器启动(串口下载) |
| 1 | 1 | 从 SRAM 启动(调试用) |
常见问题:
- 串口下载失败:确认 BOOT0 = 1,BOOT1 = 0
- 无法下载新程序:检查 BOOT0 跳针设置
- SRAM 启动丢失:确认BOOT1 引脚状态
8. 资源链接
8.1 官方文档
8.2 开发工具
- STM32CubeIDE - 官方 IDE
- STM32CubeProgrammer - 编程工具
- OpenOCD - 开源调试器
- PlatformIO - 多平台开发
8.3 社区资源
文档版本:1.0
最后更新:2026年3月