1.使能io時鐘,初始化io口
2.開啟syscfg時鐘,配置io口與中斷線的對映關係
rcc_apb2periphclockcmd(rcc_apb2periph_syscfg, enable);//開啟syscfg時鐘
syscfg_extilineconfig(exti_portsourcegpioa, exti_pinsource0);
3.外部中斷線結構體的初始化exti_init()
exti_inittypedef exti_initstructure;
exti_initstructure.exti_line=exti_line4; //exti_line0~exti_line15
exti_initstructure.exti_mode = exti_mode_interrupt; //中斷 exti_mode_interrupt 和事件 exti_mode_event
exti_initstructure.exti_trigger = exti_trigger_falling; //exti_trigger_rising exti_trigger_rising_falling
exti_initstructure.exti_linecmd = enable; //使能中斷線
exti_init(&exti_initstructure); //初始化外設 exti 暫存器
4.配置中斷分組(
nvic
),並使能中斷
nvic_inittypedef nvic_initstructure;
nvic_initstructure.nvic_irqchannel = exti2_irqn; //使能按鍵外部中斷通道
nvic_initstructure.nvic_irqchannelpreemptionpriority = 0x02; //搶占優先順序 2,
nvic_initstructure.nvic_irqchannelsubpriority = 0x02; //響應優先順序 2
nvic_initstructure.nvic_irqchannelcmd = enable; //使能外部中斷通道
nvic_init(&nvic_initstructure); //中斷優先順序分組初始化
5.中斷服務函式
void exti3_irqhandler(void)
}
STM32外部中斷
一 基本概念 arm coetex m3核心共支援256個中斷,其中16個內部中斷,240個外部中斷和可程式設計的256級中斷優先順序的設定。stm32目前支援的中斷共84個 16個內部 68個外部 還有16級可程式設計的中斷優先順序的設定,僅使用中斷優先順序設定8bit中的高4位。stm32可支援...
stm32外部中斷
外部中斷程式配置流程 rcc 時鐘配置 void rcc configuration void 時鐘配置 開啟各路時鐘 rcc apb2periphclockcmd rcc apb2periph usart1 rcc apb2periph gpioa rcc apb2periph afio,enab...
stm32外部中斷
好久沒玩微控制器了,最近閒著沒事想拿出來玩玩,沒想到乙個stm32的外部中斷讓我花費了兩天時間,好的的挫折啊!終於下午除錯成功,下面來說一下我的除錯之路吧!硬體就是兩個按鍵,四個led,led事共陽極接法,按鍵一端接地一端接gpio口,通過按鍵中斷控制led。程式寫好以後發現始終無法進入中斷,開始查...