STM32 外部中斷 待完善

2021-08-15 23:19:04 字數 1298 閱讀 3214

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。程式寫好以後發現始終無法進入中斷,開始查...