STM32 HAL库常见函数汇总

前提要求:具备基本电路知识基础。

还在更新中。

本文包含了常见的STM32 HAL库中基本操作函数的整理。

为方便查阅,在每个模块前包含表格,包括全部该模块的封装函数内容,可点击跳转详细查看其用法。

HAL GPIO Generic Driver

函数名 功能
HAL_GPIO_Init 初始化
HAL_GPIO_DeInit 反初始化
HAL_GPIO_ReadPin 读取引脚状态
HAL_GPIO_WritePin 输出引脚
HAL_GPIO_TogglePin 反转引脚
HAL_GPIO_LockPin 锁引脚
HAL_GPIO_EXTI_IRQHandler 外部中断请求
HAL_GPIO_EXTI_Callback 外部中断回调

HAL TIM Generic Driver

函数名 功能
HAL_TIM_Base_Init
HAL_TIM_Base_DeInit
HAL_TIM_Base_Start
HAL_TIM_Base_Stop
HAL_TIM_Base_Start_IT
HAL_TIM_Base_Stop_IT
HAL_TIM_Base_Start_DMA
HAL_TIM_Base_Stop_DMA
HAL_TIM_PWM_Init
HAL_TIM_PWM_DeInit
HAL_TIM_PWM_Start
HAL_TIM_PWM_Stop
HAL_TIM_PWM_Start_IT
HAL_TIM_PWM_Stop_IT

HAL_GPIO_Init

函数名称

1
void HAL_GPIO_Init (GPIO_TypeDef * GPIOx, GPIO_InitTypeDef * GPIO_Init)

函数描述

根据 GPIO_Init 中指定的参数初始化 GPIOx 外设。

参数

  • GPIOx: x 可以是 (A..I)选择
  • GPIO_Init:指向包含指定 GPIO 外设配置信息的 GPIO_InitTypeDef 结构的指针。
  • 返回值:无。

HAL_GPIO_DeInit

函数名称

1
void HAL_GPIO_DeInit (GPIO_TypeDef * GPIOx, uint32_t GPIO_Pin)

函数描述

将 GPIOx 外设寄存器取消初始化为其默认复位值。

参数

  • GPIOx:其中 x 可以是 (A..I) 选择 GPIO 外设。
  • GPIO_Pin:指定要写入的端口位。此参数可以是其中 x 可以是 (0..15) 的GPIO_PIN_x之一。
  • 返回值: 无。

HAL_GPIO_ReadPin

函数名称

1
GPIO_PinState HAL_GPIO_ReadPin (GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin)

函数说明

读取指定的输入端口引脚。

参数

  • GPIOx:其中 x 可以是 (A..I) 选择 GPIO 外设。
  • GPIO_Pin:指定要读取的端口位。此参数可以GPIO_PIN_x,其中 x 可以是 (0..15)。
  • 返回值:输入端口引脚值。

示例

1
2
3
4
5
// 读取 PB11 状态,若为低电平,执行语句。
if (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_11) == GPIO_PIN_RESET)
{
// 语句块
}

HAL_GPIO_WritePin

函数名称

1
void HAL_GPIO_WritePin (GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)

函数说明

设置或清除选定的数据端口位。

参数

  • GPIOx:其中 x 可以是 (A..I) 为所有 STM32F2XX 设备选择 GPIO 外设
  • GPIO_Pin:指定要写入的端口位。此参数可以是其中 x 可以是 (0..15) 的GPIO_PIN_x之一。
  • PinState:指定要写入所选位的值。此参数可以是GPIO_PinState枚举值之一:
    • GPIO_PIN_RESET:清除端口引脚
    • GPIO_PIN_SET:设置端口引脚
  • 返回值:无。

示例

1
2
// 给 PB12 高电平
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);

注释
此功能使用GPIOx_BSRR寄存器来允许原子读取/修改访问。这样,在 read 和 modify 访问之间就不存在 IRQ 的风险。

HAL_GPIO_TogglePin

函数名称

1
void HAL_GPIO_TogglePin (GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin) 

功能说明

切换指定的 GPIO 引脚。

