一、STM32F103ZET6 命名方法
这里我们以 STM32F103ZET6 为例来解释下 STM32 的命名方法。
理解各个部分含义:
1. STM32
ST 为 "意法半导体" 公司缩写,M 则为 "微电子" Microelectronics 的缩写。STM32 表示为意法半导体设计生产的 32 位 MCU。 意法半导体也有 8 位的 MCU 产品,STM8 系列。只不过 STM8 的影响力比 STM32 要小很多了。
2. F103
**F1 归属于 "主流"(Mainstream) 产品线,并且使用 Cortex-M3 的 CPU 内核。**03 属于 STM32F1 子系列中具体的产品线。 Cortex-M 系列都是 ARM 公司研发的微控制器 CPU 内核。这个系列下有 M0, M3, M4, M7, M33 等,可以简单的认为,数字越大,性能越高。 类似于 Intel CPU 有 i3, i5, i7, i9 这样的划分。
3. Z
- Z:**这个 MCU 有 144 个 pin(也叫做针脚 / 引脚)。 针脚就是 MCU 侧方凸起的金属针。**MCU 通过这些金属针和其他电子元件连接,用于传输信号。 一条边上是 36 个,4 条边共计 144 个。 当然还有其他字符,也能表示其他 pin 数目
| 字母标识 | pin 数目 |
|---|---|
| T | 36 |
| C | 48 |
| R | 64 |
| V | 100 |
| Z | 144 |

4. E
- E:表示内部 Flash 容量为 512 KB
表格
| 字母标识 | Flash 容量 |
|---|---|
| 4 | 16 KB |
| 6 | 32 KB |
| 8 | 64 KB |
| B | 128 KB |
| C | 256 KB |
| D | 384 KB |
| E | 512 KB |
| F | 768 KB |
| G | 1024 KB |
为什么会有内部 Flash?
初期切入的开发领域是裸机开发领域:
这种裸机开发领域,比较大的特点是:
形成的二进制程序,直接烧写到 MCU 内部的 FLASH 中,然后才有 ARM CPU (Cortex-M3) 执行代码的过程。这个过程就是典型的:裸机开发
所以你也就理解,为什么 MCU 内部会有 FLASH,**不同的 MCU,FLASH 大小会有差异,因为不同的 FLASH 容量,代表能烧写的不同程序的体积,本质是对应不同规模的产品。**FLASH 种类越多,就可以在成本可控的范围内低成本满足产品需求,从而让终端产品更具有价格竞争力。
5. T
- T:封装类型,采用 LQFP 封装。
当然也有其他类型的封装,如下 (部分):
| 字母标识 | 封装类型 | 英文全称 | 中文含义 |
|---|---|---|---|
| T | LQFP | Low-profile Quad Flat Package | 低轮廓四边扁平封装 |
| H | BGA | Ball Grid Array | 球栅阵列封装 |
| U | VFQFPN | Very Thin Fine-pitch Quad Flat No-lead Package | 超薄细间距四边扁平无引脚封装 |
⚠️ 理解 "封装"
电子元件要想工作,需要焊接到电路板上。这就需要电路板提供对应的 "焊盘"。 此处的 "封装" 就描述了 "焊盘" 的形状,电子元件的形状也就需要和焊盘形状匹配上。
LQFP封装



BGA封装



VFQFPN封装



6.6
- 6:工作温度范围,6 表示工作温度范围 -40 度到 +85 度;如果是 7 表示工作温度范围 -40 度到 +105 度
表格
| 数字标识 | 工作温度范围 |
|---|---|
| 6 | -40℃ ~ +85℃ |
| 7 | -40℃ ~ +105℃ |
这个工作温度指的是 MCU 的工作温度。 为什么型号中往往把温度作为一个核心指标体现在名字上?
- 可靠性:如果你的设备需要在夏天暴晒的户外(可能达到 70~80℃),或者靠近发热元件(大功率 LED、电机驱动),就必须选择 7(105℃)甚至更高级别。
- 性能降级:当温度超过 85℃时,普通 6 型号的芯片可能:
- 最高主频需要降低(比如从 72MHz 降到 60MHz)
- ADC 的精度会下降
- 内部 LDO 或 Flash 擦写可靠性可能受影响
所以,特殊领域往往会具有极端温度场景(比如石油钻头勘探领域),所以,MCU 需要标识清楚自己的工作温度范围,方便技术人员快速选型。
可以在数据手册中查看到:

