6、外部中断学习

在stm32中中断有很多个,经常被使用在各种外设的正常工作中。
要想进入一个中断,必须要满足一定的条件。
不同的中断有不同的要求。
最简单的是按键边沿触发。
首先应该搞懂这个中断!!
首先要给某个引脚设置;
1、把这个触发外部中断引脚的gpio和 AFIO 的时钟开启和中断优先级进行设置;
在这里插入图片描述
2、开启时钟后,对这两个时钟控制下的寄存器进行控制。分别是gpio和exti.
在这里插入图片描述
为什么要开启AFIO时钟呢?
在这里插入图片描述
在上面的中断线设置过程中,啥时候用到这些寄存器了?
GPIO_EXTILineConfig(KEY1_INT_EXTI_PORTSOURCE, KEY1_INT_EXTI_PINSOURCE);
你想开启中断线,就需要设置AFIO_EXTICRX,就需要开启这个AFIO时钟。
在这里插入图片描述
3、宏定义;
在这里插入图片描述
4、把这个中断的中断服务函数添加到stm32f10x_it.c中。
stm32f10x_it.h中只包括这几个添加好的函数声明,那我后添加的按键中断为什么不需要声明呢?
在这里插入图片描述

可能是因为在启动文件里面,这些个中断服务函数就被区别对待了。。
在这里插入图片描述
5、最重要的控制框图在这里插入图片描述
一般进入NVIC中断控制器的中断有59外部中断,10个系统异常。
这么多中断,需要一一为他们开辟单独的中断线吗?
实际上在32中一共分配20个中断线。当你要使用一个引脚的中断功能时,应该通过设置开启对应的中断线。、
如果另一个引脚也使用这个中断线,比如pA1,pB1都是用EXTI1时,就要有优先级。
在这里插入图片描述
优先级设置
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值