misc.h中定義的NVIC_InitTypeDef類(lèi)型的結構體:typedef struct
{
uint8_t NVIC_IRQChannel;//中斷向量
本文引用地址:http://dyxdggzs.com/article/201611/321815.htmuint8_t NVIC_IRQChannelPreemptionPriority;//中斷搶占優(yōu)先級
uint8_t NVIC_IRQChannelSubPriority;//中斷向量?jì)?yōu)先級
FunctionalState NVIC_IRQChannelCmd;//中斷使能(ENABLE or DISABLE)
} NVIC_InitTypeDef;
中斷優(yōu)先級組stm32中用4位來(lái)決定。

外部中斷初始化
1.開(kāi)啟時(shí)鐘(外部中斷要開(kāi)啟GPIO時(shí)鐘和AFIO時(shí)鐘)
2.配置嵌套向量中斷控制器NVIC
<1>選擇中斷優(yōu)先級組NVIC_PriorityGroup_0~NVIC_PriorityGroup_4。
調用函數NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)完成優(yōu)先級組設定。
<2>配置中斷源
配置中斷向量NVIC_IRQChannel;
配置中斷向量搶占優(yōu)先級NVIC_IRQChannelPreemptionPriority;
配置中斷向量響應優(yōu)先級NVIC_IRQChannelSubPriority;
使能中斷NVIC_IRQChannelCmd; (ENABLE or DISABLE)
調用函數 NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)完成配置。
3.GPIO口初始化
GPIO口選擇GPIO_Pin
外部中斷GPIO口為輸入模式,GPIO_Speed不用設置。
GPIO輸入模式GPIO_Mode
調用 GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 完成配置。
4.配置EXTI中斷線(xiàn)工作模式。
調用GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);設置EXTI輸入線(xiàn)。
配置輸入線(xiàn)EXTI_Line;
配置輸入線(xiàn)模式為中斷模式.EXTI_Mode = EXTI_Mode_Interrupt;
配置中斷觸發(fā)方式.EXTI_Trigger = EXTI_Trigger_Falling;
使能中斷.EXTI_LineCmd = ENABLE;
調用函數 EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)。
評論