news 2026/10/2 15:16:44

微机原理与接口技术 · 第3章《STM32F1 系列微控制器》知识点梳理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微机原理与接口技术 · 第3章《STM32F1 系列微控制器》知识点梳理

微机原理与接口技术 · 第3章《STM32F1 系列微控制器》知识点全梳理

本文整理自福州大学《微机原理与接口技术》吴衔誉教授第三章课件,系统讲解 STM32F1 系列简介、系统架构与内部结构、存储器映像、时钟结构、引脚与启动配置、最小系统设计六大板块。


目录

  • 一、STM32F1 系列微控制器简介
  • 二、系统架构与 STM32F103ZET6 内部结构
  • 三、STM32F103ZET6 的存储器映像
  • 四、STM32F103ZET6 的时钟结构
  • 五、引脚与启动配置
  • 六、最小系统设计
  • 本章小结与思考题

一、STM32F1 系列微控制器简介

1.1 厂商背景

意法半导体(STMicroelectronics,ST)1987 年由意大利 SGS 微电子与法国 Thomson 半导体合并成立,是世界最大的半导体公司之一。

1.2 各系列产品特点

2007 年 6 月,ST 发布首款基于 Cortex-M3、内嵌 32~128 KB 闪存的 STM32 微控制器。F1 系列按应用定位分为:

系列主频关键特性
超值型 STM32F10024 MHz电机控制、CEC 功能
基本型 STM32F10136 MHz高达 1 MB Flash
连接型 STM32F10248 MHz具备 USB FS device 接口
增强型 STM32F10372 MHz高达 1 MB Flash、电机控制、USB、CAN
互联型 STM32F105/10772 MHz以太网 MAC、CAN、USB 2.0 OTG

本课程核心芯片为增强型 STM32F103。

1.3 命名规则(以 STM32F103ZET6 为例)

STM32 F 103 Z E T 6 │ │ │ │ │ │ │ │ │ │ │ │ │ └─ 温度范围:6=工业级 -40~85℃;7=工业级 -40~105℃ │ │ │ │ │ └──── 封装:H=BGA;T=LQFP;U=VFQFPN;Y=WLCSP64 │ │ │ │ └─────── 闪存容量:4=16KB;6=32KB;8=64KB;B=128KB;C=256KB;D=384KB;E=512KB │ │ │ └────────── 引脚数:T=36;C=48;R=64;V=100;Z=144 │ │ └────────────── 子系列:101=基本型;102=USB基本型;103=增强型;105/107=互联型 │ └────────────────── 产品类型:F=通用型 └─────────────────────── STM32:基于 ARM 的 32 位微控制器

拆解 STM32F103ZET6:通用型 / 增强型 / 144 脚 / 512 KB Flash / LQFP 封装 / 工业级 -40~85℃。
练习题中的STM32F103RDT6:通用型 / 增强型 / 64 脚 / 384 KB Flash / LQFP / 工业级。

1.4 封装类型

封装全称特点
LQFPLow Profile Quad Flat Package薄型四方扁平封装,引脚在四边引出
BGABall Grid Array球栅阵列,焊球在底部,密度高
VFQFPNVery thin Fine-pitch Quad Flat No-lead超薄无引线四方扁平
WLCSPWafer-Level Chip Scale Package晶圆级芯片封装,封装后体积 ≈ 裸晶尺寸

WLCSP 原理:在整片晶圆上先封装测试再切割,封装后体积等同 IC 裸晶原尺寸,而传统封装会增加约 20% 体积。


二、系统架构与 STM32F103ZET6 内部结构

2.1 系统架构:内核 + 四条总线 + 总线矩阵

ARM Cortex-M3 内核是整个系统的运算控制中心,配备四条专用高速通道:

总线连接对象作用
ICode内核指令总线 ↔ Flash 指令接口指令预取在此完成
DCode内核 DCode 总线 ↔ Flash 数据接口取 Flash 中的数据 / 常量
系统总线内核系统总线 ↔ 总线矩阵访问 SRAM、外设,矩阵协调内核与 DMA
DMA 总线DMA 的 AHB 主接口 ↔ 总线矩阵DMA 与 CPU 经矩阵访问 SRAM/Flash/外设

