基于 STM32F103C8T6 的最小系统板,包含 KiCad PCB 设计文件、Gerber 制造文件和裸机固件示例。
| 项目 | 规格 |
|---|---|
| MCU | STM32F103C8T6 (Cortex-M3, 72MHz, 64KB Flash, 20KB SRAM) |
| 封装 | LQFP-48 |
| 电源 | USB-C 5V 输入 → AMS1117-3.3V |
| 时钟 | 8MHz HSE + 32.768kHz LSE |
| 调试 | SWD (4-pin 排针) |
| GPIO | PA0-PA15 + PB0-PB15 全部引出 |
| 尺寸 | 50mm × 50mm(双层板) |
pcb-project/
├── README.md # 本文件
├── build_stm32_minimal.py # KiCad MCP 自动化脚本(生成 PCB 工程)
├── stm32-minimal/ # KiCad 工程
│ ├── stm32-minimal.kicad_pro # 工程文件
│ ├── stm32-minimal.kicad_sch # 原理图
│ ├── stm32-minimal.kicad_pcb # PCB 布局
│ ├── stm32-minimal.kicad_prl # 本地库
│ ├── preview.png # 3D 预览图
│ └── fab/ # 制造文件
│ ├── gerbers/ # Gerber 文件(发厂打样)
│ ├── drill/ # 钻孔文件
│ ├── stm32-minimal-bom.csv # BOM 物料清单
│ └── stm32-minimal-pos.csv # 贴片坐标文件
└── blinky/ # 裸机固件
├── Makefile # 编译脚本
├── STM32F103C8Tx.ld # 链接脚本
├── main.c # 主程序(寄存器级)
├── startup.c # 启动文件(向量表)
├── blinky.elf # 编译产物
├── blinky.hex # HEX 烧录文件
└── blinky.bin # BIN 烧录文件
用 KiCad 8.0 或更高版本打开:
- 安装 KiCad:https://www.kicad.org/download/
- 打开
stm32-minimal/stm32-minimal.kicad_pro - 双击左侧列表打开原理图/PCB
stm32-minimal/fab/gerbers/ 目录下的所有文件打包成 ZIP,发给 PCB 厂家(嘉立创、华秋等)。
参数:双层板,50mm×50mm,1.6mm 板厚,绿油白字,有铅/无铅喷锡。
关键物料(完整列表见 stm32-minimal/fab/stm32-minimal-bom.csv):
| 位号 | 规格 | 封装 |
|---|---|---|
| U1 | STM32F103C8T6 | LQFP-48 |
| U2 | AMS1117-3.3 | SOT-223 |
| J1 | USB-C 6P (仅供电) | 贴片卧式 |
| Y1 | 8MHz 无源晶振 | 3×10mm 圆柱 |
| Y2 | 32.768kHz 无源晶振 | 3×10mm 圆柱 |
| LED | 0805 贴片 LED ×2 | 0805 |
| 电阻 | 1k/10k/1M 0805 | 0805 |
| 电容 | 10pF/10nF/100nF/1uF/10uF 0805 | 0805 |
ARM 交叉编译工具链(任选一种):
-
ARM GNU Toolchain(推荐):
- 下载:https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
- 选
arm-none-eabi版本,Windows 选.exe安装包 - 安装时勾选"添加到 PATH"
-
验证安装:
arm-none-eabi-gcc --version # 应显示类似: arm-none-eabi-gcc (GNU Arm Embedded Toolchain) 13.x
cd blinky
make成功后生成 blinky.elf、blinky.hex、blinky.bin。
需要 ST-Link 或 J-Link 调试器 + pyOCD:
# 安装 pyOCD
pip install pyocd
# 烧录
make flash
# 或手动: pyocd flash -t stm32f103c8 blinky.elf接线:
| ST-Link | 开发板 SWD 排针 |
|---|---|
| GND | GND |
| SWCLK | SWCLK |
| SWDIO | SWDIO |
| 3.3V | 3.3V |
烧录后 PC13 连接的 LED 以 ~1Hz 频率闪烁。
build_stm32_minimal.py 使用 kicad-claude-mcp 自动化生成 PCB 工程,需要以下环境:
# 前置:安装 kicad-claude-mcp
# 参考: https://github.com/HermeticOrmus/kicad-claude-mcp
# 运行
python build_stm32_minimal.py注意:此脚本需要 KiCad 库索引和 kicad-claude-mcp 环境,仅用于参考自动生成流程。日常修改直接用 KiCad GUI 即可。
Q: make 报错 arm-none-eabi-gcc: command not found?
A: 工具链没装或没加到 PATH。重新运行安装包,确保勾选"Add to PATH"。
Q: pyocd flash 报错找不到设备?
A: 检查 ST-Link 驱动是否安装,SWD 接线是否正确。Windows 可能需要安装 ST-Link 驱动。
Q: 烧录成功但 LED 不亮? A: 检查 LED 方向(正极接 PC13,负极接 GND 串联 1k 电阻)。用万用表测 PC13 引脚电压是否变化。
Q: PCB 文件用 KiCad 7 打不开? A: 需要 KiCad 8.0+。KiCad 7 用户需先升级。
Q: 板子接 USB-C 没反应? A: 这个板子用 USB-C 供电(非通信),检查 3.3V 测试点电压是否正常。USB-C 的 CC 引脚没配电阻的话可能某些充电器不输出 5V。