一、中断概念
二、EXTI简介
相同的Pin不能同时触发中断:比如PA0和PB0不能同时使用;
三、STM32中断
中断向量表:
程序中中断函数的地址是由编译器来分配的,是不固定的。但中断的跳转,由于硬件的限制,只能跳转到固定的地址执行程序。所以为了能让硬件跳转到一个不固定的中断函数中,就需要在内存中定义一个地址的列表,这个列表地址是固定的。中断发生后,就跳转到这个固定的位置,在这个位置由编译器再加上一条跳转到中断函数的代码,这样中断跳转就可以跳到任意位置。
四、NVIC基本结构
NVIC:嵌套中断向量控制器。用来统一分配中断优先级和管理中断。NVIC会根据每个中断的优先级分配中断的先后顺序然后交给到CPU处理。
NVIC优先级分组
NVIC的中断优先级由优先级寄存器的4位(0~15)决定,这4为可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级;
抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按照中断号排队;
数字越小,等级越高。
五、EXTI基本结构
AFIO中断引脚选择:可以在前面GPIO外设的16个引脚里选择其中一个连接到后面的EXTI通道里;
本来20路输出应该有20路中断的输出,但为了节省资源,将外部中断的9~5和15~10分到一个通道中了,也就是说外部中断的9~5和15~10会触发同一个中断函数,在编程中,我们在这两个中断函数中根据具体标志来区分到底是哪个中断进来的即可;
其他外设指的是事件响应触发其他外设等。