按鍵點亮LED燈(中斷)

2021-08-20 04:38:19 字數 1818 閱讀 8106

//設定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);

//主函式		

int main(void)

}//中斷函式

中斷 按鍵控制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...

點亮LED燈(一)

想當初都是用彙編來編寫微控制器的程式,那滋味現在想來都是滿滿的回憶,還是用c語言寫起來爽快啊!用c寫微控制器程式,只需要引入標頭檔案即可,實際上該標頭檔案只是定義了特殊功能暫存器位址。為了今後使用方便,我們封裝乙個函式,用來開關led燈,通過引數來控制操作的p埠,並且引入掩碼來操作單個和多個bit位...

32中斷控制按鍵點亮LED

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