二、认识 STM32F103ZET6 引脚
1. 引脚布局
引脚布局属于硬件,那么就一定能在《数据手册》中找到引脚相关内容。
在数据手册中翻到 "Pinouts and pin description"(引脚定义)章节,即可看到引脚布局。
⚠️ 关于数据手册
电子元件设备种类非常繁多,内部的各种参数和性能指标也千差万别。因此厂商就会提供一份数据手册,对电子元件进行详细的介绍。我们未来的学习 / 开发过程中也会经常接触到各种数据手册。 手册上包含多种封装的说明,这里只关注 STM32F103ZET6 的 LQFP 封装 144 引脚的情况。

每个引脚都有一个对应的名字,描述这个引脚的功能。后续我们编写代码的时候,相当一部分逻辑就是在针对这些引脚,通过设置输入 / 输出的电信号,对某种设备进行控制。
在认识引脚之前,需要先把这个图和真实的 STM32 MCU 联系起来。
注意,在 STM32F103ZET6 实物图上,有一个实心的圆点。通过这个圆点来明确引脚从哪里开始编号。 从圆点最近的引脚开始编号,编号从 1 开始,逆时针递增。
下面,我们先挑选部分引脚做一个初步的介绍: MCU 对外会存在很多的引脚,但是从分类上分为:
- 特殊功能引脚
- 普通引脚
特殊功能引脚
功能由 MCU 芯片硬件永久固定,不能通过软件更改。必须按照数据手册规定的用途正确连接(如电源、复位引脚)。
普通引脚
MCU 的 "可编程接口"。其功能完全由你的软件决定。你可以动态地将其配置为输入(读取按键)、输出(控制 LED)、或复用为 UART、I2C、SPI、PWM、ADC 等特定外设功能。 所以,我们后续编程其实主要设置的都是与普通引脚相关的设定。
2. 特殊功能引脚 (常见部分)
这类功能引脚我们知道存在和基本意义就可以,不用太过于担心记不住的问题。

2.1 VDD 与 VSS
- VDD:接正极供电
通俗理解: Voltage Drain:指芯片内部逻辑电路(通常指 MOSFET 晶体管的漏极)的工作电压,在 STM32F103 系列上,通常连接的 3.3V。
- VSS:接地
Voltage Source:指芯片内部逻辑电路的公共地(源极)电压,就是芯片的负极或 0V 参考地,在 STM32F103 系列上,连接到电路的 GND(地线)。
VDD 接到电源正极上,VSS 接到电源负极上。
2.2 NRST 复位引脚
"复位(Reset)" 指的是让单片机强制回归初始状态,相当于 "重启"。
在PC计算机中流传着绝技,叫做 "重启下试试",通常能解决 90% 的问题。 复位(Reset)就是让单片机(MCU)强行回到一个确定的初始状态,就像电脑强制重启一样。
NRST 的全称通常是:Negative Reset 前面的 N 代表 Negative 或 Not,强调该引脚在低电平(0V)时触发复位。 如果写成 RST 或 RESET,通常可能是高电平有效;带 N 的则明确是低电平有效。 绝大多数单片机(如 STM32 等)的复位引脚是低电平有效,即:
- 引脚为低电平(0V,也就是接地)时,处于复位状态。
- 引脚为高电平(3.3V)时,正常运行。
**细节:**未来我们把程序烧写到 MCU 内部,就需要按下这个复位按键来完成启动新程序的效果
2.3 VBAT:备用电池
VBAT(Voltage Battery):**为 MCU 内部 RTC(实时时钟)和备份寄存器供电。**当主电源 VDD 丢失时,VBAT 自动供电。这是为了系统在掉电后能快速恢复时间上下文 / 数据,而不是保证 MCU 整体持续运行。
**类比电脑主板的纽扣电池:**主板上的电池维持 BIOS 时钟和设置。电脑本身不能运行,但下次开机时间不会丢失。
2.4 BOOT0:启动模式选择
关于启动模式:描述了单片机复位后,从谁提供的软件指令开始执行。
BOOT 引脚组合决定了单片机重启后,从哪个位置加载程序。
细节:
- BOOT1 也存在,但是直接被接地 (一般做板子都焊死了),也就是永远是低电平 0。
| BOOT0 状态 | 作用 | 通俗理解 |
|---|---|---|
| 接 GND | 运行已烧录的程序 | 正常开机,执行你烧录的程序。99% 场景下,都是这个。 |
| 接 3.3V | 进入 Bootloader,等待串口下载 | 进入刷机模式,执行意法提供的 Bootloader。当未来无法烧录的时候,可以使用它强制烧写 |
Bootloader 是 ST 公司固化在芯片系统存储器里的不可修改程序,作用是用串口等接口烧录 / 恢复固件,当未来我们使用仿真器无法烧录的时候,可以使用它强制烧写,恢复执行状态。 在未来我们开发的时候,默认使用的是 BOOT0 接 GND 的方式。
NRST 复位引脚 VS BOOT0:启动模式选择
- NRST 复位引脚:不改变启动源,只是从头开始运行指定的软件。
- BOOT0 启动模式选择:不触发重启,只决定重启后运行谁的问题。
使用 windows 来类比:NRST 决定是否重启,BOOT0 决定开机从哪个盘启
BOOT0 类比:
- 类比一下,像咱们日常使用的 PC,正常启动模式,是直接进入 Windows。但是如果想重置系统,可以选择 "一键重置" 这样的功能,电脑会重启,并进入到重置功能界面。
- 也可以类比你 windows 开机的时候按 F2、F10 什么的,就可以选择进入 BIOS 还是 windows 系统本身一样

