什么是 STM32?
- ST:意法半导体(由意大利 SGS 与法国 Thomson 合并成立)
- M:Micro Controller,微控制器(即常说的单片机)
- 32:表示这是一个 32 位 的单片机
为什么用 STM32?
- 性能强:比 51、AVR、PIC 等 8/16 位单片机强,能跑 RTOS
- 外设全:GPIO、USART、I2C、SPI、CAN、ADC/DAC、定时器、DMA 等
- 生态完善:CubeMX、CubeIDE、社区资料、中文教程丰富
- 选型灵活:从几块钱的低端型号到高性能型号都有
在哪用?
主要应用于工业控制、消费电子、IoT(物联网)、电机控制、汽车电子、医疗设备等场景。
STM32 产品系列
- G 系列(通用)
- F 系列(主流)
- F0(Cortex-M0 内核,48 MHz 主频)
- F1(Cortex-M3 内核,72 MHz 主频)
- F100(低成本,外设精简)
- F101
- F102
- F103
- F105 / F107(互联型,通信外设丰富,如以太网、CAN、USB OTG 等)
- F2(Cortex-M3 内核,120 MHz 主频)
- F3(Cortex-M4 内核,72 MHz 主频)
- F4(Cortex-M4 内核,180 MHz 主频)
- F7(Cortex-M7 内核,216 MHz 主频)
- H 系列(高性能)
- L 系列(低功耗)
- W 系列(无线)
STM32F103C8T6 介绍
型号解析
| 字段 | 含义 | 详细说明 |
|---|---|---|
| ST | 品牌 | 意法半导体 |
| M32 | 产品类型 | 32 位单片机 |
| F103 | 产品系列 | 主流型,M3 内核,72 MHz |
| C | 引脚数量 | 48 引脚 |
| 8 | FLASH 容量 | 64 Kbytes |
| T | 封装类型 | LQFP |
| 6 | 温度范围 | -40 ~ 85 ℃ |
相关手册
- 数据手册:类似规格书,给出产品的性能指标和参数
- 参考手册:类似说明书,教你芯片怎么用、怎么编程
引脚分布
查看 STM32F103xx 数据手册:在 Pinouts and pin description 目录(引脚分配和引脚描述)中有 Figure 6. STM32F103xx performance line LQFP48 pinout(图 6. STM32F103xx 高性能系列 LQFP48 的引脚分配)。
如下图所示:

注意:引脚编号的一般规则是——黑色圆点附近是 1 脚,编号逆时针递增。
在数据手册中,将引脚分为 普通 I/O 引脚 和 特殊引脚。
特殊引脚
| 引脚 | 功能 | 说明 |
|---|---|---|
| VDD | 供电 + | 接 3.3 V |
| VSS | 地 | 接地 0 V |
| NRST | 复位 | 接复位按钮,程序从头开始执行 |
| VBAT | 备用电源 | |
| BOOT0 | 启动模式选择 |
普通引脚命名规则
以字母作为组编号,以数字作为引脚编号:
1 | GPIOA:PA0 PA1 PA2 …… PA15 |
单片机内部结构框图
在数据手册 Pinouts and pin description 这一目录中,可以找到单片机的内部结构框图如下:

该图看起来比较复杂,可以简化一下。下图是简化图,用于认识片上外设:

GPIO 工作模式
GPIO 的工作模式有 8 种:4 种输入,4 种输出。
什么是工作模式?
工作模式就是 I/O 引脚的使用方式。这里的工作模式是针对单片机的一根 I/O 引脚所说的,每一个 I/O 引脚都可以选择这 8 种工作模式之一。
为什么有这么多种工作模式?
I/O 引脚需要在工作场景中承担不同的工作任务,因此在设计中要把 I/O 引脚设计得足够灵活。
在数据手册 General-purpose and alternate-function I/Os(GPIOs and AFIOs) 这一目录中找到以下 I/O 引脚的基本结构:

GPIO 的 4 种输出模式
- 通用输出推挽
- 通用输出开漏
- 复用输出推挽
- 复用输出开漏
推挽
P-MOS 和 N-MOS 交替导通输出高低电平:
- 输出 1 时,P-MOS 管导通,N-MOS 管截止;
- 输出 0 时,N-MOS 管导通,P-MOS 管截止。
开漏
P-MOS 一直保持断开,相当于 N-MOS 管的漏极开漏了:
- 输出 0 时,N-MOS 管导通;
- 输出 1 时,N-MOS 管断开,处于高阻抗,需要外加上拉电阻才能输出 1。
通用
通过 CPU 直接向输出数据寄存器写值,然后再经过输出控制电路控制两个 MOS 管的导通和关断,来控制 I/O 引脚的输出。
复用
其他片上外设(除了 GPIO 片上外设)经过输出控制电路控制两个 MOS 管的导通和关断,来控制 I/O 引脚的输出。
I/O 引脚的最大输出速度
定义:向 I/O 引脚交替写 1 和 0,且输出波形不失真的最快速度。
在理想情况下,高电平到低电平的跳变是瞬间完成的;而实际情况中,波形存在 上升时间、下降时间 和 保持时间。理想情况与实际情况的对比如下图:

上升时间和下降时间限制了 I/O 引脚的最大输出速度。由于上升时间和下降时间相对固定,当保持时间不断缩小时,波形会逐渐趋于稳定状态;直到上升时间与下降时间相连,保持时间消失,稳定电平便无法维持。除非改变上升时间和下降时间,否则波形将无法正常变化。如下图所示:

最大输出速度与时钟频率(MHz)正相关:MHz 越高,最大输出速度越高。影响 STM32F103C8T6 最大输出速度的,有以下 3 个时钟频率可供选择:

了解这 3 个时钟频率后,可按照以下方式选择:

❓ 存疑:某元件数据手册中单位出现 Mbps 时,如何挑选对应的 MHz,待搞懂。
GPIO 的 4 种输入模式
- 上拉输入:使能上拉电阻,提供默认的高电压。
❓ 待整理(9.22):什么是“默认高电压”?(目前不太懂,需要整理)
- 下拉输入:使能下拉电阻,提供默认的低电压。
- 浮空输入
- 模拟输入
STM32F103C8T6 一般的输入引脚结构如数据手册图中所示:

📌 待补充:详细选择方法待补充。








I2C协议:
全称是Inter-Integrated Circuit。inter:之间,相互;Intergrated Circuit:集成电路
合起来就是“集成电路之间”的通信总线。缩写时IIC或I2C。