中断的学习
结合视频内容,根据数据手册,我对stm32的中断的使用做了一些总结与理解。
1.中断的定义
中断,在单片机中占有非常重要的地位。代码默认地从上向下执行,遇到条件或者其他语句,会按照指定的地方跳转。而在单片机执行代码的过程中,难免会有一些突发的情况需要处理,这样就会打断当前的代码,待处理完突发情况之后,程序会回到被打断的地方继续执行。
2.关于STM32的中断
几乎任何一款单片机都会有中断。以STM32F103VE来说,这是一款基于Cortex-M3内核的芯片,在CM4内核中有关于中断的一些管理,在STM32芯片中也有关于中断的一些管理。因此可以总结出一条规律,STM32的中断是有两层控制器分别控制的,如果你想使用中断,那么必须同时配置内核和芯片。
从内核架构图可以看到,NVIC控制器来管理内核中的中断。内核对中断的控制主要表现为几个方面:中断地址、中断优先级、中断使能
1、中断地址
程序的执行无非就是寻找地址,中断也是程序的一部分,而它的地址却是由内核来确定的,而且是不允许修改的。NVIC控制器可以帮我们找到中断的地址
2、中断优先级
优先级在中断里是一个非常重要的概念,如果同时产生多个中断,CPU会根据他们的优先级来选择这些中断的处理顺序。在CM4内核中,优先级用整数来表示,这个数越小代表级别越高。
3.STM32外部中断
外部中断只是中断的一种,一般由IO口的电平信号变化而引起**。**STM32有23个用于产生事件/中断请求的边沿检测器。每根输入线都可以单独配置,可以选择类型(中断或事件)和相应的触发事件(上升沿触发、下降沿触发、边沿触发)。每根线还可以单独配置。
从上图可以看出外部中断的配置方法:
1)打开对应的APB时钟
2)选择外部中断输入线
3)设置中断的触发方式
4)选择工作模式(外部中断、事件)
线
3)设置中断的触发方式
4)选择工作模式(外部中断、事件)
5)使能