STM32之EXTI外部中断(详解)

概述

中断:中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行

在STM32中(这里以STM32f407为例子),中断共有23条中断线
在这里插入图片描述

●EXTI0-EXTI 15连接到外部中断及GPIO引脚
● EXTI 线 16 连接到 PVD 输出
● EXTI 线 17 连接到 RTC 闹钟事件
● EXTI 线 18 连接到 USB OTG FS 唤醒事件
● EXTI 线 19 连接到以太网唤醒事件
● EXTI 线 20 连接到 USB OTG HS(在 FS 中配置)唤醒事件
● EXTI 线 21 连接到 RTC 入侵和时间戳事件
● EXTI 线 22 连接到 RTC 唤醒事件

其中外部中断与GPIO口中断相关的16个一一对应相对应每个GPIO组引脚的每一个引脚;即如下图所示,PA组~PI组0号引脚都连接到同一个EXTI0中断线上,PA组~PI组的所有1号引脚都被连接到同一个EXTI1中断线上,其他中断线以此类推。。。

注意:由于一个中断线上同时连接着多个GPIO的引脚,因此导致一个中断线一个时间内只能设置其中断线上的某一引脚作为它的中断引脚

在这里插入图片描述
STM32中CPU处理中断步骤:

①中断触发
②CPU检测到指定寄存器的标志位为1(下面中断处理函数会讲到)
③CPU跳转预先写好的中断处理函数运行代码
④运行结束返回原来CPU正在处理的事务进行处理



工程实现

创建工程,需要勾选以下模块

在这里插入图片描述



1、开启时钟

如图所示由于中断是在APB2总线上的外设,因此在配置外部中断前需要调用RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);函数用于启动时钟
在这里插入图片描述



2、配置GPIO引脚

使用中断,需要调用GPIO_Init()函数先初始指定的GPIO引脚为输入模式,这里设置的中断源为GPIO组的PA0引脚作为中断引脚

void _IOInit(void)
{
   
	//a.使能定时器所需时钟
	RCC_APB2PeriphClockCmd
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值