总线矩阵相当于芯片内部的「交通枢纽 / 立交桥」:连接内核各总线、DMA 控制器与存储设备,多主设备(内核、DMA)争用同一从设备时负责仲裁(轮转算法,先来先服务)。矩阵含4 个主动部件 + 4 个被动部件。

AHB/APB 桥:在 AHB 与两条 APB 之间同步连接。APB1 限速 36 MHz,APB2 全速(最高 72 MHz)。

2.2 DMA(直接存储器访问)

DMA 是与 CPU平级的总线主设备,专司数据搬运。

  • 本质:CPU 只「下单」,搬运由 DMA 完成;传输前交总线、结束立即交回,不是更快的 CPU,而是另一个总线主设备。
  • 一次完整传输 4 步:① DMA 请求(外设数据就绪)→ ② DMA 响应(申请总线控制权)→ ③ DMA 传输(CPU 完全不参与)→ ④ DMA 结束(交回总线并触发中断)。
  • 应用举例(ADC 连续采样 1000 点):配置 DMA1 通道 1,源 = ADC1 数据寄存器,目的 = 数组首址,长度 1000、16 位宽。启动后 CPU 转去跑主程序;1000 个数据搬完才触发1 次完成中断——中断次数从 1000 次降到 1 次。
对比项CPU 亲自搬交给 DMA
谁在干活CPU 逐字节搬运DMA 控制器批量搬运
CPU 状态全程占用,别的都干不了配置后即可并行执行其他任务
中断开销频繁进出中断、压栈跳转整批完成才中断一次
  • 单个 DMA 通道内部 5 环节:请求逻辑 → 地址生成(源/目自动递增)→ 宽度控制(8/16/32 位)→ 传输计数(减到 0 结束)→ 优先级仲裁(4 级)。
  • 四大优势:解放 CPU、提高吞吐、降低中断频率、适配高速外设。
  • STM32F103 特点:DMA1 有 7 通道、DMA2 有 5 通道;外设请求映射固定(使用前查表);支持外设↔内存、内存↔内存三方向;循环缓冲;HT/TC/错误共用 1 个中断。
  • 局限:单次上限 65536 个数据单元;通道固定不可随意改接;与 CPU 竞争总线带宽(并非「免费」);源/目宽度须与外设对齐。
  • SDIO 与 DMA:SD 卡数据吞吐量大,用 DMA 提速;SDIO 使用DMA2 通道 4。

2.3 FSMC 与 SDIO 辨析

名称性质说明
Flash存储部件非易失,存程序与常量,ZET6 内置 512 KB;读快,写前须擦除
SRAM存储部件易失,存变量/堆栈/堆,ZET6 内置 64 KB;读写最快、无需刷新
FSMC控制器(接口)把外部 SRAM/NOR/NAND Flash 映射进地址空间(仅 xC/xD/xE 高密度型号),可变静态存储控制器
SDIO接口按 SD 协议外接 SD 卡,数据量大时常配 DMA2 通道 4

一句话:Flash / SRAM 是「放数据的地方」,FSMC / SDIO 是「往外扩的通道」。

2.4 STM32F103ZET6 内部架构(十大组成)

  1. ARM Cortex-M3 内核:少引脚、低功耗、计算表现好、中断响应快、代码效率高。
  2. 嵌入式 Flash / SRAM:最多 512 KB Flash、64 KB SRAM(CPU 速度读写)。
  3. NVIC:43 个可屏蔽中断通道,16 个可编程优先级。
  4. EXTI(外部中断/事件控制器):19 条边沿探测器,可独立配置/屏蔽;多达 112 个 GPIO 连到 16 个外部中断线。
  5. 时钟和启动:复位时内部 8 MHz 晶振作 CPU 时钟;可选外部 4~16 MHz 时钟(受监视);Boot 引脚选择启动源。
  6. Boot 模式:复位时 Boot 引脚在 Flash / 系统存储器 / SRAM 三选项间选择。
  7. 电源供电:
    • VDD(2.0~3.6 V):I/O 与内部调压器主电源;
    • VDDA/VSSA(2.0~3.6 V):模拟电压,供 ADC、复位、RC、PLL,须相应接 VSS/VDD;
    • VBAT(1.8~3.6 V):VDD 无效时为 RTC、32 kHz 晶振、备份寄存器供电。
  8. 电源管理:完整上电复位(POR)/ 掉电复位(PDR)电路;嵌入式可编程电压探测器(PVD)监测 VDD,越限产生中断。
  9. 电压调节:调压器三模式——主模式(MR,运行)、低功耗(LPR,停止模式)、掉电(待机模式,核心断电)。
  10. 低功耗模式(见下)。

