STM32CubeMx GPIO口輸出
????????stm32用hal庫建立工程通用且方便,用的人也越來越多了,正點原子之前也有hal庫的書還有例程,但是正點原子hal庫的例程是以調(diào)用hal庫的形式制作的,沒有直接從cube的建立工程開始做起,并且在使用的過程中有根據(jù)項目更改過庫函數(shù)。網(wǎng)上STM32Cube的教程也大多是v4、v5版本,和v6相比很多界面和功能有所變化,所以寫了這個。文中部分內(nèi)容參考正點原子開發(fā)指南和網(wǎng)上的文章教程。
工作環(huán)境:
STM32CubeMXv6
Keil5
????????如果僅僅使用GPIO口執(zhí)行輸入輸出的操作,那么RCC時鐘,晶振,時鐘樹和中斷都是可以不用配置使用默認(rèn)的,建立工程后左鍵點擊需要打開的IO口后選擇GPIO_OUTPUT或GPIO_INPUT。

? ? ????然后打開左側(cè)的下拉框System Core,點擊GPIO選項;

? ? ????點擊需要配置的IO口,配置Configuration中的選項:
GPIO_OUTPUT選項
????????????GPIO output level:GPIO初始輸出電平
????????????GPIO mode:GPIO模式(開漏輸出或推挽輸出)
????????????GPIO Pull-up/Pull-down:GPIO上拉/下拉電阻
????????????Maximum output speed:輸出速率
????????????User Label:用戶命名(選填)
GPIO_INPUT選項
????????????GPIO?mode:GPIO模式
????????????GPIO?Pull-up/Pull-down:GPIO上拉/下拉電阻
????????????User Label:用戶命名(選填)


????點擊Project Manager頁面,輸入工程名和工程位置,選擇工具鏈和IDE為MDK-ARM,版本為5.27;

打開左側(cè)Code Generater菜單勾選Generate peripheral initialization as a pair of'.c/.h'file per peripheral;

最后點擊右上角的GENERATE CODE按鈕后生成代碼。
????生成代碼后打開工程文件夾,用Keil5打開工程。

????????編譯,運行

????????此時已經(jīng)可以點亮小燈了。
? ??????HAL_GPIO_WritePin()函數(shù)可以控制IO空輸出高電平
????????HAL_Delay()函數(shù)可以延時,單位ms
????????通過在主函數(shù)的while循環(huán)內(nèi)組合兩者,連接小燈,可以達到小燈閃爍的結(jié)果
????此外可以通過反轉(zhuǎn)電平的方式達到相同效果
???????HAL_GPIO_ReadPin()函數(shù)可以讀取IO口電平以進行判斷
????????

參考資料:
STM32F7開發(fā)指南-HAL庫版本_V1.1
STM32CubeMx GPIO輸入輸出實驗https://blog.csdn.net/qq_33728095/article/details/97148029