# STM32的中断体系与FSMC控制LCD——独立导读

一、课程概览

本课程为"体系课"系列第三季第七部分,聚焦STM32微控制器的两大核心外设:**中断系统**与**FSMC接口**。内容分为三个阶段递进展开——先从NVIC寄存器级别理解中断优先级机制,再深入外部中断的硬件配置与软件移植,最后过渡到FSMC驱动LCD的完整工程实践。课程目录共收录13个模块,总时长约6小时,适合已掌握STM32基础外设、希望深入理解中断嵌套逻辑与高速并行接口开发的嵌入式开发者。

二、知识脉络

第一阶段:中断控制器底层解析(3.7.1–3.7.3)

本阶段围绕NVIC(Nested Vectored Interrupt Controller)展开。3.7.1从初始代码切入,讲解ISR(中断服务程序)的调用约定与堆栈管理;3.7.2梳理STM32中断类型分类——不可屏蔽中断、系统异常、外部中断的层级关系;3.7.3通过标准库源码分析NVIC结构体字段含义,重点解读`IPR`寄存器组如何配置抢占优先级与子优先级。建议读者对照数据手册第12章,亲手编写一个优先级翻转测试程序验证理论。

第二阶段:外部中断实战(3.7.4–3.7.6)

3.7.4解析EXTI(External Interrupt)模块的GPIO复用逻辑,阐明中断线映射规则;3.7.5演示中断程序的模块化移植技巧,包括从寄存器层到标准库层的适配策略;3.7.6聚焦调试方法——利用ITM跟踪端口捕捉中断触发时序、判断竞争条件与毛刺干扰。此阶段强调"硬件配置与软件响应的协同设计",建议结合示波器观察按键消抖效果。

第三阶段:FSMC驱动LCD(3.7.7–3.7.13)

进入本部分,课程转向并行接口开发。3.7.7介绍FSMC控制器的内存映射机制与时序参数;3.7.8对比FSMC与FMC的区别,明确静态存储接口的适用场景;3.7.9解析LCD驱动IC的初始化序列与RAM访问模式;后续模块展示如何封装底层读写函数、实现刷屏优化与双缓冲机制。建议准备一块ST7735或ILI9341驱动的实验板,跟随步骤完成从灰屏到彩图的完整点亮过程。

三、学习建议

1. **动手优先**:中断与FSMC均为"纸上得来终觉浅"的主题,务必在实验板上复现每个配置步骤。
2. **对照文档**:课程所述标准库函数均可在`stm32f10x_nvic.h`与`stm32f10x_fsmc.h`中找到原型,建议边读代码边查手册。
3. **循序渐进**:建议先完成前6个模块(中断体系)再进入FSMC部分,两者虽独立但思维模式相近——均需精准掌控时序与状态机。

掌握本节内容后,读者将具备自主设计高响应实时系统与驱动各类并行显示屏的能力,为后续DMA传输、图像算法移植等进阶主题奠定基础。

课程目录

1 3.7.1.STM32的NVIC和起始代码中的ISR (24:49)
2 3.7.2.STM32的外部中断 (23:02)
3 3.7.3.标准库中NVIC模块分析 (26:54)
4 3.7.4.标准库中外部中断模块分析 (21:44)
5 3.7.5.外部中断程序的移植和调试1 (24:15)
6 3.7.6.外部中断程序的移植和调试2 (31:35)
7 3.7.7.外部中断程序的移植和调试3 (24:17)
8 3.7.8.什么是FSMC (22:15)
9 3.7.9.FSMC如何操控LCD (26:24)
10 3.7.10.FSMC控制LCD的细节 (33:36)
11 3.7.11.PZ6806L开发板上FSMC接口LCD驱动移 (29:06)
12 3.7.12.PZ6806L开发板上FSMC接口LCD驱动移 (28:05)
13 3.7.13.PZ6806L开发板上FSMC接口LCD驱动移 (27:10)