STM32 HAL庫學習(一) STM32CubeMX和TRUEStudio的使用

最近開始學習STM32的HAL庫,之前有用過std庫函數做STM32開發的基礎,因此學習HAL庫會更容易上手一些,但對於新的編程、下載工具以及HAL庫仍有許多不清晰的地方。經過初步的實驗實現點亮LED燈和串口的發送數據之後,對所用到的幾個工具以及HAL庫進行一個總結。

HAL —— 硬件抽象層(Hardware Abstraction Layer),是STM32最新推出的抽象層嵌入式軟件,支持中間件組件(如RTOS,USB,TCP / IP和圖形等),便於用戶實現移植。

固件庫框架:

 HAL Driver文件介紹:

stm32f0xx_hal.h/stm32f0xx_hal.c:HAL模塊驅動文件,初始化HAL配置、配置時基爲1ms

        —— HAL_Init(void),配置Flash預取、時基源(systick)、NVIC和底層配置

        —— HAL_DeInit(void),復位所有外設(APB1、APB2和AHB)

        —— 幾個weak函數 實現延時   HAL_IncTick、HAL_GetTick、HAL_Delay

stm32f0xx_hal_def.h:定義了HAL庫所需的一些公用的結構體、枚舉變量等

stm32f0xx_hal_conf.h:define了所需要用到的外設使能,例如如果用到ADC,就取消註釋“#define                                  HAL_ADC_MODULE_ENABLED”,則編譯時會將與ADC定義有關的頭文件和源文件加載進來

stm32f0xx_hal_msp.c:實現msp層的init和deinit

 

整個開發過程使用三個工具:STM32CubeMX、TRUEStudio和STM32CubeProgrammer

首先使用STM32CubeMX對選擇需要開發的芯片或者開發板,對應的芯片或開發板的管腳信息就會顯示出來

可以對管腳進行編輯,選擇配置模式 ,比如讓PC9配置成輸出,以及允許UART1的功能,之後就是生成代碼,在project/setting裏面設置工程名稱、使用的IDE(我這裏是TRUEStudio,也可以選擇MDK等其他IDE),設置需要加載的庫(Code Generator)等,點擊生成代碼即可生成含HAL庫的工程,用TRUEStudio打開進行編輯。

 由於在STM32CubeMX中我們已經編輯了設置,因此生成的代碼中已經完成了我們所需外設的初始化工作,具體都在生成的外設.c源文件(例如gpio.c、uart.c)中的init函數(例如MX_GPIO_Init(),MX_USART1_UART_Init())中實現,我們要做的只需要在相應的USER CODE區域中添加自己的代碼(其實就是調用HAL外設功能實現函數),如下:

 while (1)
  {

  /* USER CODE END WHILE */
	 HAL_Delay(1000);
	 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,GPIO_PIN_RESET);
	 HAL_UART_Transmit(&huart1,pData,12,1000);
	 HAL_Delay(1000);
	 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,GPIO_PIN_SET);
  /* USER CODE BEGIN 3 */

  }

點擊編譯後會生成.hex文件,TRUEStudio可以調試程序

打開STM32Cube Programmer,連接STLink(STM32F072開發板有板上STLINK,直接連USB就可以進行STLINK調試) ,加載.hex文件燒錄到開發板中即可。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章