26.3.22 ZD-EP63 [中断] 通过中断来控制LED
1 中断的使用
1.1 中断流程
我们先来看看我们最开始讲中断时的一个中断流程图:
我们是从后往前讲的也就是线讲的NVIC再到EXTI,现在我们在正式配置中断时就要从前往后:
其中外设中断不在我们本章讲解范围,后续使用到时会说。
可以看到事实上和我们的外部中断简图是一致的,也就是先设置GPIO的输入模式,再设置EXTI和IO的映射关系将信号传导到EXTI,再经由EXTI传导到NVIC设置中断分组及优先级,并使能中断,最后在CPU处理中断。
关于为什么要经由这么多寄存器层层传导,刷到一个视频说的是对于一个抽象系统,每一层只用负责处理本层接受到的信号并输出对应信号,尽管这里是硬件的具象系统,我认为道理还是一样的,每个寄存器只负责处理自己收到的信号并输出自己相应的信号就行,省去了单个寄存器的过多配置,提高传导效率。
1.2 中断配置
那么我们就能理清我们最终要配置的东西:
首先因为我们这里配置的EXTI线是连接在GPIO上的,所以我们首先还是使能GPIO的时钟并配置GPIO的输入模式,之后使能AFIO/SYSCFG的时钟并设置EXTI与IO的对应关系,再在EXTI设置屏