参数

  • GPIOx:其中 x 可以是 (A..I) 选择 GPIO 外设。
  • GPIO_Pin:指定要切换的引脚。
  • 返回值:无。

示例

1
2
// 反转 PB12 电平
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_12);

HAL_GPIO_LockPin

函数名称

1
HAL_StatusTypeDef HAL_GPIO_LockPin (GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin)
  • 函数描述 锁定 GPIO 引脚配置寄存器。

参数

  • GPIOx:其中 x 可以是 (A..I) 为STM32F2XX系列选择 GPIO 外设
  • GPIO_Pin:指定要锁定的端口位。此参数可以是 GPIO_PIN_x 的任意组合,其中 x 可以是 (0..15)。
  • 返回值:无。

注释

  • 锁定的寄存器是 GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR、GPIOx_AFRL 和 GPIOx_AFRH。
  • 在下次重置之前,不能再修改锁定的 GPIO 引脚的配置。

HAL_GPIO_EXTI_IRQHandler

函数名称

1
void HAL_GPIO_EXTI_IRQHandler (uint16_t GPIO_Pin)

函数说明

该函数处理 EXTI 中断请求。

参数

  • GPIO_Pin:指定引脚连接的 EXTI 线
  • 返回值:无。

HAL_GPIO_EXTI_Callback

函数名称

1
void HAL_GPIO_EXTI_Callback (uint16_t GPIO_Pin)

函数描述 EXTI 线检测回调。

参数

  • GPIO_Pin:指定引脚连接的 EXTI 行
  • 返回值:无。

HAL_TIM_Base_Init

函数名称

1
HAL_StatusTypeDef HAL_TIM_Base_Init (TIM_HandleTypeDef * htim) 

函数说明

根据TIM_HandleTypeDef中指定的参数初始化 TIM 时基单位,并初始化关联的句柄。

参数

  • htim:TIM 基本手柄

返回值

  • HAL:状态

备注 • 从中心对齐计数器模式切换到边缘计数器模式(或反向)需要定时器重置,以避免由于中心对齐模式下 DIR 位只读而导致的意外方向。
例如:在 HAL_TIM_Base_Init() 之前调用 HAL_TIM_Base_DeInit()

HAL_TIM_Base_DeInit

函数名称

1
HAL_StatusTypeDef HAL_TIM_Base_DeInit (TIM_HandleTypeDef * htim) 

函数描述

取消初始化 TIM Base 外围设备。

参数

  • htim:TIM 基本手柄

返回值

  • HAL:状态

HAL_TIM_Base_Start

函数名称

1
HAL_StatusTypeDef HAL_TIM_Base_Start (TIM_HandleTypeDef * htim) 

函数描述

启动 TIM Base 生成。

参数

  • htim:TIM Base 手柄

返回值

  • HAL:状态

HAL_TIM_Base_Stop

函数名称

1
HAL_StatusTypeDef HAL_TIM_Base_Stop (TIM_HandleTypeDef * htim) 

函数说明

停止 TIM Base 生成。

参数

  • htim:TIM 基本手柄

返回值

  • HAL:状态

HAL_TIM_Base_Start_IT

函数名称

1
HAL_StatusTypeDef HAL_TIM_Base_Start_IT (TIM_HandleTypeDef * htim)

函数描述

以中断模式启动 TIM Base 生成。

参数

  • htim:TIM Base 手柄

返回值

  • HAL:状态

HAL_TIM_Base_Stop_IT

函数名称

1
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT (TIM_HandleTypeDef * htim) 

函数描述

在中断模式下停止 TIM Base 生成。

参数

  • htim:TIM 基本手柄

返回值

  • HAL:状态

HAL_TIM_Base_Start_DMA

函数名称

1
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA (TIM_HandleTypeDef * htim, uint32_t * pData, uint16_t Length) 

函数描述

在 DMA 模式下启动 TIM Base 生成。

参数

  • htim:TIM 基本句柄
  • pData:源缓冲区地址。
  • Length:要从内存传输到外围设备的数据长度。

