線0~15:對應外部io口的輸入中斷
線16:連線到pvd輸出
線17:連線到rtc鬧鐘事件
線18:連線到usb喚醒事件
void gpio_extilineconfig(uint8_t gpio_portsource, uint8_t gpio_pinsource)
例如:gpio_extilineconfig(gpio_portsourcegpioe,gpio_pinsource2);
void exti_init(exti_inittypedef* exti_initstruct);
例如:
以上中斷結構體的成員說明:exti_inittypedef exti_initstructure;
exti_initstructure.exti_line=exti_line4;
exti_initstructure.exti_mode = exti_mode_interrupt;
exti_initstructure.exti_trigger = exti_trigger_falling;
exti_initstructure.exti_linecmd = enable;
exti_init
(&exti_initstructure)
;//根據 exti_initstruct 中指定的
//引數初始化外設 exti 暫存器
exti_line:中斷線標號,取值範圍為__exti_line0~exti_line15__;
exti_mode:中斷模式,取值為__exti_mode_interrupt__(中斷)或__exti_mode_event__(事件);
exti_trigger:觸發方式,取值為__exti_trigger_falling__(下降沿)、exti_trigger_rising(上公升沿)或__exti_trigger_rising_falling__(任意電平);
exti_linecmd:使能中斷,取值__enable__;
## 6 個 stm32 io 口外部中斷函式:
判斷某個中斷線上的中斷是否發生:export exti0_irqhandler
export exti1_irqhandler
export exti2_irqhandler
export exti3_irqhandler
export exti4_irqhandler
export exti9_5_irqhandler //5~9 共用中斷函式
export exti15_10_irqhandle //10~15 共用中斷函式
itstatus exti_getitstatus(uint32_t exti_line);
清除某個中斷線上的中斷標誌位:
void exti_clearitpendingbit(uint32_t exti_line);
初始化io口為輸入;void
exti3_irqhandler
(void
)}
開啟afio時鐘;
設定io口與中斷線的對映關係;
初始化線上中斷,設定觸發條件等;
配置中斷分組(nvic),並使能中斷;
編寫中斷服務函式;
STM32中斷應用總結
本文為野火教程的學習筆記。中斷程式設計順序 可以參考參考手冊中的中斷向量表 巢狀向量中斷控制器,屬於核心外設,管理核心和片上所以外設相關的功能。其功能可以參考核心程式設計手冊 stm32f10 cortex m3程式設計手冊 英文版 的4.3節 也可從韌體庫中觀察。重要的有兩個庫檔案core cm3...
stm32中斷優先順序 STM32中斷系統
stm32 中斷非常強大,幾乎每個外設都可以產生中斷,因此這裡我們單獨使用一章來介紹它,為後面介紹外設中斷做鋪墊。學習本章可以參考 stm32f10x中文參考手冊 9 中斷和事件章節,cortex m3 權威指南 中文 chpt08 nvic與中斷控制章節。中斷概念 在學習 51 微控制器時,我們就...
STM32中斷巢狀
cortex m3核心支援256個中斷,其中包括16個核心中斷和240個外部中斷,且具有256級的可程式設計中斷設定,而stm32只用了其中一部分。stm32有84個中斷,包括16個核心中斷和68個可遮蔽中斷,具有16級可程式設計中斷優先順序。而我所使用的103系列只有60個可遮蔽中斷。優先順序的判...