STM32—EXTI(外部中断)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

一、EXTI简介

  • EXTI(Extern Interrupt)外部中断
  • EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序
  • 支持的触发方式:上升沿/下降沿/双边沿/软件触发
  • 支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断
  • 通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒
  • 触发响应方式:中断响应/事件响应

二、NVIC基本结构

        NVIC:嵌套中断向量控制器。在stm32中它是用来统一分配中断优先级和管理中断的,NVIC是一个内核外设,是CPU的小助手。

        NVIC只有一个输出口,NVIC根据每个中断的优先级分配中断的先后顺序,之后通过右边的输出口告诉CPU,你该处理哪个中断。

然后我们看一下中断的分组:分为抢占优先级和响应优先级

级别的值越小,优先级越大。

        例如:假定设置中断优先级组为2,然后设置中断3(RTC中断)的抢占优先级为2,响应优先级为1。  中断6(外部中断0)的抢占优先级为3,响应优先级为0。中断7(外部中断1)的抢占优先级为2,响应优先级为0。

优先级顺序:中断7>中断3>中断6

结论:抢占优先级高的必定先抢占中断,如果抢占优先级相同,那就看响应优先级,此时谁的响应优先级高,谁就先发生。

​​​​​​​EXTI基本结构

​​​​​​​1.AFIO复用IO口​​​​​​​

2.EXTI框图


         AFIO:就是一个数据选择器。它可以在这前面3个GPIO外设的16个引脚里选择其中一个连接到后面的EXTI的通道里。所以说相同的PIN不能触发中断,因为对于PA0,PB0,PC0这些,通过AFIO选择后只有一个能接到EXTI的通道0上,同理PA1,PB1,PC1,也只有一个能接到EXTI的通道1上。这就是所由GPIO口都能触发中断,但相同的PIN不能同时触发中断的原因。

        然后通过AFIO选择的16个通道,就接到了EXTI边沿检测及控制电路上,同时,下面4个蹭网的外设也是并列接进来的。加起来一共20个就组成了EXTI的20个输入信号。然后经过EXTI电路之后,分为了两种输出:

1.接到了NVIC,是用来触发中断的。(注:外部中断5~9和10~15会同时触发一个中断函数)

2.接到了其他外设上,用来触发其他外设操作的,也就是我们说的事件响应

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值