电源符号速记:VCC(电路电压, bipolar 集电极)/ VDD(器件电压,MOS 漏极)/ VSS(公共地)/ VEE(负电源)/ VBAT(备份电池)。

三种低功耗模式:

模式工作状态唤醒源断电内容
休眠仅 CPU 停,外设全运行任意中断/事件无
停止1.8 V 区时钟停,PLL/HSI/HSE 禁能外部中断线/PVD/TRCSRAM 与寄存器保留
待机调压器关,1.8 V 区断电NRST/IWDG/WKUP 上升沿/TRCSRAM 与寄存器丢失(仅备份+待机电路保留)

三、STM32F103ZET6 的存储器映像

  • 程序、数据、寄存器、I/O 统一编址在4 GB线性地址空间,分成8 个主要块,每块 512 MB(与第 2 章 Cortex-M3 的 4GB 映射一致)。
  • 数据字节以小端格式存放(最低地址字节为最低有效字节)。
  • 每个外设的相关寄存器地址均可用「首地址 + 偏移量」定位绝对地址(课本表 3-1)。

片上存储:

存储容量起始地址访问方式
SRAM64 KB0x20000000字节/半字(16)/字(32),且位于位带区
嵌入式 Flash512 KB0x08000000主存储块 256×2 KB 页 + 信息块

Flash 组织与接口:主存储块容量 64K×64 位,分 256 个 2 KB 页;闪存接口带预取缓冲器(每字 2×64 位),复位后自动打开——因缓冲大小与闪存带宽相同,一次闪存操作即更新整缓冲,使 CPU 可跑更高主频;DCode 上的数据访问优先于取指。

选择字节(Option Bytes)(地址 0x1FFFF800 起):

位名称含义
16WDG_SW0=软件看门狗;1=硬件看门狗
17nRST_STOP0=进 STOP 模式产生复位;1=不产生
18nRST_STDBY0=进待机产生复位;1=不产生

写保护(WRP0~WRP3,共 32 位):bit0~bit30 每 1 位控制 2 个 Flash 页(共 62 页可分 2 页单位单独配);bit31 统一控制其余页;0=保护,1=不保护,默认全 1(全不保护)。Data0/Data1 供用户使用。


四、STM32F103ZET6 的时钟结构

4.1 五个时钟源

时钟源类型/频率精度主要用途
HSI高速内部,~8 MHz(内部 RC)较低(受温度/电压影响)系统时钟备份源;PLL 输入
HSE高速外部,4~16 MHz(晶振/时钟)高(取决于晶振)主时钟源,直接或经 PLL 驱动 SYSCLK;亦可为 RTC 提供时钟
PLL锁相环,HSI/HSE 倍频至 72 MHz取决于输入提供高性能核心时钟
LSI低速内部,~40 kHz(RC)低独立看门狗、低功耗唤醒(AWU)
LSE低速外部,32.768 kHz 晶振高RTC 专用,保证日历计时准确

汽车比喻:系统时钟如发动机转速(越高性能越强但功耗越大);RTC 如行车电脑时钟/里程表(无论发动机熄火还是运转都默默计时,VBAT 维持则不丢)。

