外部中斷的配置

2021-08-03 09:13:52 字數 1563 閱讀 7286

//中斷對映

exti_inittypedef exti_initstructure;

exti_initstructure.exti_line=exti_line4;//中斷線

exti_initstructure.exti_mode=exti_mode_interrupt;//(中斷模式(exti_mode_event))

//exti_mode_event

//外部事件模式是不產生中斷的。

//它可以用來喚醒cpu,或觸發adc轉換什麼的

exti_initstructure.exti_trigger=exti_trigger_falling;//下降沿觸發

//下降沿觸發 exti_trigger_falling,

//上公升沿觸發 exti_trigger_rising,

//或者任意電平(上公升沿和下降沿)觸發

//exti_trigger_rising_falling

exti_initstructure.exti_linecmd=enable;

exti_init(&exti_initstructure);

//設定nvic中斷優先順序

nvic_inittypedef nvic_initstructure;

nvic_initstructure.nvic_irqchannel=exti2_irqn;//使能外部中斷通道

nvic_initstructure.nvic_irqchannelpreemptionpriority=0x02;//搶占優先順序2

nvic.initstructure.nvic_irqchannelsubpriority=0x02;//子優先順序2

nvic_initstrucutre.nvic_irqchannelcmd=enable;//使能外部中斷通道

nvic_init(&nvic_initstructure);

//中斷線5-9共用中斷函式exti9_5_irqhandler

//中斷線10-15共用乙個中斷函式exti15_10_irqhandler

//中斷服務函式的格式

void extix_irqhandler(void)

}//使用io口外部中斷的一般步驟

1.初始化io口為輸入

2.開啟afio時鐘

1、 事件控制暫存器(afio_evcr) 

2、 復用重對映和除錯i/o 配置暫存器(afio_mapr) 

3、 外部中斷配置暫存器1(afio_exticr1) 

4、 外部中斷配置暫存器2(afio_exticr2) 

5、 外部中斷配置暫存器3(afio_exticr3) 

6、 外部中斷配置暫存器4(afio_exticr4)

//當需要配置afio暫存器的時候就需要開啟rcc_apbenr暫存器的afio時鐘

3.設定io口與中斷線的對映關係

4.初始化線上中斷,設定觸發條件等

5.配置中斷分組(nvic),並使能中斷

6.編寫中斷服務函式

stm32外部中斷的配置

void user exit init void exti0 irqhandler 需要在main函式中設定中斷優先組 nvic prioritygroupconfig nvic prioritygroup 1 void userexitinit void exti0 irqhandler 同樣也需...

STM32配置外部中斷

stm32 中斷非常強大,每個外設都可以產生中斷,核心水平上搭載了乙個異常響應系統,分為 系統異常和外部中斷。nvic相當於乙個中斷總開關,總開關開啟,相應的中斷才能使用。在講如何配置中斷優先順序之前,我們需要先了解下 nvic。nvic 是巢狀向量中斷控制 器,控制著整個晶元中斷相關的功能,是核心...

外部中斷的使用

stm32學習筆記 外部中斷的使用 中斷對於開發嵌入式系統來講的地位絕對是毋庸置疑的,在c51 微控制器時代,一共只有 5個中斷,其中 2個外部中斷,2個定時 計數器中斷和乙個串列埠中斷,但是在 stm32 中,中斷數量大大增加,而且中斷的設定也更加複雜。今天就將來 一下關於 stm32 中的中斷系...