本專欄記錄STM32開發(fā)各個(gè)功能的詳細(xì)過程,方便自己后續(xù)查看,當(dāng)然也供正在入門STM32單片機(jī)的兄弟們參考;
本小節(jié)的目標(biāo)是,系統(tǒng)主頻64 MHZ,采用高速外部晶振,通過KEY1 按鍵的PA0 引腳配置成中斷輸入引腳,PB9引腳配置成輸出,每次按鍵,PA0 引腳就會(huì)進(jìn)入一次外部中斷,每進(jìn)入一次中斷服務(wù)程序,改變PB9 輸出電平的高低,從而實(shí)現(xiàn)LED 燈的亮滅。
原理:通過KEY1按鍵的PA0引腳配置成中斷輸入引腳,PB9引腳配置成輸出,每次按鍵,PA0引腳就會(huì)進(jìn)入一次外部中斷,每進(jìn)入一次中斷服務(wù)程序,改變PB9輸出電平的高低,從而實(shí)現(xiàn)LED燈的亮滅。
涉及到的知識(shí):GPIO外部中斷輸入,配置GPIO為輸出引腳,STM32CubeMX的使用
我是將PB9引腳接的LED,所以本小節(jié)是以PB9為例記錄的,如果需要將其他引腳配置為L(zhǎng)ED燈,那將PB4改為其他對(duì)應(yīng)的引腳即可;
1 新建工程
點(diǎn)擊File 菜單下的New Project
選擇芯片型號(hào),如下圖所示先輸入芯片型號(hào),目前這邊輸入STM32G030C8,
雙擊選擇,就確定了芯片型號(hào),界面會(huì)變成如下圖所示
2 配置SWD下載引腳
如下圖所示,在Pinout&Configuration 欄目的System Core 下,先點(diǎn)擊SYS,再勾選Serial Wire 框,
配置好SWD 下載引腳設(shè)置:
3 配置GPIO輸出
按下圖 的1,2,3 步驟完成PB4 引腳配置成GPIO 輸出設(shè)置:
配置成功后如下圖所示:
4 配置RCC
如下圖,先點(diǎn)擊RCC,在HSE 配置中選擇Crystal/Ceramic Resonator 外部晶振設(shè)
5 設(shè)置系統(tǒng)主頻
如下圖, 先點(diǎn)擊Clock Configuration 欄目,按下圖的1,2,3,4 步驟完成系統(tǒng)64MHZ 主頻設(shè)置:
6 配置按鍵外部中斷
如下圖的1,2步驟完成PA0引腳配置成GPIO 外部中斷輸入設(shè)置:
如下圖1,2,3,4 步驟完成PA0 中斷觸發(fā)沿以及上下拉配置:
都配置完成后,如下圖所示:
7 外部中斷使能
如下圖 的1,2 步驟完成外部中斷使能配置,這樣PC13 引腳電平有變化就會(huì)產(chǎn)生中斷了。
8 生成工程
按照下圖的步驟,進(jìn)行項(xiàng)目配置,項(xiàng)目名稱和路徑設(shè)置等,生成項(xiàng)目的類型選擇STM32CubeIDE(我這里以STM32CubeIDE為例,如果你要試用keil5,那就選擇MDK-RAM,如果要使用makefile,就選擇Makefile),注意項(xiàng)目名稱和路徑不要有中文名;
最后全部設(shè)置完畢后點(diǎn)擊create code,生成項(xiàng)目代碼:
生成的工程如下圖所示:
9 增加代碼實(shí)現(xiàn)按鍵控制LED
增加代碼實(shí)現(xiàn)PA0 引腳進(jìn)入一次外部中斷,改變PB9 輸出電平的高低
點(diǎn)擊上一步生成的.project
文件,會(huì)打開STM32CubeIDE,然后在stm32g0xx.it.c中,找到外部中斷服務(wù)程序,如下圖所示:
然后,在外部中斷服務(wù)程序中調(diào)用的HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0)內(nèi)
部,找到HAL_GPIO_EXTI_Rising_Callback 這個(gè)上升沿回調(diào)函數(shù),如下圖所示:
加入PB9 翻轉(zhuǎn)輸出就可以:
HAL_GPIO_Togglepin(GPIOB,GPIO_PIN_9);//每次進(jìn)入一次外部中斷,實(shí)現(xiàn)PB9引腳翻轉(zhuǎn)輸出一次
至此,編譯并調(diào)試,即可成功案件控制LED開關(guān);文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-752091.html
當(dāng)程序開始后,LED燈是亮著的,按下按鍵,LED會(huì)變滅,再次按下按鍵,LED會(huì)點(diǎn)亮;文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-752091.html
到了這里,關(guān)于STM32G030C8T6:使用按鍵控制LED亮滅(外部中斷)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!