A1 STM32_HAL库函数 之 HAL系统驱动程序所有函数的介绍及使用

发布于:2024-04-06 ⋅ 阅读:(173) ⋅ 点赞:(0)

1 HAL系统驱动程序预览

函数名 描述
HAL_Init() 初始化HAL库。这个函数会执行各种初始化步骤,为使用HAL库的其他函数做好准备。
HAL_DeInit() 反初始化HAL库。这个函数会撤销HAL_Init()函数所做的操作,将HAL库恢复到初始状态。
HAL_MspInit() 初始化MCU的低级别时钟、GPIO、DMA或其他外设相关的引脚或资源。在HAL库的函数中调用之前必须调用此函数以确保外设正确地初始化。
HAL_MspDeInit() 反初始化MCU的低级别时钟、GPIO、DMA或其他外设相关的引脚或资源。在不再需要HAL库的功能时调用此函数以释放相关资源。
HAL_InitTick() 初始化HAL的时基,例如系统滴答定时器。这是HAL库中与时间相关的功能的初始化。
HAL_IncTick() 递增HAL的时基计数器。这个函数通常由系统滴答定时器中断服务程序调用,用于更新HAL库中的时间基准。
HAL_GetTick() 获取当前的HAL时基计数器值。这个函数返回自系统初始化以来的毫秒数。
HAL_Delay() 在指定的毫秒数内延迟执行。这个函数会在循环中等待指定的时间,直到HAL的时基计数器达到指定的值。
HAL_SuspendTick() 暂停HAL的时基。当进入低功耗模式时,可以调用此函数以暂停时基,节省功耗。
HAL_ResumeTick() 恢复HAL的时基。当从低功耗模式唤醒时,可以调用此函数以恢复时基。
HAL_GetHalVersion() 获取HAL库的版本号。
HAL_GetREVID() 获取硬件的修订版本号。
HAL_GetDEVID() 获取硬件的设备标识符。
HAL_DBGMCU_EnableDBGSleepMode() 启用调试模块在睡眠模式下工作。
HAL_DBGMCU_DisableDBGSleepMode() 禁用调试模块在睡眠模式下工作。
HAL_DBGMCU_EnableDBGStopMode() 启用调试模块在停止模式下工作。
HAL_DBGMCU_DisableDBGStopMode() 禁用调试模块在停止模式下工作。
HAL_DBGMCU_EnableDBGStandbyMode() 启用调试模块在待机模式下工作。
HAL_DBGMCU_DisableDBGStandbyMode() 禁用调试模块在待机模式下工作。
HAL_GetUID() 获取设备的唯一标识符(UID)。

使用模板:

#include "stm32f4xx_hal.h"

int main(void) {
    // HAL初始化
    HAL_Init();
    
    // 初始化MCU外设相关的引脚或资源
    HAL_MspInit();
    
    // 初始化HAL的时基
    HAL_InitTick();
    
    // 递增时基计数器
    HAL_IncTick();
    
    // 获取当前时基计数器值
    uint32_t currentTick = HAL_GetTick();
    
    // 在指定的毫秒数内延迟执行
    HAL_Delay(1000); // 1秒延迟
    
    // 暂停时基
    HAL_SuspendTick();
    
    // 进行其他操作...
    
    // 恢复时基
    HAL_ResumeTick();
    
    // 获取HAL库版本号
    uint32_t halVersion = HAL_GetHalVersion();
    
    // 获取硬件修订版本号
    uint32_t revId = HAL_GetREVID();
    
    // 获取硬件设备标识符
    uint32_t devId = HAL_GetDEVID();
    
    // 启用调试模块在睡眠模式下工作
    HAL_DBGMCU_EnableDBGSleepMode();
    
    // 禁用调试模块在停止模式下工作
    HAL_DBGMCU_DisableDBGStopMode();
    
    // 启用调试模块在待机模式下工作
    HAL_DBGMCU_EnableDBGStandbyMode();
    
    // 获取设备的唯一标识符(UID)
    uint32_t deviceUID[3];
    HAL_GetUID(deviceUID);
    
    // HAL反初始化
    HAL_DeInit();
    
    // 反初始化MCU外设相关的引脚或资源
    HAL_MspDeInit();
    
    return 0;
}

1.1 HAL_Init

函数名 HAL_Init
函数原形 void HAL_Init(void)
功能描述 初始化 HAL 库
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_Init();

1.2 HAL_DeInit

函数名 HAL_DeInit
函数原形 void HAL_DeInit(void)
功能描述 反初始化 HAL 库
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_DeInit();

1.3 HAL_MspInit

函数名 HAL_MspInit
函数原形 void HAL_MspInit(void)
功能描述 初始化 HAL 库的底层硬件抽象层(HAL)
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_MspInit();

1.4 HAL_MspDeInit

函数名 HAL_MspDeInit
函数原形 void HAL_MspDeInit(void)
功能描述 反初始化 HAL 库的底层硬件抽象层(HAL)
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_MspDeInit();

1.5 HAL_InitTick

