stm32_exti( 含 NVIC) 配 置 及 库 函数讲解 2013-03-03 21:37:30| 分类: STM32F103VBT6 | 标签:stm32_exti stm32_nvic |举报|字号 订阅 EXTI external interrupt 外部中断 STM32 有76 个中断,包括16 个内核中断和60 个可屏蔽中断,具有16 级可编程的中断优先级
而我们常用的就是这60 个可屏蔽中断,所以我们就只针对这60 个可屏蔽中断进行介绍
关于中断的设置,在STM32 的PDF 文档中是找不到关于NVIC 相关寄存器的说明的,是让大家摸不着门道吗
还是故装高深
最后在《CM3 权威指南》上找到NVIC 相关寄存器,下面重点介绍这几个寄存器
ISER[2]:ISER 全称是Interrupt Set-Enable Registers,这是一个中断使能寄存器组
上面说了STM32 的可屏蔽中断只有60 个,这里用了2 个32位的寄存器,总共可以表示64 个中断
而STM32 只用了其中的前60 个
ISER[0]的bit0~bit31 分别对应中断0~31
ISER[1]的bit0~bit27 对应中断32~59;这样总共60 个中断就分别对应上了
你要使能某个中断,必须设置相应的ISER 位为1,使该中断被使能(这里仅仅是使能,还要配合中断分组、屏蔽、IO 口映射等设置才算是一个完整的中断设置)
具体每一位对应哪个中断,请参考 stm32f10x_nvic
h 里面的第 36 行处
/* IRQ Channels --------------------------------------------------------------*/ #define WWDG_IRQChannel ((u8)0x00) /* Window WatchDog In