ARM32开发——(十)外部中断EXTI

1. 外部中断概念

外部中断,英文缩写为EXTI,全称为Ext ernal Interrupt的缩写,直译过来就是是外部的中断。它是指在嵌入式系统中负责检测和处理外部中断和事件的模块。它通过检测外部信号的电平变化或边沿触发,生成对应的中断或事件,并将其送到中断控制器或事件屏蔽控制器进行处理。

在许多嵌入式系统中,包括STM32和GD32等,EXTI模块通常由多个输入线、边沿检测电路、触发选择寄存器、软件中断事件寄存器、请求挂起寄存器、中断屏蔽寄存器、事件屏蔽寄存器等部分组成,可以实现对外部中断和事件的高效检测和处理。

EXTI(中断/事件控制器)包括 23 个相互独立的边沿检测电路并且能够向处理器内核产生中断 请求或唤醒事件。

2. 中断触发机制

外部中断触发机制,分为两种:

  • 硬件触发
  • 软件触发

硬件触发机制主要是针对外部触发了芯片的引脚,造成引脚的电平发生变化,从而导致中断产生。

硬件触发机制支持三种触发类型:上升沿触发、下降沿触发和任意沿触发。

  • 上升沿:之前是低电平,突然变成高电平了,这个数瞬间,我们称之为触发了上升沿
  • 上升沿:之前是高电平,突然变成低电平了,这个数瞬间,我们称之为触发了下降沿

硬件触发外部中断,简单的理解就是,如果我配置了某个引脚外部中断功能,那么当这个引脚的电平发生变化时,就会触发中断机制,代码层级就会调用到我的中断函数。

软件触发机制,主要针对的是业务逻辑中,需要手动的触发中断事件,去执行中断逻辑而去设计的。他不需要对引脚做任何处理,也可以触发。

3. 中断触发源

引脚的外部中断总共有15个,对于同一个PIN,例如PA0和PB0是不可以同时触发的。

4. 中断消抖处理

4.1 消抖方式

4.1.1 硬件消抖
4.1.2 软件消抖

在按键操作过程中,如果我们采用的是扫描方式实现,消抖的处理方式通常为:

  • 降低扫描频率。通常我们delay个20ms,也就是1秒扫50次,人的手速是到不了的,比较符合逻辑。
  • 状态比较。比较本次和上次的状态,从而确定是否触发,降低触发误操作。

理论上我们可以将这种行为使用到中断处理方式中,但是,我们需要明确一点,中断中不可以睡眠时间过长。会影响其他任务执行。

我们可以通过以下两种方式间隔进行判断:

  • 在定时器的中断函数里,按照指定间隔时间进行判断,这种需要占用一个Timer的中断函数。
  • 通过时间差决定是否进行按键判定,即本次外部中断发生和上次中断发生的时间差。时间差就需要有时间计数概念,那么我们如何获得时间计数,可以利用System Tick。

5. 系统计数模块

通常我们称之为System Tick,System Tick 不是基于标准定时器(Timer)实现的,而是使用了专门的 SysTick 定时器模块。SysTick 定时器是一个专用的计数器,用于实现系统的计时和调度。

SysTick 定时器是一个 24 位的递减计数器,其工作与标准定时器(Timer)不同。它的时钟源通常是系统时钟(CPU 时钟),并且它是硬件级别的计时器,专门用于实现系统级别的计时和调度功能,比如操作系统的任务调度、延时等。

相关推荐
dlz083617 小时前
GPIO的通用初始化流程
单片机·嵌入式硬件
boneStudent18 小时前
Day18:系统滴答定时器 (SysTick)
stm32·单片机·嵌入式硬件
d111111111d18 小时前
再STM32F103C8T6中小端存储和大端存储有什么不同,STM32F103C8T6用的是那个,为什么要这么使用?
笔记·stm32·单片机·嵌入式硬件·学习
云山工作室18 小时前
基于物联网的体温心率监测系统设计(论文+源码)
stm32·单片机·嵌入式硬件·物联网·课程设计
猫猫的小茶馆19 小时前
【ARM】VSCode和IAR工程创建
c语言·开发语言·arm开发·ide·vscode·stm32·嵌入式硬件
IAR Systems19 小时前
在IAR Embedded Workbench for Renesas RH850中开发和调试Renesas RH850 MCU
单片机·嵌入式硬件·rh850·iar
小李做物联网19 小时前
【物联网毕设】130.1基于单片机stm32的智慧民宿环境监测物联网嵌入式项目程序开发系统
stm32·单片机·嵌入式硬件·物联网
Jerry丶Li19 小时前
三十八、W25Q64简介
stm32·嵌入式硬件·c
物随心转19 小时前
Arm的协处理器
linux·arm开发
brave and determined19 小时前
传感器学习(day04):红外感知:从经典热释电开关到智能时代的隐形慧眼
嵌入式硬件·算法·传感器·红外·嵌入式设计·红外矩阵·人体红外