//中斷對映
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 中的中斷系...