STM32之EXTI按键实验

本文详细介绍了STM32使用EXTI实现按键中断的原理和实验过程。通过配置NVIC中断控制器和EXTI线中断模式,当按键按下时,中断服务函数会反转LED状态。实验涉及的文件包括启动文件、库文件和用户文件,例如STM32F10x_GPIO、STM32F10x_EXTI等,并详细展示了EXTI_PE5_Config和EXTI9_5_IRQHandler的实现。
摘要由CSDN通过智能技术生成

****************************************************************EXTI之按键中断实验****************************************************************************

1,原理:EXTI就是指外部中断,通过GPIO检测输入脉冲,引起中断事件,打断原来的代码执行流程,进入到中断服务函数中进行处理,处理完后再返回到中断之前的代码中执行。

               STM32对Cortex中断向量表重新排列,把优先级编号从-3到6的中断向量定义为系统异常,编号为负的内核异常不能被设置优先级,如复位、不可屏蔽中断、硬错误。从编号7开始的为外部中断,这些中断的优先级都是可以自行设置的。对于这些编号的对应内容大家可以自己去查找STM32向量表查看。在实际使用中最好从启动文件中查找,本实验用的启动文件是startup_stm3232f10x_cl.s,在编写中断服务函数时,需要从启动文件中定义的中断向量表中查找中断服务函数名。

              STM32中有一个强大而方便的中断控制器NVIC。NVIC是属于Cortex内核的器件,不可屏蔽中断(NMI)和外部中断都由它来处理,而SYSTICK不是由其控制的。对NVIC初始化,首先定义并填充一个NVIC_IbitTypeDef类型的结构体。这个结构体有4个成员:

                                                                       NVIC_IRQChannel :需要配置的中断向量

                                                                       NVIC_IRQChannelCmd:使能或者关闭相应中断向量的中断响应

                                                                      NVIC_IRQChannelPreemptionPriority:配置相应中断向量抢占优先级

                                                                      NVIC_IRQChannelSubPriority:配置相应中断向量的响应优先级

               STM32的中断向量具有两个属性,一个为抢占属性,一个为响应属性,其属性编号越小则优先级越高。抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断。因此STM32把指定中断优先级的寄存器位减少到4位,这4个寄存器位的分组方式如下:

第0组:所有4位用于指定响应优先级(16种)

第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级(8种)

第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级(4种)

第3组:最高3位用于指定抢

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值