32中斷控制按鍵點亮LED

2021-08-20 04:42:31 字數 1925 閱讀 2491

//設定pb11為下降沿觸發,初始化中斷模式

gpio_inittypedef gpio_initstructure;  

exti_inittypedef exti_initstructure;  

nvic_inittypedef nvic_initstructure;  

//配置管腳時鐘和復用時鐘

rcc_apb2periphclockcmd(rcc_apb2periph_gpiob | rcc_apb2periph_afio,enable);  

//配置gpio口為上拉輸入

gpio_initstructure.gpio_pin = gpio_pin_11 | gpio_pin_10;  

gpio_initstructure.gpio_speed = gpio_speed_50mhz;  

gpio_initstructure.gpio_mode = gpio_mode_ipu;  

gpio_init(gpiob, &gpio_initstructure);  

//配置gpio口為外部中斷模式

gpio_extilineconfig(gpio_portsourcegpiob,gpio_pinsource11);  

gpio_extilineconfig(gpio_portsourcegpiob,gpio_pinsource10);  

//配置exti的中斷模式

exti_initstructure.exti_line = exti_line11;  

exti_initstructure.exti_mode = exti_mode_interrupt;  

exti_initstructure.exti_trigger = exti_trigger_falling;  

exti_initstructure.exti_linecmd = enable;  

exti_init(&exti_initstructure);   

exti_initstructure.exti_line = exti_line10;  

exti_initstructure.exti_mode = exti_mode_interrupt;  

exti_initstructure.exti_trigger = exti_trigger_falling;  

exti_initstructure.exti_linecmd = enable;  

exti_init(&exti_initstructure);   

nvic_initstructure.nvic_irqchannel = exti15_10_irqn;  

nvic_initstructure.nvic_irqchannelpreemptionpriority = 0;  

nvic_initstructure.nvic_irqchannelsubpriority = 0;  

nvic_initstructure.nvic_irqchannelcmd = enable;  

nvic_init(&nvic_initstructure);  

[cpp] 

view plain

copy

//主函式       

intmain(

void

)    

}  //中斷函式

void

exti15_10_irqhandler(

void

)    

if(exti_getflagstatus(exti_line11) == 1)  

}  效果圖:

按鍵點亮LED燈(中斷)

設定pb11為下降沿觸發,初始化中斷模式 gpio inittypedef gpio initstructure exti inittypedef exti initstructure nvic inittypedef nvic initstructure 配置管腳時鐘和復用時鐘 rcc apb2p...

中斷 按鍵控制LED燈

xjp的資源 初始化函式 init.c 進行一些初始化 include s3c24xx.h led1,led2,led4對應gpf4 gpf5 gpf6 define gpf4 out 1 define gpf5 out 1 define gpf6 out 1 define gpf4 msk 3 d...

STM32外部中斷(實現按鍵控制LED)

中斷 這個概念,指的是在微控制器執行過程中,在指定條件發生時,停下當前所有工作,去執行中斷處理函式內的內容。就像我們在教室上課時,突然 了,不出意外的話我們都需要停下手中學習任務,去進行一系列的避險動作。這一節我們通過中斷的方式,完成通過按鍵控制led亮滅的操作。stm32的中斷控制器支援19個外部...