STM32 HAL庫描述

官方下載的HAL庫內容包括:STM32Cube HAL庫文件、中間件(RTOS、USB、TCP/IP、Graphics)、一系列的外設應用例程。

HAL驅動建立在一套通用的體系結構之上,主要提供一套API接口以便更好地與上層應用進行通信;HAL驅動函數嚴格按照ANSI-C標準編寫,因此可獨立於開發工具。

HAL庫的特點主要有:

1、抽象於硬件之上的結構體賦值初始化操作,基於功能的分類

2、三種編程模式 —— 輪詢方式、中斷方式、DMA方式

3、可供用戶進行重載的API函數

4、用於輪詢方式的系統超時設置

5、完善的對象鎖定機制,提供安全的硬件資源訪問

HAL驅動層中的回調函數主要有三種類型:

  • 外設的Init和Deinit回調函數 —— HAL_PPPMspInit(),HAL_PPP_MspDeInit()
  • 處理完成回調函數 —— HAL_PPP_ProcessCpltCallback
  • 發生錯誤時的處理回調函數 —— HAL_PPP_ErrorCallback

HAL驅動文件:

文件 描述
stm32f0xx_hal_ppp.c/h 外設驅動文件
stm32f0xx_hal_ppp_ex.c/h 外設模塊擴展驅動文件
stm32f0xx_hal.c/h hal初始化、DBGMCU、重映射、系統延時
stm32f0xx_hal_msp_template.c/h 可複製到用戶應用文件夾,MSP Init和Deinit(主要回調函數)
stm32f0xx_hal_def.h 公用的HAL資源,如結構體、枚舉變量等

用戶應用文件:

文件 描述
system_stm32f0xx.c 包含SystemInit函數,重定位中斷向量在SRAM中(如果需要),但不完成系統時鐘的配置(在HAL文件完成)
startup_stm32f0xx.s 包含Reset Handler處理函數、堆棧的初始化等
stm32f0xx_hal_msp.c MSP的初始化和復位
stm32f0xx_flash.icf 鏈接工具,可選
stm32f0xx_hal_conf.h 允許用戶對其進行配置以選擇特定的外設
stm32f0xx_it.c/h 外設中斷服務函數,其中每個PPP_IRQHandler裏都調用了相應的HAL_PPP_IRQHandler

HAL中三種主要的數據結構是:外設句柄、初始化和配置結構體和具體

外設句柄結構體 PPP_HandleTypeDef *handle,主要特點有:

  •  1、支持多實例、同一結構體內部可共享資源
  •  2、存儲/管理全局變量,減少外部全局變量的使用,增加程序的穩定性
  •  3、當外設可以使用DMA通道時,相應的DMA接口句柄會添加到PPP_HandlerTypeDef中
  •  4、對於通用的外設,如GPIO、NVIC、SYSTick等,沒有實例句柄

HAL 庫文件之間的關係:

 

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