STM32外部中斷

2021-08-07 09:45:32 字數 1804 閱讀 2010

外部中斷常用庫函式:

①void

gpio_extilineconfig

(uint8_t

gpio_portsource

, uint8_t

gpio_pinsource

);//

設定io

口與中斷線的對映關係

exp: 

gpio_extilineconfig

(gpio_portsourcegpioe,gpio_pinsource2);

②void

exti_init

(exti_inittypedef

* exti_initstruct);

//初始化中斷線:觸發方式等

③itstatus

exti_getitstatus

(uint32_t

exti_line

);//

判斷中斷線中斷狀態,是否發生

④void

exti_clearitpendingbit

(uint32_t

exti_line

);//

清除中斷線上的中斷標誌位

exti_init

函式:

void

exti_init

(exti_inittypedef

*exti_initstruct);

typedef 

struct

exti_inittypedef

exti_initstructure.exti_line

=exti_line2; 

exti_initstructure.exti_mode

= exti_mode_interrupt

exti_initstructure.exti_trigger

= exti_trigger_falling;

exti_initstructure.exti_linecmd

= enable;

exti_init

(&exti_initstructure);

外部中斷的一般配置步驟:

初始化io口為輸入。

gpio_init

();

②開啟io口復用時鐘。

rcc_apb2periphclockcmd(rcc_apb2periph_afio,enable); ③

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

void

gpio_extilineconfig

();

④ 初始化線上中斷,設定觸發條件等。

exti_init

();

⑤ 配置中斷分組(

nvic

),並使能中斷。

nvic_init

();

⑥  

編寫中斷服務函式。

extix_irqhandler

();

⑦ 清除中斷標誌位

exti_clearitpendingbit

();

以下提供的只是部分**:

void extix_init(void)

void exti4_irqhandler(void)

exti_clearitpendingbit(exti_line4);

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