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是片上外设,但它与芯片唤醒有关,比较特殊,其时钟默认开启,且不可关闭。


附其他函数:

相关内容

热门资讯

aapoker外挂!aapok... 1、aapoker外挂!aapoker ai,(aapoker app)最初存在有挂(详细辅助插件教...
wpk提高胜率!wpk德州胜利... 1、wpk提高胜率!wpk德州胜利跟号有关么(透视)外挂透视辅助器(从前真的有挂);详细教程。2、透...
wepokeai代打的胜率(透... wepokeai代打的胜率(透视)wepoke辅助透视是不是真的(详细辅助德州教程)原来是真的有挂(...
微扑克辅助器ios(微扑克)微... 微扑克辅助器ios(微扑克)微扑克德州专用辅助器(透视)真是有挂(详细辅助插件教程)1、许多玩家不知...
aapoker辅助!aa扑克用... aapoker辅助!aa扑克用模拟器,(aa扑克模拟器)先前是有挂(详细辅助科技教程)1、很好的工具...
wpk透视辅助!wpk微扑克智... wpk透视辅助!wpk微扑克智能辅助(透视)外挂透视辅助技巧(从前真的有挂)是由北京得黑科技有限公司...
wepoke有辅助挂(透视)w... wepoke有辅助挂(透视)wepoke系统规律(详细辅助必备教程)本来存在有挂(专业透视挂)该软件...
微扑克系统发牌规律(微扑克)微... 微扑克系统发牌规律(微扑克)微扑克真的有外挂嘛(透视)确实真的有挂(详细辅助德州论坛);1、让任何用...
aapoker辅助工具存在!a... 1、aapoker辅助工具存在!aapoker外挂教程,(aapoker外挂)原生是有挂(详细辅助新...
wpk透视辅助!wpk到底有没... wpk透视辅助!wpk到底有没有外挂(透视)外挂透视辅助插件(好像是真的有挂),支持语音通讯、好友开...