4.2 系统时钟与时钟树

  • 系统恢复后默认HSI作系统时钟;时钟源被直接或经 PLL 用作 SYSCLK 时不能被停止;只有目标时钟源就绪后,才可切换。
  • PLL 配置:激活前须设好输入源与倍频因子,激活后参数不可改;用 USB 时必须让 PLL 输出 48 或 72 MHz 以供给 48 MHz 的 USBCLK。
  • MCO 时钟输出:可输出 SYSCLK、HSI、HSE、PLL/2 到外部引脚(对应 GPIO 须配为复用功能)。
  • 分级分频:用户通过预分频器配置 AHB、高速 APB2、低速 APB1 频率;不用时可独立关闭任一时钟源以优化功耗。

4.3 RTC 时钟与三种低速 RTC 时钟源

RTC 时钟由 RCC_BDCR 的RTCSEL[1:0]选择(除非备份域改变,否则不可变):

源来源精度供电依赖核心应用
LSE外部 32.768 kHz高(±20 ppm)VBAT(备份电池)高精度日历、长期计时
LSI内部 ~40 kHz RC低(±5%)VDD看门狗、低精度临时计时
HSE/128外部高速分频取决于 HSEVDD非低功耗场景

供电域比喻:VDD 是主供电(下班即停);VBAT 是备份电池(关键部门独立发电机);备份域是只含 RTC 核心计数器/闹钟/少量备份寄存器的关键区域。LSE 最可靠——它在备份域内,VBAT 维持即可独立于 VDD 运行;LSI 依赖 VDD,断电时状态不能保证;HSE/128 需保持 HSE 运行,功耗高、失去 RTC 低功耗意义。

4.4 派生时钟细节

  • SysTick:HCLK 经 AHB 8 分频作外部时钟,或选 Cortex 内核 HCLK。
  • 定时器时钟:若所在 APB 预分频系数 = 1,则定时器时钟 = APB 总线频率;否则 = APB 频率 × 2。
  • ADC 时钟:APB2 经 2/4/6/8 分频获得。
  • FCLK:Cortex-M3 的自由运行时钟。

五、引脚与启动配置

5.1 启动模式(BOOT0 / BOOT1)

系统复位后在 SYSCLK 第 4 个上升沿锁存 Boot 引脚值,三种启动模式:

BOOT1BOOT0启动模式说明
X0主闪存存储器正常模式,运行用户程序(0x08000000 映射到 0x00000000)
01系统存储器出厂 ISP Bootloader(0x1FFFF000 映射)
11内置 SRAM调试用,掉电不保存,须重映射向量表

从主闪存 / 系统存储器启动时,原地址与映射地址均可访问;从 SRAM 启动只能在 0x20000000 访问,且须在初始化时用 NVIC 异常表偏移寄存器把向量表重映射到 SRAM。
退出待机模式时 Boot 引脚值重新锁存,待机期间须保持所需配置。

5.2 三类片内存储器辨析

存储器易失性主要用途启动角色
主闪存非易失用户程序代码与常量BOOT=00 启动区
系统存储器非易失出厂 ISP BootloaderBOOT=01 启动区
内置 SRAM易失变量/堆栈/工作区BOOT=11 启动区

5.3 Flash 与 SRAM 存储原理区别

维度Flash(浮栅 MOSFET)SRAM(6 管 CMOS 触发器)
原理栅极陷阱电荷表示 0/1双稳态电路锁存 0/1
写操作须整页/扇区擦除再编程,较慢字节级直接读写,无需擦除
读速度较快极快(与 CPU 同速)
擦写寿命有限(约 1 万~10 万次)无限
成本/容量单位成本低、容量大单位成本高、容量小

六、最小系统设计

