采用中断模式编程并使用杜邦线模拟开关实现LED灯的亮灭
文章目錄
- 一、環(huán)境
- 二、使用stm32CubeMX創(chuàng)建文件
- 三、配置代碼
- 1、編譯、燒錄
- 2、效果
- 四、總結(jié)
- 五、參考資料
一、環(huán)境
- 硬件:stm32f103c8t6 核心板
- 軟件:STM32CubeMX 6.4.0
- 軟件:keil5 mdk
二、使用stm32CubeMX創(chuàng)建文件
創(chuàng)建新項(xiàng)目,搜索框找到自己的板子型號(hào)
時(shí)鐘RCC配置,將HSE選為外部晶振模式
管腳配置
選擇PA5作為LED燈的連接管腳,PB9 作為杜邦線(等價(jià)于開關(guān))的連接管腳;具體配置是:左擊PA5端口選擇GPIO_Output模式,PB9設(shè)為EXTI。
SYS設(shè)置,選擇Serial Wire模式。
GPIO管腳設(shè)置
點(diǎn)擊左側(cè)GPIO,PA5是高電平觸發(fā),所以不需要改變?cè)O(shè)置,別名設(shè)為**“A5_LED”,選中PB9,將GPIO Mode設(shè)置為下降沿觸發(fā)外部中斷;
將GPIO 設(shè)置為上拉電阻模式(Pull-up**);別名設(shè)置為B9_EXTI。
6.NVIC配置,
勾選下方選項(xiàng)表示支持中斷操作。
三、配置代碼
直接打開keil項(xiàng)目或者關(guān)閉STMCube再打開對(duì)應(yīng)文件。并在main.c文件的main函數(shù)外重寫一個(gè)回調(diào)函數(shù)。
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if( GPIO_Pin == B9_EXTI_Pin) //判斷中斷源 { HAL_GPIO_TogglePin(GPIOA, A5_LED_Pin); //翻轉(zhuǎn)led管腳 A1口的電平 } }1、編譯、燒錄
2、效果
VID_20221023_205054
四、總結(jié)
學(xué)習(xí)了中斷模式,并將其成功的應(yīng)用在了LED的亮滅上,又一次使用STMCube進(jìn)行HAL庫的設(shè)置,增加了對(duì)STMCube的熟練操作。
五、參考資料
https://blog.csdn.net/qq_47281915/article/details/121024427
總結(jié)
以上是生活随笔為你收集整理的采用中断模式编程并使用杜邦线模拟开关实现LED灯的亮灭的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用nginx实现内网地图瓦片代理
- 下一篇: sh_gamit报错:error rea