EXIT的全称是外部中断/事件控制器,用来管理GPIO电平变化而产生的中断,最后传给内核的NVIC,每一个GPIO都可以产生中断
EXTI控制器的主要特性如下
1.每个中断/事件都有独立的触发和屏蔽
2.每个中断线都有专用的状态位
3.支持多达20个软件的中断/事件请求
4.检测脉冲宽度低于APB2时钟宽度的外部信号
5.参见数据手册中电气特性部分的相关参数
框图:
红色的对应是中断
绿色的对应是事件,脉冲发生器可以用于ADC转化,定时器
EXTI功能框图讲解
每一根输入线上都有输入源,输入线可以有20个,见下图
EXTI功能框图讲解
看到外部中断配置寄存器1,16到31保留,其余每4个位用来设置把哪组GPIO作为中断输入,其他外部中断配置寄存器1-4也是如此
EXTI功能框图讲解
我们来分析中断的过程
1.对于外部中断的检测可以选择上升沿触发和下降沿触发两种模式,当检测到电平变化时边沿检测电路就会输出1
EXTI功能框图讲解
EXTI功能框图讲解
2.边沿检测电路输出1后如果我们的软件中断事件控制器将对应线上写上1的话,那么挂起寄存器对应位会置1,相当于小开关
EXTI功能框图讲解
EXTI功能框图讲解
3.最后中断屏蔽寄存器将对应线上的位置1则开放该中断,可传达到CPU,跳到中断服务函数,相当于大开关
EXTI功能框图讲解
编程步骤:
在stm32f10x_exti.h里面定义
EXTI功能框图讲解
特别注意的是stm32f103_gpio.c里面的一个函数,第一个参数用来设置哪组端口,第二个参数用来设置哪条EXTI线,
EXTI功能框图讲解

相关文章: