STM32基础篇:EXTI × 事件 × EXTI标准库
创始人
2025-01-11 13:34:55
0

EXTI

EXTI简介

EXTI:译作外部中断/事件控制器,STM32的众多片上外设之一,能够检测外部输入信号的边沿变化并由此产生中断。

例如,在检测按键时,按键按下时会使电平产生翻转,因此可以使用EXTI来读取按下时的边沿变化,从而给NVIC输出一个中断触发信号,通过中断响应函数实现想要的功能。


EXTI内部结构

当外部输入信号输入时,首先会经过一个叫边沿检测的模块,它有两路输出信号,分别是上升沿信号和下降沿信号。当外部输入信号发生一个上升沿时,边沿检测模块会在上升沿信号路输出一个脉冲信号(下降沿正好相反)。这两路输出信号再经过一个或门,形成双边沿信号路,即无论上升沿还是下降沿都会此路产生脉冲信号。

通过数据选择器(复用器),从上述的三路里选择一路,连接到输出(例如,选择上升沿信号路,相当与选择了上升沿进行触发,意思是只有当输入信号发生上升沿时,会触发中断)。数据选择器就是用来选择中断触发的边沿。

再往右走,有一个或门,一端连接了外部输入信号变化所触发的脉冲信号,另一端连接到了软件触发。(即:我们既可以通过外部输入信号的边沿变化去触发一个中断,也可以通过软件编程直接去触发中断)

再往右还有中断屏蔽和事件屏蔽,最后是中断挂起(其实就是挂起寄存器的一个比特位),当中断挂起收到脉冲信号后,其值由0变1,但是它不能完成自动清零,我们必须手动向这个寄存器写0。

因为挂起寄存器直接与NVIC相连接 ,若不置零,则NVIC输入端一直有中断触发信号,中断响应函数就会一直被循环执行。


EXTI通道

有时为了检测多个信号,将上图所示结构复制很多份,在EXTI里有20份这样的结构(即:EXTI0~EXTI19,且20份合起来才是一个完整的片上外设)。

作用:

1、让所有IO具有触发中断的能力

每个普通IO引脚都可以被设置为中断/事件的输入线,占用EXTI0~EXTI15共16个通道。但需要注意的是,对于数字编号相同的引脚来说,不能同时触发中断(例如我使用了PA0,就不能同时使用PB0、PC0等)。

注意,EXTI5~EXTI9、EXTI10~EXTI15这两组通道的输出端连接在或门上。

2、其他功能

如下所示,用于特定的外设事件的EXTI16~EXTI19:


EXTI寄存器组

对于EXTI模块,其寄存器组如下(6个):

每一个寄存器有20个比特位,对应了EXTI的20个通道。


上升/下降沿选择寄存器

通过这两个寄存器来配置外部输入信号的触发方式(即:上升沿、下降沿或双边沿触发),相当于控制了复用器。

以TR0为例,当上升/下降沿选择触发器TR0分别为1、0时,为上升沿触发;分别为0、1时,为下降沿触发;均为1时,为双边沿触发。


其他寄存器

软件触发寄存器 :将对应比特位置1,软件触发的位置就会发出一个脉冲。

中断屏蔽寄存器:向其比特位写0,中断就被屏蔽;写1,中断就会被挂起;

挂起寄存器:通常写这个寄存器,将其主动清零。

事件屏蔽寄存器:负则事件屏蔽的开关,方法与中断屏蔽寄存器一样。


事件

指突发事件本身,一般是一个脉冲信号,事件的处理过程不需要CPU介入(例如片上外设A产生了一个事件,那么它可以直接调用片上外设B去处理事件)。


EXTI标准库编程

在文件夹std_periph_driver里面存储着标准库的源码,其中stm32f10x_exti.h和stm32f10x_exti.c两个文件组成了EXTI的驱动。

EXTI_Init

用于初始化EXTI的某个通道。

void EXTI_Init(EXTI_InitTypeDef*EXTI_InitStruct);

此函数的参数为结构体变量,初始化之前需要自己对其赋值,具体赋值的内容如下 :

需要注意,EXTI也不需要开启时钟,虽然EXTI是片上外设,但它与芯片唤醒有关,比较特殊,其时钟默认开启,且不可关闭。


附其他函数:

相关内容

热门资讯

九分钟了解!哈灵小程序脚本(辅... 【福星临门,好运相随】;九分钟了解!哈灵小程序脚本(辅助挂)详细透视开挂辅助爆料教程(切实真的是有挂...
第6分钟了解!新畅游互娱辅助(... 第6分钟了解!新畅游互娱辅助(辅助挂)详细透视开挂辅助透视教程(真是是有挂)-哔哩哔哩;新畅游互娱辅...
9分钟了解!小程序微乐贵阳捉鸡... 您好,小程序微乐贵阳捉鸡麻将挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很...
三分钟了解!王重阳小程序辅助器... 三分钟了解!王重阳小程序辅助器(辅助挂)详细透视开挂辅助透牌教程(一直存在有挂)-哔哩哔哩;相信小伙...
第六分钟了解!福建开心辅助(辅... 您好:福建开心辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别...
第二分钟了解!游戏茶苑电脑版辅... 第二分钟了解!游戏茶苑电脑版辅助(辅助挂)详细透视开挂辅助透视教程(好像有挂)-哔哩哔哩;运游戏茶苑...
六分钟了解!情怀游戏辅助器(辅... 六分钟了解!情怀游戏辅助器(辅助挂)详细透视开挂辅助科技教程(总是是真的挂)-哔哩哔哩是一款可以让一...
1分钟了解!来几局辅助器吾爱破... 1分钟了解!来几局辅助器吾爱破解(辅助挂)详细透视开挂辅助必胜教程(好像真的是有挂)-哔哩哔哩;亲真...
第3分钟了解!阿拉斗牌辅助免费... 【福星临门,好运相随】;第3分钟了解!阿拉斗牌辅助免费(辅助挂)详细透视开挂辅助可靠技巧(果然存在有...
五分钟了解!拱趴大菠萝修改器(... 五分钟了解!拱趴大菠萝修改器(辅助挂)详细透视开挂辅助揭秘教程(本来是真的挂)-哔哩哔哩;超受欢迎的...