STM32CubeMx GPIO輸入輸出實驗
一、實驗說明
實驗平臺:STM32F103RCT6 (正點原子mini板)
實驗內容:使用GPIO 點亮LED ,使用按鍵控制LED燈。
使用IO口:led1 PD2,LED2 PA8 .(低電平點亮) 。按鍵 PC5 按下輸入低電平。
二、實驗操作
1、基礎配置
1)sys中,選好調試方式,例如jtag-4pin。
2)RCC時鐘,晶振選擇。
3)時鐘樹配置。
4)中斷分組配置。
以上步驟可以參考串口中斷實驗。
2、外設配置—IO口配置
1)IO口基本配置。
如圖配置PD2、PA8 爲輸出模式。
PC5 接的是按鍵所以配置爲輸入模式。
兩個IO口接LED,配置爲上圖的參數。
PC5配置爲輸入模式,上拉。(因爲PC5一端接GND,一端接IO口)
2)、生成代碼
注意工程配置,和.c/.h 的添加。(串口中斷實驗有說明)
3)、編寫代碼
在gpio.c中可以看到如下代碼,就是GPIO的配置。
然後我們在主函數中編寫控制代碼。
使用HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET); 這個函數就可以操作IO口,讓IO口輸出高電平和低電平。
該函數有三個參數,
第一個是那組IO。
第二個是那個IO口。
第三個是輸出電平狀態,GPIO_PIN_RESET爲低,GPIO_PIN_SET爲高。
下一步讀取按鍵,控制LED(PA8),按下燈亮,擡起燈滅。
使用,HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_5) 函數判斷io口的輸入狀態。
兩個參數,一個是那組IO,另一個是那個IO口。
該函數會返回讀取到輸入的電平狀態。
HAL_Delay(),是HAL 庫提供的ms級延時函數。這裏起消抖作用。
下載驗證即可。