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

相关推荐
Balabala噗18 分钟前
JLink-Cortex-M Error报错-No Cortex-M SW Device Found-解决办法整理
单片机·嵌入式硬件
点灯小铭35 分钟前
基于单片机的智慧农业温度湿度滴灌自动控制系统设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
零一iTEM2 小时前
MAX98357A_音频输出测试
单片机·嵌入式硬件·开源·音视频·硬件工程
逐步前行2 小时前
STM32_标准库结构
stm32·单片机·嵌入式硬件
Hello_Embed2 小时前
libmodbus STM32 主机实验(USB 串口版)
笔记·stm32·学习·嵌入式·freertos·modbus
不做无法实现的梦~3 小时前
PX4各个模块的作用(3)
linux·stm32·嵌入式硬件·机器人·自动驾驶
清风6666663 小时前
基于单片机的喷漆机器人自动控制系统
单片机·嵌入式硬件·机器人·毕业设计·课程设计·期末大作业
不能跑的代码不是好代码3 小时前
STM32独立看门狗(IWDG)知识点及标准库使用指南
stm32·嵌入式硬件
程序员良许3 小时前
嵌入式处理器架构
后端·单片机·嵌入式
来自晴朗的明天4 小时前
15、隔离 DC-DC 电源电路(18S12 模块)
单片机·嵌入式硬件·硬件工程