日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]硬件平臺:stm32F407Zet6軟件平臺:stm32cubeMX 4.7+MDK5.14電路連接:PE8-LED0、PE9-LED1、PE10-LED2、PE11-LED3、PE12-KEY0、PE13-KEY1、PE14-KEY2、PE15-KEY3第一步、使用stm32cubeMX創(chuàng)建工程,選擇相應(yīng)的芯片,配

硬件平臺:stm32F407Zet6

軟件平臺:stm32cubeMX 4.7+MDK5.14

電路連接:PE8-LED0、PE9-LED1、PE10-LED2、PE11-LED3、PE12-KEY0、PE13-KEY1、PE14-KEY2、PE15-KEY3

第一步、使用stm32cubeMX創(chuàng)建工程,選擇相應(yīng)的芯片,配置RCC、SYS、引腳和時鐘如下圖所示:





注意,由于按鍵上有上拉電阻,這里選擇中斷模式的時候,我們選擇下降沿觸發(fā)中斷。

第二步,配置輸出Keil工程



第三步、編寫程序下載驗(yàn)證

STM32CubeMx把代碼都生成了,查找函數(shù),分析調(diào)用的過程,添加應(yīng)用層代碼就行

首先在stm32f4xx_it.c文件中查找,所有的中斷函數(shù)都是放在這個文件中的,代碼如下:

voidEXTI15_10_IRQHandler(void)

{

HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_12);

HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);

HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_14);

HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_15);


}

可以看出,這四個按鍵的中斷觸發(fā)后首先會調(diào)用這個函數(shù),這個函數(shù)有調(diào)用HAL_GPIO_EXTI_IRQHandler,再看一下這個函數(shù)的原型

voidHAL_GPIO_EXTI_IRQHandler(uint16_tGPIO_Pin)

{

if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin)!=RESET)

{

__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);

HAL_GPIO_EXTI_Callback(GPIO_Pin);

}

}

__weakvoidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin)

{

}


根據(jù)程序可以知道,當(dāng)中斷發(fā)生的時候會調(diào)用HAL_GPIO_EXTI_Callback();程序中只給出了一個虛函數(shù),需要重新實(shí)現(xiàn)它,在main.c添加如下代碼,來重新實(shí)現(xiàn)這個函數(shù),來完成功能:

voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin)

{

switch(GPIO_Pin)

{

caseGPIO_PIN_12:LED0_Toggle();break;

caseGPIO_PIN_13:LED1_Toggle();break;

caseGPIO_PIN_14:LED2_Toggle();break;

caseGPIO_PIN_15:LED3_Toggle();break;

default:break;

}

}


這樣就實(shí)現(xiàn)了當(dāng)按鍵中斷發(fā)生的時候就反轉(zhuǎn)燈的狀態(tài)。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