STM32F103ZET6 片内已集成电源管理、8 MHz 高速内部 RC、40 kHz 低速内部 RC 等,外部只需7 个无源器件即可工作。常用最小系统模块:

  • 复位电路:NRST 引脚内含约 40 kΩ 不可断开上拉;外部再接上拉电阻 + 按键 + 电容,按键按下使 NRST 变 0 实现手动复位。
  • 晶体振荡电路:8 MHz 晶振 X1(HSE)+ 32.768 kHz 晶振 X2(LSE),负载电容须贴近引脚以减失真、缩短起振。
  • 启动设置电路:BOOT1/BOOT0 各经 10 kΩ 接地 → 从主闪存启动。
  • JTAG 接口:4 线(TMS/TCK/TDI/TDO = 模式选择/时钟/数据入/数据出),用于 JLink 下载与在线仿真(IEEE 1149.1)。
  • USB 转 TTL(CH340G):从 USB 取 +5 V,实现串口下载,可切换 USB/UART。
  • 独立按键电路:外部中断检测 + 待机唤醒。
  • AD 采集电路:光敏电阻经开关接到 PA1,由 ADC 采集阻值。
  • 流水灯电路 / 电源电路:基本外设与供电。

源与器件:无源器件指电阻、电容等不需电源驱动的元件;有源器件如三极管,需供电才能工作。


本章小结与思考题

核心知识地图:

  1. STM32F1 简介(ST 背景、五大系列、命名规则、封装);
  2. 系统架构(4 条总线 + 总线矩阵 + AHB/APB 桥)、DMA(4 步工作流与优势)、FSMC/SDIO 辨析、ZET6 内部十大组成(含电源符号与三种低功耗模式);
  3. 存储器映像(4 GB/8 块、SRAM 64 KB、Flash 512 KB、预取缓冲、选择字节与写保护);
  4. 时钟结构(HSI/HSE/LSI/LSE/PLL 五源、系统时钟切换、RTC 三源与 RTCSEL、派生时钟);
  5. 引脚与启动(BOOT0/BOOT1 三模式、三类存储器辨析、Flash vs SRAM 原理);
  6. 最小系统(复位/晶振/启动/JTAG/USB 转 TTL/按键/AD/流水灯)。

本文由课程课件与讲稿整理,供学习交流使用。如需转载或用于教学,请注明出处。欢迎在评论区交流讨论。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 15:15:54

AI编程工具协同新范式:Herdr多路复用消息总线实战解析

先坦白一个现象:我身边越来越多做AI编程的人,电脑上同时装着Claude Code、Cline、Gemini CLI、Codex CLI,还有各种IDE插件,像Cline、Continue、Copilot这种能装的都装。表面上看是"工具多样性",实际用起来却…

作者头像 李华
网站建设 2026/10/2 15:15:06

Win10家庭版安装CCS7.3被Defender拦截?排除项白名单方案一次搞定

我到现在都还记得第一次在win10家庭版上双击ccs_setup_7.3.0.00019.exe时的情形:图标转了两圈,然后就没然后了。任务管理器里看不到安装进程,安装日志也没生成,折腾了半小时,最后去Windows安全中心的“保护历史记录”里…

作者头像 李华
网站建设 2026/10/2 15:13:41

基于Univer实现受控在线表格:单元格保护与可编辑区域实战

提到开源在线表格,最近绕不开的就是 Univer。它不是一个简单的“网页版 Excel”组件,而是一套用 TypeScript 写出来的在线协作文档引擎,表格、文档、幻灯片都能做。我关注它的原因很直接:有个内部系统改造需要“业务方自己定义模板…

作者头像 李华
网站建设 2026/10/2 15:12:04

金融大模型安全防护体系:安全围栏、内容风控与安全检测实战解析

1. 金融大模型安全市场到底在解决什么问题金融行业对大模型的态度,这两年发生了非常微妙的变化。2023年大家还在观望“能不能用”,2024年已经变成“怎么安全地用”。我接触过不少银行、券商、保险的科技部门,他们手里几乎都跑着至少一个PoC级…

作者头像 李华
网站建设 2026/10/2 15:11:52

嵌入式Linux第一课:IMX6ULL开发板的文件目录与命令

拿到IMX6ULL开发板的第一天,插上电源,用串口线连上电脑,屏幕上是黑底白字的登录提示符。很多人的嵌入式Linux之路就是这么开始的:没有桌面、没有鼠标,面对的是一个只有命令行的小世界。这套系列文章就是陪着那些在串口…

作者头像 李华