STM32中斷總結

2021-10-06 17:51:26 字數 1727 閱讀 5370

線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);

void

exti3_irqhandler

(void

)}

初始化io口為輸入;

開啟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個可遮蔽中斷。優先順序的判...