SMT32中断学习总结

这里写# 学习目标:STM32的外部中断学习过程

提示:这里可以添加学习目标
例如:一周掌握 Java 入门知识


学习内容:

提示:STM32的外部中断

学习过程

STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为:
线 0~15:对应外部 IO 口的输入中断。
线 16:连接到 PVD 输出。
线 17:连接到 RTC 闹钟事件。
线 18:连接到 USB 唤醒事件。
从上面可以看出,STM32 供 IO 口使用的中断线只有 16 个,但是 STM32 的 IO 口却远远不止 16 个,那么 STM32 是怎么把 16 个中断线和 IO 口一一对应起来的呢?于是 STM32 就这样设计,GPIO 线对应了最多 7 个 IO 口,以线 0 为例:它对应了 GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0、GPIOG.0。而中断线每次只能连接到 1 个 IO 口上,样就需要通过配置来决定对应的中断线配置到哪个 GPIO 上了。下面我们看看 GPIO 跟中断线的映射关系图:
在这里插入图片描述
所以我们需要把要使用的GPIO与外部中断连接起来,可通过函数GPIO_EXTILineConfig()来实现。eg:
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);
表示把PE2连接到EXTI2中断线上。然后再通过配置NVIC和EXTI完成外部中断的配置,最后编写外部中断函数。

编程过程

1.初始化需要作为外部中断的GPIO引脚。其中输出模式需要看具体的外部电路。
2.初始化EXTI产生中断/事件
首先要选择输入线:(需要用到AFIO这个外设,所以配置时也需要打开AFIO的时钟)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能复用功能时钟
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);选择输入线,(第一个参数端口,第二个为引脚)
3.初始化化EXTI结构体(EXTI.C)
配置EXTI寄存器(选择线,模式,触发选择(是下降沿还是上升沿)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值