一、創(chuàng)建項(xiàng)目
背景:
用stm32F103核心板的GPIOA端一管腳接一個(gè)LED,GPIOB端口一引腳接一個(gè)開(kāi)關(guān)(用杜邦線模擬代替)。采用中斷模式編程,當(dāng)開(kāi)關(guān)接高電平時(shí),LED亮燈;接低電平時(shí),LED滅燈。
1、選好自己需要的開(kāi)發(fā)板(這里使用的STM32F103C8T6的開(kāi)發(fā)板)
2、引腳配置
A4輸出控制燈的亮滅,設(shè)置為GPIO_Output
A1持續(xù)輸出高電平,設(shè)置同上
A7持續(xù)輸出低電平,設(shè)置同上
C13個(gè)人習(xí)慣開(kāi)啟做測(cè)試用,設(shè)置同上
B5模擬開(kāi)關(guān),設(shè)置為GPIO_EXTI5
3、EXIT配置
勾選上如圖所示的選項(xiàng)
4、配置SYS
將其中的Debug設(shè)置為“Serial Wire”
5、配置GPIO
把A1配置為高電平、A7配置為低電平
把B5中斷配置為上升沿和下降沿都觸發(fā)
這里將PA4取別名為L(zhǎng)ED_A4,將PB5取別名為SWITCH
6、項(xiàng)目配置
二、Keil配置
1、配置
2、自己編寫(xiě)函數(shù)
在stm32f1xx_hal_gpio.c中找到HAL_GPIO_EXTI_Callback函數(shù)。該函數(shù)是給用戶自己重寫(xiě)的,可以在這里根據(jù)不同的中斷來(lái)執(zhí)行不同的處理。在這里我們需要根據(jù)B5的不同中斷來(lái)實(shí)現(xiàn)A4的亮滅。
并將如下代碼插入到函數(shù)中
if(GPIO_Pin == SWITCH_Pin)
{
//獲取B5的電位
GPIO_PinState pinState = HAL_GPIO_ReadPin(SWITCH_GPIO_Port,SWITCH_Pin);
//低電位
if(pinState==GPIO_PIN_RESET)
HAL_GPIO_WritePin(LED_A4_GPIO_Port,LED_A4_Pin,GPIO_PIN_RESET);//把A4變?yōu)榈碗娢?/span>
//高電位
else
HAL_GPIO_WritePin(LED_A4_GPIO_Port,LED_A4_Pin,GPIO_PIN_SET);//把A4變?yōu)楦唠娢?/span>
}
3、編譯生成.hex文件
4、燒錄程序
選擇剛才編譯生成的.hex文件,并將其燒錄到芯片中文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-489152.html
三、結(jié)果
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-489152.html
到了這里,關(guān)于嵌入式開(kāi)發(fā)控制LED燈的亮滅的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!