目录:
1:概述2:stm32外部中断配置
3:code
1:本篇利用按键中断输入方式,当按键触发,中断处理函数置按键扫描标志位为1,开始按键键值扫描,完成后,主程序根据键值(短按、长按、双击),完成相应的动作;
2:当K1按键短按:LED1闪烁;当K1按键长按,LED2闪烁;当K1按键双击,LED3闪烁;3:优点:相比于轮询扫描按键键值的方式,按键响应速度更快,节约CPU资源;
4:参考资料:stm32中文参考手册(EXIT的有关说明)、Cortex-M3权威指南(NVIC的有关说明)
5:开发板:STM32f103ZERT 奋斗开发板V5 开发环境:KEIL MDK5
6:工程下载:
stm32外部中断配置
1: 设置中断分组
设置中断优先级之前,一定要设置中断分组,本代码中有sysclk中断和按键外部中断,设置中断中断分组为2,2位主优先级和2位次优先级,需设置内部sysclk中断的优先级高于按键中断的优先级,内部中断使用NVIC_SetPriority()函数设置,具体函数参考core_cm3.h文件,外部中断优先级在NVIC_Init()函数中设置;
2:完成外部中断线路映射
使用GPIO_EXTILineConfig()函数完成中断线路的映射;
3:NVIC寄存器初始化
完成对应中断的使能和优先级设定,使用 NVIC_Init()库函数完成初始化。注意:一定要给NVIC_InitStructure结构体的成员赋值,因为NVIC_InitTypeDef结构体是在函数内部定义的,并且没有赋初值,