misc.h中定義的NVIC_InitTypeDef類型的結(jié)構(gòu)體:typedef struct
{
uint8_t NVIC_IRQChannel;//中斷向量
本文引用地址:http://m.butianyuan.cn/article/201611/321815.htmuint8_t NVIC_IRQChannelPreemptionPriority;//中斷搶占優(yōu)先級(jí)
uint8_t NVIC_IRQChannelSubPriority;//中斷向量?jī)?yōu)先級(jí)
FunctionalState NVIC_IRQChannelCmd;//中斷使能(ENABLE or DISABLE)
} NVIC_InitTypeDef;
中斷優(yōu)先級(jí)組stm32中用4位來(lái)決定。
外部中斷初始化
1.開(kāi)啟時(shí)鐘(外部中斷要開(kāi)啟GPIO時(shí)鐘和AFIO時(shí)鐘)
2.配置嵌套向量中斷控制器NVIC
<1>選擇中斷優(yōu)先級(jí)組NVIC_PriorityGroup_0~NVIC_PriorityGroup_4。
調(diào)用函數(shù)NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)完成優(yōu)先級(jí)組設(shè)定。
<2>配置中斷源
配置中斷向量NVIC_IRQChannel;
配置中斷向量搶占優(yōu)先級(jí)NVIC_IRQChannelPreemptionPriority;
配置中斷向量響應(yīng)優(yōu)先級(jí)NVIC_IRQChannelSubPriority;
使能中斷NVIC_IRQChannelCmd; (ENABLE or DISABLE)
調(diào)用函數(shù) NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)完成配置。
3.GPIO口初始化
GPIO口選擇GPIO_Pin
外部中斷GPIO口為輸入模式,GPIO_Speed不用設(shè)置。
GPIO輸入模式GPIO_Mode
調(diào)用 GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 完成配置。
4.配置EXTI中斷線工作模式。
調(diào)用GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);設(shè)置EXTI輸入線。
配置輸入線EXTI_Line;
配置輸入線模式為中斷模式.EXTI_Mode = EXTI_Mode_Interrupt;
配置中斷觸發(fā)方式.EXTI_Trigger = EXTI_Trigger_Falling;
使能中斷.EXTI_LineCmd = ENABLE;
調(diào)用函數(shù) EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)。
評(píng)論