//設定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個外部...