返回值

  • HAL:状态

HAL_TIM_Base_Stop_DMA

函数名称

1
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA (TIM_HandleTypeDef * htim)

函数说明

在 DMA 模式下停止 TIM Base 生成。

参数

  • htim:TIM 基本手柄

返回值

  • HAL:状态

HAL_TIM_PWM_Init

函数名称

1
HAL_StatusTypeDef HAL_TIM_PWM_Init (TIM_HandleTypeDef * htim) 

功能说明

根据TIM_HandleTypeDef中指定的参数初始化 TIM PWM 时基,并初始化关联的句柄。

参数

  • htim:TIM PWM 手柄

返回值

  • HAL:状态

    备注 • 从中心对齐计数器模式切换到边沿计数器模式(或反向)需要定时器复位,以避免由于中心对齐模式下 DIR 位只读而导致的意外方向。
    例:在 HAL_TIM_PWM_Init() 之前调用 HAL_TIM_PWM_DeInit()

HAL_TIM_PWM_DeInit

函数名称

1
HAL_StatusTypeDef HAL_TIM_PWM_DeInit (TIM_HandleTypeDef * htim) 

函数描述

取消初始化 TIM 外围设备。

参数

  • htim:TIM PWM 手柄

返回值

  • HAL:状态

HAL_TIM_PWM_Start

函数名称

1
HAL_StatusTypeDef HAL_TIM_PWM_Start (TIM_HandleTypeDef * htim, uint32_t Channel) 

函数说明

开始生成 PWM 信号。

参数

  • htim:TIM 手柄
  • 通道:要启用的 TIM 通道 此参数可以是以下值之一:
    • TIM_CHANNEL_1:选择 TIM 通道 1
    • TIM_CHANNEL_2:选择 TIM 通道 2
    • TIM_CHANNEL_3:选择 TIM 通道 3
    • TIM_CHANNEL_4:选择 TIM 通道 4

返回值

  • HAL:状态

HAL_TIM_PWM_Stop

函数名称

1
HAL_StatusTypeDef HAL_TIM_PWM_Stop (TIM_HandleTypeDef * htim, uint32_t Channel)

功能说明

停止 PWM 信号的生成。

参数

  • htim:TIM PWM 手柄
  • 通道:要禁用的 TIM 通道 此参数可以是以下值之一:
    • TIM_CHANNEL_1:选择 TIM 通道 1
    • TIM_CHANNEL_2:选择 TIM 通道 2
    • TIM_CHANNEL_3:选择 TIM 通道 3
    • TIM_CHANNEL_4:选择 TIM 通道 4

返回值

  • HAL:状态

HAL_TIM_PWM_Start_IT

函数名称

1
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT (TIM_HandleTypeDef * htim, uint32_t Channel) 

功能描述

在中断模式下启动 PWM 信号生成。

参数

  • htim:TIM PWM 手柄
  • 通道:要启用的 TIM 通道 此参数可以是以下值之一:
  • TIM_CHANNEL_1:选择 TIM 通道 1
  • TIM_CHANNEL_2:选择 TIM 通道 2
  • TIM_CHANNEL_3:选择 TIM 通道 3
  • TIM_CHANNEL_4:选择 TIM 通道 4

返回值

  • HAL:状态

HAL_TIM_PWM_Stop_IT

函数名称

1
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT (TIM_HandleTypeDef * htim, uint32_t Channel)

功能说明

在中断模式下停止 PWM 信号的生成。

参数

  • htim:TIM PWM 手柄
  • 通道:要禁用的 TIM 通道 此参数可以是以下值之一:
    • TIM_CHANNEL_1:选择 TIM 通道 1
    • TIM_CHANNEL_2:选择 TIM 通道 2
    • TIM_CHANNEL_3:选择 TIM 通道 3
    • TIM_CHANNEL_4:选择 TIM 通道 4

返回值

  • HAL:状态

STM32 HAL库常见函数汇总
https://cofallen.github.io/2024/11/07/stm32-hal/
作者
cofallen
发布于
2024年11月7日
更新于
2024年11月19日
许可协议