STM32F429中有10个系统异常,91个中断。
EXTI——外部中断/事件控制器
有图可得:EXTI可以产生中断也可以产生事件
编写按键——中断驱动程序
-
初始化RGB彩色灯(前面的LED驱动程序已经写好了,直接调用就可以了)
-
打开GPIO的时钟和SYSCFG时钟(SYSCFG是外部中断寄存器,使用EXTI必须开启SYSCFG时钟)
-
配置NVIC
NVIC是嵌套向量中断控制器,设置中断优先级别。NVIC的函数声明在misc.h这个头文件里。首先设置NVIC的优先级组,然后初始化NVIC。 IRQchannel是中断通道,初始化首先就要选择中断源,中断源填写的是中断号,中断号在stm32f4xx.h的头文件。使能中断源,设置中断源的抢占优先级和子优先级。(我写的中断不是很多所以抢占优先级和子优先级设置的很随意))
补充一下:如何比较优先级:先比较优先级组,再比较抢占优先级,再比较子优先级void NVIC_configue(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel= EXTI0_IRQn; NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority= 1; NVIC_InitStruct.NVIC_IRQChannelSubPriority= 1; NVIC_Init(&NVIC_InitStruct); }