好了,上一章我們主要講解了一下STM32CubeMx如何創建工程。這一章我們主要是講解使用該軟件去配置初始化GPIO。
一、準備工作
1、使用我們第一章配置好工程文件。如圖
2、準備你需要編程硬件對應的原理圖或者PCB,將你需要點亮的燈對應到IO口上去。如圖
可知我們需要點亮GPIO PB8對應的LED。
3、準備好硬件。
二、具體操作
1、打開STM32CubeMx工程軟件配置所需要的GPIO。在Pinout欄目下如圖所示
將PB8配置爲Gpio_Ouput模式,意味着PB8這個引腳是作爲輸出使用。如果設置成Gpio_Input則爲輸入模式。
2、在Configuration欄目下配置該IO口的功能。
點擊Systems下的GPIO進入配置界面。如圖所示
①點擊我們配置PB8口,下面彈出來五個欄目。
②設置GPIO優先級。
③設置GPIO輸出模式(開漏/推輓)。
④設置GPIO上下拉模式(這裏默認是下拉模式)。
⑤設置GPIO速度。
⑥設置當前PB8 GPIO的宏定義。
⑦點擊OK設置完成。
3、生成工程
點擊Project菜單欄選擇Generate code,工程生成完畢。
4、驗證工程
打開編譯工程,在while(1)裏面添加LED閃爍程序。代碼如下
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay(1000);
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
}
/* USER CODE END 3 */
}
這樣可以實現一個簡單的GPIO輸出控制。
如果之前設置的爲輸入模式這裏面代碼和輸出就有區別
輸入模式我們需要讀取GPIO狀態,使用的HAL庫函數爲HAL_GPIO_ReadPin(LED1_GPIO_Port, LED1_Pin);
如有什麼不懂聯繫加QQ羣:1063618791歡迎大家學習交流!