5.1 EXTI外部中断

江科大stm32 P5.1 EXTI外部中断

简介

中断系统是管理和执行中断的逻辑结构

外部中断是众多能产生中断的外设之一

外部中断

1.引脚电平变化产生中断

2.相同的Pin不能同时触发中断,PA1、PB1这种GPIO_Pin一样的

3.申请中断,让cpu执行中断函数

4.事件响应:当外部中断检测到引脚电平变化时,正常流程是选择触发中断

但是stm32也可以选择触发事件,外部中断信号不会通向cpu而是通向其他外设,用来触发其他外设的操作,比如触发DMA,ADC转换等,属于外设之间的联合工作

NVIC

stm32中断线很多,如果全部接到cpu上,cpu还要引出很多线适配,设计上就很麻烦,并且如果很多中断同时申请,或者中断很多产生了拥堵,cpu也会很难处理,毕竟cpu是用来运算的,所以NVIC就被设计出来处理中断分配了。上图的n表示一个外设可能同时占用多个中断通道。

优先级分组

EXTI

基本结构

EXTI只有16个GPIO通道,但每个GPIO外设都有16个引脚,如果每个引脚占用一个通道,那EXTI的16个通道显然不够用了,所以这里有一个AFIO中断引脚选择的电路模块,就是一个数据选择器,这也是之前说相同的Pin不能同时触发中断的原因。PA1,PB1只有一个能连接到通道1上

右边通向其他外设的就是事件响应

AFIO

stm32中AFIO主要负责复用引脚重映射和中断引脚选择

中断引脚选择(数据选择器)

复用引脚重映射

从右往左看,输入线和软件中断接在同一个或门上,任意一个为1或门就可以输出1。

信号通过这个或门后就兵分两路,一路向上触发中断,一路向下触发事件

触发中断首先向上置一个挂起寄存器,相当于一个中断标志位,可以读取这个寄存器判断哪个通道触发的中断

如果中断挂起寄存器置1,他就继续向左走和中断屏蔽寄存器进入同一个与门,然后至NVIC

这个与门相当于一个开关,中断屏蔽寄存器给1,那另一个就原封不动输出,中断屏蔽寄存器给0另一个不论输入什么输出都是0,相当于屏蔽了这个中断

下面的事件屏蔽寄存器的作用和中断屏蔽寄存器的作用一样

需要使用外部中断的设备

对于stm32来说想要获取的信号是外部驱动的很快的突发信号

比如旋转编码器

不推荐按键中断,因为不好处理抖动和松手检测而且,按键的输出波形也不是转瞬即逝的要求不高的话可以在主循环读取,不想在主循环读取的话可以考虑定时器读取,可以很好的处理按键抖动和松手检测

EXTI基本机构

1.配置RCC,把涉及的外设时钟都打开

2.配置GPIO,端口为输入模式

3.配置AFIO,选择我们用的这一路GPIO,连接到后面的EXTI (GPIO_EXTILineConfig)

4.配置EXTI,选择边沿触发方式,比如上升沿、下降沿或者双边沿,响应方式,中断响应和事件响应

5.配置NVIC,给中断选择一个合适的优先级,最后通过NVIC外部中断信号就能进入CPU了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值