STM32单片机学习总结之中断EXTI (External interrupt)

学习目标:

  • 掌握 STM32 基础知识

STM32单片机学习总结之------中断EXTI (External interrupt)


学习内容:

EXTI (External interrupt) 就是指外部中断通过GPIO 检测输入脉冲,引起中断事件,打断原来的代码执行流程,进入到中断服务函数中进行处理,处理完后,再返回到中断之前的代码中执行。

1、能够打断当前代码执行流程的事件分为异常(exception)和中断(interrupt),并把它们用一个表管理起来,编号为0~15 的称为内核异常,而16 以上的则称为外部中断(外,相对内核而言),这个表就称为中断向量表。把编号从-3 至6 的中断向量定义为系统异常,编号为负 的内核异常不能被设置优先级,如复位(Reset)、不可屏蔽中断 (NMI)、硬错误(Hardfault)。从编号7 开始的为外部中断,这些中断的优先级都是可以自行设置的。

2、中断控制器NVIC (Nested Vectored Interrupt Controller)。
不可屏蔽中断 (NMI)和外部中断都由它来处理
对NVIC 初始化,要定义并填充一个NVIC_InitTypeDef 类型的结构体。
在这里插入图片描述

3、STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性
其属性编号越小,表明它的优先级别越高。

抢占,是指打断其它中断的属性,即因为具有这个属性,会出现嵌套中断
(在执行中断服务函数A 的过程中被中断B 打断,执行完中断服务函数B 再继续
执行中断服务函数A),抢占属性由NVIC_IRQChannelPreemptionPriority 的参
数配置。

而响应属性则应用在抢占属性相同的情况下,当两个中断向量的抢占优先
级相同时,如果两个中断同时到达,则先处理响应优先级高的中断,响应属性
由NVIC_IRQChannelSubPriority 的参数配置。看例子如下:
在这里插入图片描述

4、在配置优先级的时候,中断种类的数量。NVIC 只可以配置16 种 中断向量的优先级,也就是说,抢占优先级和响应优先级的数量由一个4 位的数字来决定,把这个4 位数字的位数 分配成抢占优先级部分和响应优先级部分。有5 组分配方式:
在这里插入图片描述
要配置这些优先级组,可以采用库函数NVIC_PriorityGroupConfig(),可输入的参数为NVIC_PriorityGroup_0 ~ NVIC_PriorityGroup_4,分别为以上介绍的5 种分配组。

5、所有GPIO 都能够配置成外部中断,USART、ADC 等外设也有中断。
注意NVIC 能配置的是16种中断向量,而不是16个,当工程之中有超过16 个中断向量时,必然有2个以上的中断向量是使用相同的中断种类,而具有相同中断种类的中断向量不能互相嵌套。

6、STM2 单片机的所有I/O 端口都可以配置为EXTI中断模式,用来捕捉外部
信号,可以配置为下降沿中断,上升沿中断和上升下降沿中断这三种模式。它
们以下图的方式连接到16 个外部中断/事件线上

7、STM32 的所有GPIO 都引入到EXTI 外部中断线上,使得所有的GPIO 都能作为外部中断的输入源。
在这里插入图片描述
在这里插入图片描述

9、注意的是:PAx~PGx端口的中断事件都连接到了EXTIx,即同一时刻EXTx 只能相应一个端口的事件触发,不能够同一时间响应所有GPIO 端口的事件,但可以分时复用。

AFIO (alternate-function I/O),指GPIO 端口的复用功能。

当把GPIO 用作EXTI 外部中断 或使用重映射功能的时候,必须开启AFIO
时钟,而在使用默认复用功能的时候,就不必开启AFIO 时钟了。


学习总结:

当我们要读取某外设的状态时,可调用该外设的XXX_GetFlagStatus()函数来获取该状态。一般也有XXX_ClearFlag()库函数可供调用,进行相应的标志位清除。


  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jory&W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值