一、中断概念
简单说就是单片机在处理某件事的过程中出现了特定的中断条件,导致单片机停止当前程序,而去处理中断程序,处理好后再回到当前程序。
中断有优先级之分,也可以有中断嵌套的情况,这是为了处理紧急情况而进入新的中断优先去处理紧急的程序,后面再细讲。
stm32单片机中断源包括EXIT,TIM,ADC,USART,SPI,IIC,RTC等多个外设,由NVIC统一管理,所有中断进入NVIC划分优先级,排个顺序,然后再给CPU一个接一个执行。
二、NVIC优先级划分
响应优先级:在当前处理任务屁股后面接着,忽略之前排队的程序。
抢占优先级:在当前程序还在处理的过程中进入中断,打断当前程序,优先处理中断程序,中断嵌套的由来。
三、EXIT外部中断
单片机读取引脚电平触发中断,但是相同pin脚不能同时触发中断,例如PA1与PB1不能同时触发中断。一共16个通道。可以选择上升沿检测或下降沿检测。AFIO主要用于引脚复用功能重定义,中断引脚选择。
图片来源江协科技
选择GPIO的模式是要选择输入模式,选上拉下拉或浮空输入。
四、应用
外部有突发的任务需要单片机执行的情况,比如机械式按键,霍尔传感器,红外传感器等。
功能:除了最基本的定时中断以外,还有输入捕获,输出比较的功能(PWM会用到)
TIM1和8:高级定时器、TIM2345:通用定时器,在APB1总线(细节去看手册)
预分频器,重装载值的介绍:stm32内部主频是72MHz,预分频器PSC相当于预先将72MHz进行分割,分割成n份,实际分频系数=PSC+1。自动重装值相当于人为设定的一个阈值,当CNT计数器达到重装载值arr时产生中断信号并清零计数器。实际时间=72M/((arr+1)*(psc+1)
五、具体代码我会另外写一个文章