STM32 外部中断学习笔记-------寄存器分析

本文详细介绍了STM32的外部中断配置步骤,包括IO口初始化、时钟开启、IO口映射、中断触发条件设置、中断分组与优先级配置、中断服务函数编写以及中断标志位清除。重点解析了中断优先级分组的规则,并提供了具体的代码示例,帮助读者理解STM32中断系统的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32中断流程如下:
在这里插入图片描述
根据流程编写外部中断配置

①初始化IO口为输入

GPIOE_CRL &= ~(0XF << 16);
GPIOE_CRL |= 0x8 << 16;// 设置PE4 上下拉输入模式 2MHZ
GPIOE->ODR|=1<<4;	   	//PE4 上拉 

②开启IO口复用时钟

RCC->APB2ENR |= 1<<6; // 使能APB2总线时钟
RCC->APB2ENR|=0x01;//使能io复用时钟	

③设置IO口与中断线的映射关系

AFIO->EXTICR[1] &= 0xfff0; 
AFIO->EXTICR[1] |= 0xfff4; // PE4 配置为外部中断4

④初始化线上中断,设置触发条件等

EXTI->IMR |= 1<<4; // 放开来自线4上的中断
EXTI->FTSR |= 1<<4; // 允许线4的下降沿触发中断

⑤配置中断分组(NVIC),并使能中断

temp = SCB->AIRCR; // 读取先前的值
temp &= 0X0000F8FF;  // 清空高位,并给BIT[10:8] 置0
temp |= (0X05FA<<16 | (7 - group) << 8);  // 设置秘钥并设置优先级分组
SCB->AIRCR = temp;

NVIC->ISER[interrupt_channel/32] |= (1<<(interrupt_chan
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值