2.5 其他
- OSC_IN / OSC_OUT:外部高精度时钟输入 / 输出引脚
- VREF 系列:高精度 ADC/DAC 的参考电压
- NC:No Connect,未进行任何连接的引脚
3.普通引脚
首先通过字母对普通引脚进行分组,再使用数字对每个组的引脚进行编号。
| 分组 | 引脚范围 | 引脚数量 | 说明 |
|---|---|---|---|
| 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 个 | 完整引脚组 |
A-G 一共 7 组,每组 0~15 共 16 个引脚:7×16 = 112 个普通引脚
注意
- 这些引脚在 MCU 上的排列不一定是连续的
- "完整引脚组" 指的是该组字母(如 PA、PB)拥有从 0 到 15 的全部 16 个编号引脚
⚠️ 在后续的编程中,我们主要就是控制这些引脚来 输入 / 输出 电信号。盘一盘所有的针脚:112 个普通引脚 + 32 个特殊功能引脚 = 144 个引脚,和 LQFP144 封装总数对应;
三、认识仿真器
开发 STM32 程序来说,需要把编写好的代码,编译并烧录到 STM32 开发板中。
这个时候就需要使用到仿真器了。
1. ST-Link


上图是 ST 官方生产的 ST-Link: https://www.st.com.cn/zh/development-tools/st-link-v2.html ST-
太贵了,没必要,而且是闭源的,不选择它。
2 DAPLink

上图是国产的 DAP 仿真器,这个在淘宝上都能看到PowerWriter PWLINK2创芯工坊STM32替代stlink仿真调试DAP下载器-淘宝网
DAP 仿真器是开源的 它的官方名称叫 DAPLink(旧称 CMSIS-DAP),是由 Arm 公司官方主导并维护的开源项目。
- DAP 全称是 Debug Access Port(调试访问端口),是一个物理仿真器
"开源" 在 DAP 仿真器上体现在这两个层面:
开源层面 说明 软件 / 固件开源 DAPLink 的全部固件源码在 GitHub 上公开,采用开源许可证(如 Apache-2.0),任何人都可以查看、修改和分发 硬件开源 官方提供了参考电路设计,许多开发者基于此设计并开源了自己的 DAP 仿真硬件 官方开源仓库
- Arm Mbed DAPLink GitHub 仓库:https://github.com/ARMmbed/DAPLink
- github 访问有问题,可以看:DAPLink: DAPLink官方镜像
细节:如何理解仿真器开源?
- DAPLink 自己本身就是一个单片机系统。
- 正因为开源,所以有很多人可以自己做自己的 DAPLink:https://oshwhub.com/XiaoMao/DAPLink_STM32F103C8T6
这里做 MCU 软件开发,直接使用现成的就可以了。
解释:DAPLink 自己本身就是一个单片机系统。
四、简单理解仿真器
仿真器是一种硬件调试工具。
通过仿真器连接开发板和 PC,从而通过 PC 上的开发工具,对 MCU 进行烧录,调试
烧录本质就是把编译生成的可执行程序,通过仿真器,写入到 STM32 片上 Flash 中。
市面常见的仿真器:
- ST-Link: ST 官方出品的 STM32 & STM8 的仿真器。
- J-Link: 由 SEGGER 公司生产,是业界标准的专业调试器
- DAP: 开源社区设计的仿真器
- U-Link: 由 ARM/Keil 公司生产,主要用于配合 Keil MDK 开发环境的仿真器
这些仿真器功能和使用方式大同小异,推荐使用 DAP。
⚠️ 之所以使用 DAP,是因为 DAP 完全开源免费。 ST-Link 或者 J-Link 在企业开发中更常见,但是正版设备需要动辄上千元的授权费用,并不适合初学者使用。 而且 DAP 的用法和 ST-Link 非常相似,我们现在熟悉了 DAP,未来在企业中如果使用 ST-Link,也几乎不需要学习成本。
❓问题:之前我们学习特殊引脚的时候,看过 BOOT0 可以让我们进入刷机模式,烧写程序,那么为什么还要用仿真器来进行烧写呢?
- 因为仿真器最核心的价值在于在线调试(断点,单步,监控变量等等)


