1、HAL 固件驱动程序 API
1.1、如何使用此驱动程序
通用 HAL 驱动程序包含一组通用的 API,PPP 外设驱动程序可以使用这些 API 来开始使用 HAL。HAL 包含两个 API 类别: • 常见的 HAL API • 服务 HAL API
1.2、初始化和去初始化函数
本节提供的功能:
• 初始化闪存接口、NVIC 分配和初始时钟配置。它还会在需要超时时初始化 systick,并在启用时初始化备份域。
• 去初始化 HAL 的公共部分。
• 将时基源配置为具有 1ms 时基和专用的 Tick 中断优先级。
– 默认情况下,SysTick 计时器用作时基源,但用户最终可以实现他正确的时基源(例如通用计时器或其他时间源),请记住,时基持续时间应保持 1 毫秒,因为PPP_TIMEOUT_VALUEs是以毫秒为基础定义和处理的。
– 时基配置函数 HAL_InitTick()在程序开始时由 HAL_Init()自动调用,或在 clock 配置的任何时间由 HAL_RCC_ClockConfig()自动调用。
– 时基源配置为以固定的时间间隔生成中断。如果从外设 ISR 进程调用 HAL_Delay() ,则必须小心,Tick 中断行必须具有比外设中断更高的优先级(数值较低)。否则,调用方 ISR 进程将被阻止。
― 影响时基配置的函数被声明为 __weak 以便在用户文件中有其他实现的情况下进行覆盖。
本节包含以下 API:
HAL_Init()
HAL_DeInit()
HAL_MspInit()
HAL_MspDeInit()
HAL_InitTick()
1.3、HAL 控制功能
本节提供的功能:
• 提供以毫秒为单位的时钟周期值
• 提供以毫秒为单位的阻塞延迟
• 暂停时基源中断
• 恢复时基源中断
• 获取 HAL API 驱动程序版本
• 获取设备标识符
• 获取设备修订标识符
• 在睡眠模式下启用/禁用调试模块
• 在停止模式下启用/禁用调试模块
• 在待机模式下启用/禁用调试模块
本节包含以下 API:
HAL_IncTick()
HAL_GetTick()
HAL_GetTickPrio()
HAL_SetTickFreq()
HAL_GetTickFreq()
HAL_Delay()
HAL_SuspendTick()
HAL_ResumeTick()
HAL_GetHalVersion()
HAL_GetREVID()
HAL_GetDEVID()
HAL_GetUIDw0()
HAL_GetUIDw1()
HAL_GetUIDw2()
HAL_DBGMCU_EnableDBGSleepMode()
HAL_DBGMCU_DisableDBGSleepMode()
HAL_DBGMCU_EnableDBGStopMode()
HAL_DBGMCU_DisableDBGStopMode()
HAL_DBGMCU_EnableDBGStandbyMode()
HAL_DB