函数名 HAL_InitTick
函数原形 HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
功能描述 初始化 HAL 库的定时器中断和 SysTick 定时器
输入参数 TickPriority:SysTick 定时器的优先级
输出参数
返回值 HAL_StatusTypeDef:HAL_OK 或者 HAL_ERROR
先决条件
被调用函数

例:

HAL_InitTick(0);

1.6 HAL_IncTick

函数名 HAL_IncTick
函数原形 void HAL_IncTick(void)
功能描述 增加 HAL 系统定时器的计数
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_IncTick();

1.7 HAL_Delay

函数名 HAL_Delay
函数原形 void HAL_Delay(uint32_t Delay)
功能描述 延迟指定的毫秒数
输入参数 Delay:要延迟的毫秒数
输出参数
返回值
先决条件
被调用函数

例:

HAL_Delay(1000); // 延迟1秒钟

1.8 HAL_SuspendTick

函数名 HAL_SuspendTick
函数原形 void HAL_SuspendTick(void)
功能描述 暂停 HAL 系统定时器的计数
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_SuspendTick();

1.9 HAL_ResumeTick

函数名 HAL_ResumeTick
函数原形 void HAL_ResumeTick(void)
功能描述 恢复 HAL 系统定时器的计数
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_ResumeTick();

1.10 HAL_GetHalVersion

函数名 HAL_GetHalVersion
函数原形 uint32_t HAL_GetHalVersion(void)
功能描述 获取 HAL 库的版本号
输入参数
输出参数
返回值 HAL 库的版本号
先决条件
被调用函数

例:

uint32_t version = HAL_GetHalVersion();

1.11 HAL_GetREVID

函数名 HAL_GetREVID
函数原形 uint32_t HAL_GetREVID(void)
功能描述 获取芯片的修订版本号
输入参数
输出参数
返回值 芯片的修订版本号
先决条件
被调用函数

例:

uint32_t rev_id = HAL_GetREVID();

1.12 HAL_GetDEVID

函数名 HAL_GetDEVID
函数原形 uint32_t HAL_GetDEVID(void)
功能描述 获取芯片的设备标识号
输入参数
输出参数
返回值 芯片的设备标识号
先决条件
被调用函数

例:

uint32_t dev_id = HAL_GetDEVID();

1.13 HAL_DBGMCU_EnableDBGSleepMode

函数名 HAL_DBGMCU_EnableDBGSleepMode
函数原形 void HAL_DBGMCU_EnableDBGSleepMode(void)
功能描述 启用调试模式下的睡眠模式
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_DBGMCU_EnableDBGSleepMode();

1.14 HAL_DBGMCU_DisableDBGSleepMode

函数名 HAL_DBGMCU_DisableDBGSleepMode
函数原形 void HAL_DBGMCU_DisableDBGSleepMode(void)
功能描述 禁用调试模式下的睡眠模式
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_DBGMCU_DisableDBGSleepMode();

1.15 HAL_DBGMCU_EnableDBGStopMode

函数名 HAL_DBGMCU_EnableDBGStopMode
函数原形 void HAL_DBGMCU_EnableDBGStopMode(void)
功能描述 启用调试模式下的停止模式
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_DBGMCU_EnableDBGStopMode();

1.16 HAL_DBGMCU_DisableDBGStopMode

函数名 HAL_DBGMCU_DisableDBGStopMode
函数原形 void HAL_DBGMCU_DisableDBGStopMode(void)
功能描述 禁用调试模式下的停止模式
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_DBGMCU_DisableDBGStopMode();

1.17 HAL_DBGMCU_EnableDBGStandbyMode

函数名 HAL_DBGMCU_EnableDBGStandbyMode
函数原形 void HAL_DBGMCU_EnableDBGStandbyMode(void)
功能描述 启用调试模式下的待机模式
输入参数
输出参数
返回值
先决条件
被调用函数

例:

HAL_DBGMCU_EnableDBGStandbyMode();

1.18 HAL_DBGMCU_DisableDBGStandbyMode

函数名 HAL_DBGMCU_DisableDBGStandbyMode
函数原形 void HAL_DBGMCU_DisableDBGStandbyMode(void)
功能描述 禁用调试模式下的待机模式

| 输入参数 | 无 |
| 输出参数 | 无 |
| 返回值 | 无 |
| 先决条件 | 无 |
| 被调用函数 | 无 |

例:

HAL_DBGMCU_DisableDBGStandbyMode();

1.19 HAL_GetUID

函数名 HAL_GetUID
函数原形 void HAL_GetUID(uint32_t *UID)
功能描述 获取芯片的唯一标识号
输入参数 UID:用于存储芯片唯一标识号的数组
输出参数
返回值
先决条件
被调用函数

例:

uint32_t uid[3];
HAL_GetUID(uid);

该文档修改记录:

修改时间 修改说明
2024年4月5日 第一次发布,介绍了 A1 STM32_HAL库函数 之 HAL系统驱动程序所有函数的介绍及使用

总结

以上就是A1 STM32_HAL库函数 之 HAL系统驱动程序所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。


网站公告

今日签到

点亮在社区的每一天
去签到