EXTI外部中断
2026/7/14 18:26:18 网站建设 项目流程

中断系统

中断:

在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CUP暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回到原来被暂停的位置继续运行(图1);

图1

中断优先级:

当有多个中断源同时申请中断时CUP会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源;

中断嵌套:

当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CUP再次暂停当前中断程序,转而去处理新的中断程序,处理后依次进行返回(图2);

图2

stm32中的中断

包含68个可屏蔽中断通道,包含EXTI(外部中断),TIM(定时器),ADC(模数转换器),USART(通用同步异步收发器),SPI(串行外设接口),I2C(通信总线),RTC(实时时钟)等多个外设;

使用NVIC进行统一管理中断,每个中断通道都拥有16个可编程的优先级分组,进一步设置抢占优先级和响应优先级;

NVIC的基本结构

中断的分配是通过NVIC进行的;

NVIC优先级分组

NVIC(嵌套向量中断控制器)的优先级分组由优先级寄存器的低4位(0~15)决定(数字越小优先级越高),这4位优先级可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级;

抢占优先级高的可以申请中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队;

EXTI简介

EXTI:外部中断;

EXTI可以检测指定GPIO口的电平信号,当指定的GPIO口产生电平变化时,EXTI将立刻向NVIC

发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序;

支持的触发方式:上升沿/下降沿/双边沿/软件触发;

支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断;

通道数:16个GPIO_Pin,外加PVD输出,RTC时钟,USB唤醒,以太网唤醒;

触发方式:中断响应/事件响应(不通过CPU);

EXTI基本结构

EXTI内部结构

图中NVIC代表的是中断响应;

图中脉冲发生器代表的是事件响应;

或门:只要有1个1就输出1,全为0输出0;

与门:只要有1个0就输出0,全为1输出1(图中中断屏蔽寄存器输出1即打开,输出0无论挂起寄存器输出何值都输出0);

非门:输入1输出0;

AFIO复用IO口

AFIO主要用于引脚复用功能的选择和重定义;

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

什么时候需要使用外部中断

对于一些外部驱动的突发信号,例如旋转编码器/红外遥控可能很长时间都处于静默状态,一但触发就会有很多的信号需要STM32进行处理,为了避免信号缺失可以使用外部中断,信号一过来STM32立刻接收信号;

另外按键也属于这类外部驱动,但是由于按键抖动等原因使得其信号并不是转瞬即逝的因此一般不使用外部中断;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询