STM32外部中斷配置步驟


配置外部中斷示例

1 初始化IO為輸入模式
參考
參考
2 開啟IO復用時鍾

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

3 映射IO到中斷線

GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource4);映射PE4到中斷線

4 初始化線上中斷,設置觸發方式

EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line=EXTI_Line4; //
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_Init(&EXTI_InitStructure);

5 配置中斷分組NVIC,使能中斷
//記得在主函數里設置中斷分組NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel=EXTI4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;

NVIC_Init();

編寫外部中斷函數EXTI_IRQHandler()

可能要進行必要的防抖處理

最后要手動清除相關寄存器的中斷標志位,否者下次不會進入中斷服務函數

EXTI_ClearITPendingBit(EXTI__Line4);

【參考】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM