一、EXIT简介
①外部中断:信号源来自于外设的输入,当有外设输入且达到触发条件时(如上升沿、下降沿、双边沿等),就会进行外部中断。
②注:相同的PIN口不能同时促发中断
二、中断系统
①当发生中断时,CPU会停止当前的工作转而执行中断程序的内容。(比如现在正在看书,但是一个电话突然打来,这个电话就相当于中断促发,转而去执行接电话的内容)
②中断优先级:0代表优先级最高,依次向下排序,优先级越高,当促发中断条件后,优先执行。
③抢占优先级:当优先级更高的中断来时,即使某些中断正在运行,也将被暂时中断转而执行更高的优先级
④响应优先级:当几个通道同时来时,如果抢占优先级均相同,则哪个响应优先级高先执行哪个中断程序
三、NVIC的基本结构
①NVIC:嵌套中断向量控制器,在STM32中,用来统一分配中断优先级和管理中断的。
②NVIC是一个内核外设,是CPU的小助手。CPU一次只能处理一个中断,这个NVIC将优先级最高的中断告知CPU,相当于皇帝(CPU)选妃(各路中断),由宦官(NVIC)选出最美最有才艺的女子
③NVIC有很多输入口,你有多少个中断线路,都可以接过来,比如这里可以接到EXTI、TIM、ADC、USART等等,这里线上画了个斜杠,上面写个n,这个意思是一个外设可能会同时占用多个中断通道,所以这里有n条线。然后NVIC只有一个输出口,NVIC根据每个中断的优先级分配中断的先后顺序,之后,通过右边这一个输出口就告诉CPU,你该处理哪个中断。对于中断先后顺序分配的任务,CPU不需要知道(总结:皇帝不需要知道底下女子是怎么被选出来的,一切交给宦官)
四、NVIC的分组
五、外部中断基本结构体
①AFIO相当于数据选择器(此外还有一个功能引脚的复用功能的选择和重定义),前面有说,相同的PIN不能同时促发,所以通过AFIO选出当前哪个有效
②外部中断的9~5会触发同一个中断函数,15~10也会触发同一个中断函数,在编程的时候,我们在这两个中断函数里,需要再根据标志位来区分到底是哪个中断进来的
六、EXTI框图
①当触发条件满足后,经过或门可进入到事件触发产生脉冲或是进入NVIC中断
②请求挂起寄存器:可从外设读取是哪个通道产生的触发中断,当寄存器为1时与中断屏蔽寄存器配合产生进入NVIC,为0时中断被挂起
③中断屏蔽寄存器:相当于中断是否使用的开关,1为使用,0为不使用