A1 STM32_HAL库函数 之 HAL系统驱动程序 -- A -- 所有函数的介绍及使用
- 1 HAL系统驱动程序预览
-
- 1.1 HAL_Init
- 1.2 HAL_DeInit
- 1.3 HAL_MspInit
- 1.4 HAL_MspDeInit
- 1.5 HAL_InitTick
- 1.6 HAL_IncTick
- 1.7 HAL_Delay
- 1.8 HAL_SuspendTick
- 1.9 HAL_ResumeTick
- 1.10 HAL_GetHalVersion
- 1.11 HAL_GetREVID
- 1.12 HAL_GetDEVID
- 1.13 HAL_DBGMCU_EnableDBGSleepMode
- 1.14 HAL_DBGMCU_DisableDBGSleepMode
- 1.15 HAL_DBGMCU_EnableDBGStopMode
- 1.16 HAL_DBGMCU_DisableDBGStopMode
- 1.17 HAL_DBGMCU_EnableDBGStandbyMode
- 1.18 HAL_DBGMCU_DisableDBGStandbyMode
- 1.19 HAL_GetUID
- 该文档修改记录:
- 总结
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系统驱动程序所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。