初识STM32F103ZET6:从零认识你的第一颗32位MCU
前言
STM32系列单片机在嵌入式领域的影响力无需多言。作为初学者,我们使用的第一颗芯片通常是STM32F103ZET6。这篇文章将带你系统性地认识这颗芯片------从它的命名含义、引脚功能,到开发工具和烧录流程,帮助你建立对STM32开发的基本认知。
一、STM32是什么?
简单来说,STM32是意法半导体(ST)公司推出的32位微控制器(MCU)。它在嵌入式领域的地位,可以理解为智能手机领域的"安卓"------生态丰富、市场庞大、应用广泛。
STM32的诞生背景
早期嵌入式教学普遍使用51单片机(8位,诞生于1970年代),其结构简单、无需仿真器即可通过串口烧录程序,非常适合教学入门。但面对现代产品对更低功耗、更高性能、更丰富外设的需求,51已经力不从心。
ARM公司适时推出了Cortex-M3内核,ST公司基于该内核推出了STM32系列MCU。凭借产品线丰富、性价比高、库开发简单三大优势,STM32迅速占领中低端MCU市场。
二、STM32能做什么?
STM32应用场景极为广泛:
- 智能穿戴:智能手环、手表
- 消费电子:平衡车、POS机、3D打印机
- 工业控制:PLC、电机驱动、传感器节点
- 物联网:智能家居、无线传感器
- DIY创客:四轴飞行器、机器人
在立创开源广场(oshwhub.com)搜索"STM32",可以看到大量创客基于STM32制作的开源作品。
三、STM32F103ZET6 命名规则解读
3.1 "STM32"
- ST:意法半导体(STMicroelectronics)
- M:微电子(Microelectronics)
- 32:32位MCU
3.2 "F103"
- F:属于主流(Mainstream)产品线
- 1:Cortex-M3内核
- 03:F1系列中的具体子型号
3.3 "ZET6" 逐字拆解
| 字符 | 含义 | 说明 |
|---|---|---|
| Z | 引脚数144 | Z=144引脚,T=36,C=48,R=64 |
| E | Flash容量512KB | 4=16K,6=32K,8=64K,B=128K,C=256K,D=384K,E=512K,F=768K,G=1MB |
| T | 封装类型LQFP | LQFP = 低轮廓四边扁平封装,是最常见的MCU封装形式 |
| 6 | 工作温度-40℃~85℃ | 6=-40℃85℃,7=-40℃105℃ |
四、认识引脚:MCU的"对外接口"
4.1 引脚布局
LQFP144封装的STM32F103ZET6共有144个引脚,每条边36个引脚。实物芯片上有一个实心圆点标记,从此处开始逆时针编号,从1到144。
4.2 引脚分类
| 类型 | 说明 |
|---|---|
| 特殊功能引脚 | 功能由硬件固定,必须按规范连接,否则芯片无法工作(电源、时钟、复位等) |
| 普通引脚 | 可编程控制,可配置为输入、输出或复用为UART、I2C、SPI、ADC等外设功能 |
4.3 常见特殊功能引脚
VDD / VSS(电源引脚)
- VDD:接3.3V正极
- VSS:接GND(地)
- MCU需要稳定的电源才能工作
NRST(复位引脚)
- 低电平有效(给0V触发复位)
- 相当于电脑的"重启键"
- 通常外接一个按键
BOOT0(启动模式选择)
- 接GND:正常启动,运行已烧录的程序
- 接3.3V:进入Bootloader刷机模式
- 开发时99%接GND
VBAT(备用电池)
- 当VDD掉电时,VBAT为RTC和备份寄存器供电
- 类似电脑主板的BIOS电池
4.4 普通引脚的编号方式
普通引脚按"组+编号"命名:
| 组 | 引脚范围 | 数量 |
|---|---|---|
| PA | PA0 ~ PA15 | 16个 |
| PB | PB0 ~ PB15 | 16个 |
| PC | PC0 ~ PC15 | 16个 |
| PD | PD0 ~ PD15 | 16个 |
| PE | PE0 ~ PE15 | 16个 |
| PF | PF0 ~ PF15 | 16个 |
| PG | PG0 ~ PG15 | 16个 |
共7组 × 16 = 112个普通引脚。后续编程主要就是控制这些引脚的输入/输出状态。
五、仿真器:连接PC与开发板的桥梁
什么是仿真器?
仿真器是一种硬件调试工具,通过它连接开发板和PC,实现:
- 烧录:将编译好的程序写入MCU的Flash
- 调试:断点、单步执行、监控变量值
常见仿真器对比
| 仿真器 | 特点 |
|---|---|
| ST-Link | ST官方出品,STM32/STM8专用,正版价格较高 |
| J-Link | SEGGER公司生产,业界标准,功能强大,价格昂贵 |
| DAPLink | ARM官方开源项目,免费、开源,适合初学者 |
| U-Link | Keil配套仿真器 |
课程中使用DAPLink,因为它完全开源免费,且用法与ST-Link非常相似,后续切换到ST-Link几乎零学习成本。
SWD调试接口(4线连接)
DAPLink与开发板通过4根线连接:
| 引脚 | 功能 |
|---|---|
| GND | 接地 |
| SWCLK | 时钟线 |
| SWDIO | 数据线 |
| RST | 复位(可选) |
其他未使用的引脚属于JTAG完整接口的辅助信号,在SWD调试模式下不需要连接。
六、第一次烧录:跑通测试程序
准备工作
- 连接硬件:DAPLink → 开发板(4根杜邦线)
- 连接电脑:DAPLink的USB口 → 电脑USB
- 下载测试工程:从Gitee克隆或直接下载ZIP
编译
在Keil中点击Build按钮,提示"0 Errors, 0 Warnings"即编译成功。
烧录步骤
- 点击魔术棒 → Debug → 选择CMSIS-DAP Debugger
- Settings → Flash Download → 勾选"Reset and Run"
- 点击Download按钮烧录程序
烧录成功后,开发板上的LED开始闪烁。至此,你已经完成了人生的第一次STM32程序烧录!
七、核心概念补充
裸机开发 vs 操作系统开发
裸机开发:程序直接运行在硬件上,没有操作系统中间层。这种方式入门门槛低、性能高、可控性强,是初学者切入嵌入式开发的理想选择。
操作系统开发:程序运行在FreeRTOS等实时操作系统上,适用于复杂多任务场景。后续会有专门课程讲解。
为什么MCU内部有Flash?
Flash是MCU的程序存储器,用于存储烧录的二进制程序。不同MCU的Flash容量不同(如E=512KB),对应能承载不同规模的程序。Flash容量越大,可以运行更复杂的逻辑,但也意味着更高的成本。
八、总结
| 知识点 | 核心内容 |
|---|---|
| STM32是什么 | ST公司推出的32位MCU,基于Cortex-M内核 |
| STM32F103ZET6含义 | F系列主流,M3内核,144引脚,512KB Flash,LQFP封装,-40~85℃ |
| 引脚分类 | 特殊功能引脚(固定)+ 普通引脚(可编程) |
| 仿真器作用 | 烧录程序 + 在线调试 |
| 烧录流程 | 编译 → 配置Debug → Download |
| 开发模式 | 裸机开发(入门)+ 操作系统(进阶) |