第九章 STM32中断应用
第九章 STM32中断应用
为巽一、中断概述
中断时出现某些意外需要主机干预,机器能自动停止运行的程序,转入新的处理的程序,处理完之后返回程序被暂停的程序,继续运行。
异常就是中断,中断就是异常。
异常分为:系统异常和外部中断。
二、NVIC介绍
NVIC是嵌套向量中断控制器,控制芯片中断的功能。
一般来说,使用ISER(使能中断)、ICER(失能中断)和IP(设置中断优先级)寄存器。
(不常用)
三、优先级
中断优先级寄存器NVIC_IPRx,用来配置外部中断的优先级。如果抢占优先级相同,九比较子优先级,如果都相同,比较硬件中断编号,编号越小,优先级越高
四、优先级分组
优先级分组由外设SCB的应用程序中断和复位控制寄存器AIRCR的PRIGROUP[10:8]决定,主优先级=抢占优先级
1 | /** |
五、中断编程
配置中断一般使用三个:
1、使用 HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) 函数配置中断优先级分组。一般默认是 NVIC_PRIORITYGROUP_4 分组 4。
2、使用 HAL_NVIC_SetPriority (IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) 函数配置具体外设中断通道的抢占优先级和子优先级。
3、使用 HAL_NVIC_EnableIRQ 函数使能中断请求。