STM32中断

STM32中断

中断基本概念

中断指主程序运行过程中,某个特定事件或条件发生时,CPU会暂停当前程序执行,去处理中断事件,当中断事件处理完毕后,CPU恢复原来的程序

中断优先级

在STM32中有各种各样的中断,这些中断可能会同时发生,这时候就需要根据预设的优先级来确定哪个中断优先处理

中断嵌套

当处理中断过程中,如果有更高优先级的中断发生,CPU会暂停当前中断,去处理新的更优先级的中断,处理完后再处理当前中断的中断,这种现象就叫中断嵌套

STM32中断

STM32有68个可屏蔽中断通道(F1系列最多的中断数量,实际以手册为准,如:F103C8只有60个),包含EXTI, TIM, ADC, USART, SPI, I2C, RTC等多个外设。这些中断使用NVIC统一管理。每个中断通道有16个可编程的优先级,可以对优先级分组,进一步设置抢占优先级和响应优先级

NVIC基本结构

NVIC(Nested Vectored Interrupt Controller),嵌套向量中断控制器,负责中断的统一管理和优先级分配, 是一个内核外设,帮助CPU处理大量中断请求。NVIC作为中断管理单元,承担了中断优先级的划分和管理任务

NVIC中断优先级分组

NVIC有优先级配置寄存器,寄存器宽度为8位(bit)(理论上可以配置优先级0-255), 但是STM32只使用了其中的高四位,因为大量优先级会增加NVIC的复杂度,从而增加功耗降低速度。使用4位最多可以配置0-16个中断优先级

这4位在进行切分,可切分为高n位的抢占优先级和低4-n位的响应优先级,两个优先级都是数值越小,优先级越高

其中,抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,但无法中断嵌套。如果抢占优先级和响应优先级都一样,则按中断号排队(中断向量表图在本节首)

EXTI外部中断

EXTI外部中断用于监控和响应GPIO端口的电平变化,当指定的GPIO口发生电平变化时,EXTI会立即项NVIC发出中断请求。EXTI的基本功能就是通过监控引脚电平的变化,触发中断并中断CPU的主程序,执行特定的中断处理程序

EXTI四种触发方式:

1、上升沿触发:GPIO电平0->1,产生中断请求

2、下降沿触发:GPIO电平1->0, 产生中断请求

3、双边沿触发:GPIO电平发生上升沿或下降沿时,都会触发中断请求

4、软件触发:可以通过软件手动触发一个中断,而不依赖引脚电平的变化

EXTI支持几乎所有的GPIO口,但是同一个引脚不能同时用于多个中断源例如:PA0,PB0,PC0,虽然是不同的端口,但是引脚编号相同,所以不能同时作为中断引脚,而PA0, PB1,引脚编号不同,可以同时用作中断源。

STM32的EXTI支持16个GPIO引脚, 以及4个特定的外设信号,分别为:

PVD(电源电压检测)输出

RTC(实时时钟)闹钟

USB唤醒信号

以太网唤醒信号

外部中断的触发响应方式:

1、中断响应:CPU暂停当前程序并执行中断程序

2、事件响应:不会触发中断,触发其他外设的操作,不一定需要中断CPU程序

基本结构

EXTI只有16个GPIO通道,但是每组GPIO外设都有16个引脚,所以EXTI的16个通道无法同时满足所有GPIO引脚,为了解决这个问题,STM32引入了AFIO中断引脚选择模块,可以在每组GPIO的16个引脚中选择一个通过AFIO在接入EXTI通道

因此,EXTI的输入信号由16个GPIO通道,加上4个特定外设通道(PVD(电源电压检测)、RTC(实时时钟)、USB唤醒以及以太网唤醒信号),一共20个输入信号。

AFIO作用

AFIO模块的核心作用是为每个GPIO外设引脚选择一个特定的中断通道,相同的引脚(Pin)不能同时触发多个中断。

STM32中AFIO主要完成两个任务:1、复用功能引脚重映射、2、中断引脚选择

中断与事件响应

EXTI分为两种输出:

1、接入NVIC触发中断:中断响应

需要注意的是,其中一部分(如外部中断5-9号和10-15号)可能会触发相同中断,这些中断被STM32整合为共用一个NVIC通道,在使用时,需要根据标志位来区分哪个具体的中断请求被触发。

2、接入其他外设,触发外设操作:事件响应

相关推荐
HQB20269 小时前
EG1198|屹晶微电子 120V 内置 MOS 异步降压 DC‑DC(高性价比)
嵌入式硬件·硬件工程
果壳science10 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造
南山电子nscn10 小时前
中科芯CETC汽车电池管理系统BMS进口芯片国产型号替代指南
单片机·汽车·bms
沉淀的.晴天11 小时前
can总线
stm32
桀人11 小时前
认识AT24C02
stm32·单片机·嵌入式硬件
国科安芯12 小时前
星间激光通信终端CANFD控制网络的时延确定性与辐射可靠性
网络·嵌入式硬件·信息与通信·canfd·低轨卫星·商业航天·抗辐射
一直C13 小时前
嵌入式 Linux 驱动开发学习笔记:内核定时器、platform 总线与 I²C 驱动
linux·驱动开发·嵌入式硬件·学习·imx6ull
传感器与混合集成电路13 小时前
150MHz主频、8路DAC与6路PWM:JLH221360伺服控制SIP解析
嵌入式硬件
comyccccc13 小时前
STM32PID控制板设计全解析学习笔记
单片机·嵌入式硬件
碧海银沙音频科技研究院14 小时前
实现炬芯ATS308X的usb cdc 串口IAP 固件升级功能实现
人工智能·嵌入式硬件·深度学习·算法