中断系统
中断是指的在主程序执行的过程中,触发了某种条件,使得主程序暂停当前的程序,转而去执行中断程序,多个中断出现需分清优先级,在中断中可以嵌套多个不同的中断,但过多的中断会导致主程序卡死。
STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,属性编号越小,证明其优先度越高
NVIC基本结构
NVLC相当于一个中转站,将stm32的中断先进入NVLC,然后根据中断的优先级让给CPU执行不同的指令。
NVIC的中断优先级由优先级寄存器的4位(0~15)决定,这4位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级 抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队
EXTI外部中断
EXTI外部中断通过监测GPIO口的电平,当电平信号发生变化的时候,EXTI向NVIC发送中断请求,NVIC再向CPU执行中断程序,让CPU响应EXTI的中断信号。
GPIO口通过给AFIO进行引脚选择,所以不同的Pin口不能够同时启动外部中断,在STM32中,AFIO主要完成两个任务:复用功能引脚重映射、中断引脚选择。