IO口与外部中断线的映射关系 --- SYSCFG控制器 --- 寄存器法配置外部中断 --- STM32F4

        当我们需要使用寄存器法配置IO口的外部中断时,需要开启IO口与外部中断线的映射关系才能正常实现外部中断的效果

23跟中断线:

EXTI控制器内部:

SYSCFG是系统配置控制器,是一个片上外设
因此在使用它时,需要打开时钟 --- 挂载在APB2总线


        SYSCFG系统配置控制器主要用于管理对可执行代码的存储区域的地址重映射、选择以太网 PHY 接口以及管理 GPIO 的外部中断线连接

当我们配置PA0作为EXTI0外部中断时,就需要配置SYSCFG->EXTICR1寄存器来实现映射

在KEIL5中寄存器调用:

SYSCFG->EXTICR1     --->     SYSCFG->EXTICR[0]   
SYSCFG->EXTICR2     --->     SYSCFG->EXTICR[1]
SYSCFG->EXTICR3     --->     SYSCFG->EXTICR[2]
SYSCFG->EXTICR4     --->     SYSCFG->EXTICR[3]

EXTI配置代码:

其中EXTI[15:0]的每个中断线在硬件上是与对应16个IO口直连,因此不用开启时钟

/*************************************
***** 函数功能:EXTI0中断初始化
***** 返回值:void
***** 形  参:void
***** 函数说明:
***** KEY1 接 PA0 按下按键为高电平 
***** 上升沿触发中断
***** 系统配置控制器低位寄存器:SYSCFG->EXTICR[0]
*************************************/
void Exti0_Init(void)
{
	//1.打开GPIOA,SYSCFG的时钟
	RCC->AHB1ENR |= 1<<0;
	RCC->APB2ENR |= 1<<14;
	
	//2.初始化PA0 --- 输入模式
	GPIOA->MODER &= ~(3<<0);//输入模式
	GPIOA->PUPDR &= ~(3<<0);//无上下拉
	
	//3.配置IO口与EXTI映射关系
	SYSCFG->EXTICR[0] &= ~(0xf<<0);//PA0 --- EXTI0
	
	//4.初始化EXTI
	EXTI->IMR  |= 1<<0; //使能中断请求
	EXTI->RTSR |= 1<<0; //设置边沿检测 --- 允许上升沿触发中断

	//5.配置NVIC
	u32 pri = NVIC_EncodePriority(5, 1, 1);//计算优先级编码值
	NVIC_SetPriority(EXTI0_IRQn, pri);//设置优先级
	NVIC_EnableIRQ(EXTI0_IRQn);//使能中断源
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值