STM32入门教程-2023版【5-1】STM32中断

关注 + 点赞 不错过精彩内容

STM32入门教程-2023版【5-1】STM32中断_第1张图片

大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 

三、STM32中断

(1)STM32中断介绍

STM32入门教程-2023版【5-1】STM32中断_第2张图片

中断通道,就是中断源的意思,这68个可屏蔽中断通道,是STM32F1系列中最多的中断数量,其他不同的型号,可能没有这么多中断,所以这个数量看看就行,具体以对应型号的数据手册为准

STM32的中断是非常多的STM32的中断包含EXTI外部中断、TIM定时器、ADC模数转换器、USART串口、SPI通信、12C通信、RTC实时时钟等多个外设,几乎所有的模块都能申请中断

STm32使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,还可对优先级进行分组,进一步设置抢占优先级和响应优先级。这个NVIC就是STM32中用来管理中断、分配优先级的,NVIC的中断优先级总共有16个等级,还可以设置抢占优先级和响应优先级,这个是非常灵活的

(2)中断资源

下面是STM32里的中断资源

STM32入门教程-2023版【5-1】STM32中断_第3张图片

STM32入门教程-2023版【5-1】STM32中断_第4张图片

最上面灰色的是内核中断(我们一般不用,了解即可)

比如第一个复位中断,当产生复位事件时,程序就会自动执行复位中断函数,也就是复位后程序开始执行的位置。其次是NMI不可屏蔽中断、硬件失效、存储管理、总线错误、错误应用等等,这些都是内核里面的,一般这些中断都比较高深,看上去也挺难理解的,一般用不到这些中断所以了解一下即可

下面不是灰色的部分就是stm32外设的中断了

比如第一个窗口看门狗,这个是用来监测程序运行状态的中断,比如你程序卡死了,没有及时喂狗,窗口看门狗就会申请中断,让你的程序跳到窗口看门狗的中断程序里,那你在中断程序里就可以进行一些错误检查,看看是什么出问题了。

然后是PVD电源电压监测,如果你的供电电压不足,PVD电路就会申请中断,那在中断里就知道,现在供电不足,是不是电池没电了,要赶紧保存一下重要数据。

下面的这些也是类似的功能,外设电路检测到有什么异常或事件,需要提示一下CPU的时候,它就可以申请中断,让程序调到对应的中断函数里运行一次,用来处理这个异常或事件。

那下面这个EXTI0到EXTI4和下面的EXTI9_5和EXT15_10,就是我们本节要学的外部中断对应的中断资源

表中最右边是每个中断的地址,为什么有这个地址呢?

每个中断都有一个地址用于指定中断处理程序的入口点,这个地址是由编译器分配的,是不固定的。当系统发生特定的中断事件时,硬件需要跳转到一个确定的地址来执行对应的中断处理程序。然而,由于中断处理程序的地址是不固定的,为了实现这个跳转,我们需要在内存中定义一个固定的地址列表,即中断向量表。中断向量表保存了每个中断事件对应的中断处理程序地址。当中断事件发生时,硬件会根据中断号(类似于索引)从中断向量表中查找对应的地址,然后跳转到该地址执行中断处理程序。这样,系统可以在发生中断事件时正确执行对应的中断处理程序。

这个中断地址的列表,就叫中断向量表。相当于中断跳转的一个跳板,不过我们用c编程,是不需要管这个中断向量表的,因为编译器都帮我们做好了。

作 者 :硬核王同学

------- END ------

关注公众号回复“加群”按规则加入技术交流群  回复“1024”查看更多内容

STM32入门教程-2023版【5-1】STM32中断_第5张图片

你可能感兴趣的:(stm32,单片机,嵌入式硬件)