1. 程式人生 > >STM32CubeMX學習教程之一:GPIO輸出之跑馬燈

STM32CubeMX學習教程之一:GPIO輸出之跑馬燈

完整原始碼下載:

https://github.com/simonliu009/STM32CubeMX-GPIO-Control

軟體版本:

STM32CubeMX V4.25.0 
System Workbench V2.4
韌體庫版本:

STM32Cube FW_F1 V1.6.1

硬體:OneNet 麒麟座V2.3

在STM32CubeMX中新建專案,選擇正確的MCU型號


首先設定RCC和SYS,如下圖


然後根據板子實際情況設定時鐘(麒麟座外部晶振是12M,STM32F103x的最高主頻是72M),如下圖


GPIO設定 PC7, PC8, PA12和 PC10為GPIO_OUTPUT, (這是麒麟座V2.3的四個LED管腳),如下圖


GPIO配置如下:


Project - setting ,ToolChain/IDE選擇 SW4STM32,注意專案名稱這裡不能有空格,最好不要用中文。


勾選這裡


儲存以後,點選工作列的生成程式碼圖示


生成完畢以後在彈出的對話方塊點選"Open Project", System Workbench自動開啟Eclipse並匯入和打開了專案,然後展開專案樹,雙擊編輯main.c,在while(1)之後和/*USER CODE END WHILE*/之間加入程式碼如下:

  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
	  HAL_Delay(500);
	  HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
	  HAL_Delay(500);
	  HAL_GPIO_TogglePin(LED3_GPIO_Port,LED3_Pin);
	  HAL_Delay(500);
	  HAL_GPIO_TogglePin(LED4_GPIO_Port,LED4_Pin);
	  HAL_Delay(500);
  /* USER CODE END WHILE */

然後右鍵點選專案,選擇Properties, Run-Debug Settings, 點選右側的New,在彈出對話方塊中選擇Ac6 STM32 Debugging。


然後工作列上點選Run圖,當然會報錯的,原因請檢視另一篇我的部落格(https://blog.csdn.net/toopoo/article/details/79680323),所以需要右鍵點選  專案名Run.cfg ,給它改個名字,


然後右鍵點選專案樹裡面的專案名稱,選擇“Propeties”,然後在Run/Debug Settings-選擇專案名-Edit-Main-C/C++Application那裡點選“Search Project”,然後選擇出現的預設的elf檔案:


然後在Debugger-User Defined-Browse 那裡選擇你自己改名的配置檔案:


然後右鍵點選那個新的cfg檔案,選擇"Open With - Text Editor", 進行如下更改:

source [find interface/stlink.cfg] 更改為 source [find interface/stlink-v2.cfg]

reset_config srst_only srst_nogate connect_assert_srst 這一行改為 reset_config none 

然後再Run一下,就可以了。