STM32-EXTI中断

EXTI简介

EXTI(Extern Interrupt)外部中断

EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序

支持的触发方式:上升沿/下降沿/双边沿/软件触发(程序执行代码指令)

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

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

触发响应方式:中断响应/事件响应(外部中断发生时,可以选择不触发一个中断,而是触发一个事件)

EXTI基本结构

每个GPIO有16个口,和AFIO连接,AFIO又引出16个引脚和EXIT外部中断连接;AFIO是数据选择器,可以从前面的GPIO中,选择一个引脚连接到后面的EXTI 通道里,所以上面有说,相同的PIN不能同时触发中断,因为经过AFIO选择后,只有一个能接到EXTI的通道0上,也就没法同时触发中断了;

为了节省NVIC的资源,ST将9-5指向同一个NVIC,15-10也是同一个NVIC,同一个NVIC共用中断函数,使用这个几个中断的时候,需要在中断函数里根据标志位进行区分 ;下面有20条线到了其他外设,这个就是用来触发其他外设的,也就是事件响应;

AFIO复用IO口

所有的PIN0复用到EXTI0,这也是为什么同一个PIN同时只能有一个触发中断

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

在STM32中,AFIO主要完成两个任务:复用功能引脚重映射(最开始引脚定义表里那个重定义功能)、中断引脚选择

EXTI框图

20条输入线从右下角接入,经过边沿检测电路(上升沿/下降沿触发选择寄存器是可以配置的)上升沿触发/下降沿触发,软件中断事件寄存器(软件触发中断),然后经过或门后兵分两路,上一路是触发中断的(与门和中断屏蔽寄存器组成了一个开发,管控中断能不能响应),下一路是触发事件的(脉冲发生器会给一个脉冲,用来触发外设动作);

相关推荐
Freak嵌入式13 小时前
MCU 低功耗模式解析:时钟门控、电源门控、深度休眠
人工智能·python·单片机·嵌入式硬件·开源·依赖倒置原则·micropython
国科安芯13 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
躺不平的理查德13 小时前
STM32时钟树(Clock Tree)
stm32·单片机·嵌入式硬件
Javenwww15 小时前
STM32中DMA的使用——串口数据的DMA传输
单片机
qq_4017004115 小时前
经典的电压基准源电路
单片机·嵌入式硬件
茯苓gao16 小时前
嵌入式开发笔记:电机参数辨识与自学习完全指南——从电气参数到机械特性的深度解析
笔记·嵌入式硬件·学习
西安景驰电子16 小时前
PCIe 授时卡原理及应用
运维·服务器·windows·单片机·嵌入式硬件·fpga开发
派勤电子17 小时前
5G物联网网关工控主板选型指南(超小尺寸工业级嵌入式硬件解决方案)
嵌入式硬件·工业网关·工控主板·工控主板选型·嵌入式工控主板·5g物联网网关·超小尺寸工控主板
&Hello Code18 小时前
2.一套可落地的 STM32 六层架构:基础工程框架搭建
stm32·嵌入式硬件·架构
sramdram18 小时前
高速低功耗stt-mram工业级存储方案
嵌入式硬件·mram·stt-mram·低功耗stt-mram