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_GPIO_Init
函数名称
1 |
|
函数描述
根据 GPIO_Init 中指定的参数初始化 GPIOx 外设。
参数
- GPIOx: x 可以是 (A..I)选择
- GPIO_Init:指向包含指定 GPIO 外设配置信息的 GPIO_InitTypeDef 结构的指针。
- 返回值:无。
HAL_GPIO_DeInit
函数名称
1 |
|
函数描述
将 GPIOx 外设寄存器取消初始化为其默认复位值。
参数
- GPIOx:其中 x 可以是 (A..I) 选择 GPIO 外设。
- GPIO_Pin:指定要写入的端口位。此参数可以是其中 x 可以是 (0..15) 的GPIO_PIN_x之一。
- 返回值: 无。
HAL_GPIO_ReadPin
函数名称
1 |
|
函数说明
读取指定的输入端口引脚。
参数
- GPIOx:其中 x 可以是 (A..I) 选择 GPIO 外设。
- GPIO_Pin:指定要读取的端口位。此参数可以GPIO_PIN_x,其中 x 可以是 (0..15)。
- 返回值:输入端口引脚值。
示例
1 |
|
HAL_GPIO_WritePin
函数名称
1 |
|
函数说明
设置或清除选定的数据端口位。
参数
- GPIOx:其中 x 可以是 (A..I) 为所有 STM32F2XX 设备选择 GPIO 外设
- GPIO_Pin:指定要写入的端口位。此参数可以是其中 x 可以是 (0..15) 的GPIO_PIN_x之一。
- PinState:指定要写入所选位的值。此参数可以是GPIO_PinState枚举值之一:
- GPIO_PIN_RESET:清除端口引脚
- GPIO_PIN_SET:设置端口引脚
- 返回值:无。
示例
1 |
|
注释
此功能使用GPIOx_BSRR
寄存器来允许原子读取/修改访问。这样,在 read 和 modify 访问之间就不存在 IRQ 的风险。
HAL_GPIO_TogglePin
函数名称
1 |
|
功能说明
切换指定的 GPIO 引脚。
参数
- GPIOx:其中 x 可以是 (A..I) 选择 GPIO 外设。
- GPIO_Pin:指定要切换的引脚。
- 返回值:无。
示例
1 |
|
HAL_GPIO_LockPin
函数名称
1 |
|
- 函数描述 锁定 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 |
|
函数说明
该函数处理 EXTI 中断请求。
参数
- GPIO_Pin:指定引脚连接的 EXTI 线
- 返回值:无。
HAL_GPIO_EXTI_Callback
函数名称
1 |
|
函数描述 EXTI 线检测回调。
参数
- GPIO_Pin:指定引脚连接的 EXTI 行
- 返回值:无。
HAL_TIM_Base_Init
函数名称
1 |
|
函数说明
根据TIM_HandleTypeDef中指定的参数初始化 TIM 时基单位,并初始化关联的句柄。
参数
- htim:TIM 基本手柄
返回值
- HAL:状态
备注 • 从中心对齐计数器模式切换到边缘计数器模式(或反向)需要定时器重置,以避免由于中心对齐模式下 DIR 位只读而导致的意外方向。
例如:在 HAL_TIM_Base_Init() 之前调用 HAL_TIM_Base_DeInit()
HAL_TIM_Base_DeInit
函数名称
1 |
|
函数描述
取消初始化 TIM Base 外围设备。
参数
- htim:TIM 基本手柄
返回值
- HAL:状态
HAL_TIM_Base_Start
函数名称
1 |
|
函数描述
启动 TIM Base 生成。
参数
- htim:TIM Base 手柄
返回值
- HAL:状态
HAL_TIM_Base_Stop
函数名称
1 |
|
函数说明
停止 TIM Base 生成。
参数
- htim:TIM 基本手柄
返回值
- HAL:状态
HAL_TIM_Base_Start_IT
函数名称
1 |
|
函数描述
以中断模式启动 TIM Base 生成。
参数
- htim:TIM Base 手柄
返回值
- HAL:状态
HAL_TIM_Base_Stop_IT
函数名称
1 |
|
函数描述
在中断模式下停止 TIM Base 生成。
参数
- htim:TIM 基本手柄
返回值
- HAL:状态
HAL_TIM_Base_Start_DMA
函数名称
1 |
|
函数描述
在 DMA 模式下启动 TIM Base 生成。
参数
- htim:TIM 基本句柄
- pData:源缓冲区地址。
- Length:要从内存传输到外围设备的数据长度。
返回值
- HAL:状态
HAL_TIM_Base_Stop_DMA
函数名称
1 |
|
函数说明
在 DMA 模式下停止 TIM Base 生成。
参数
- htim:TIM 基本手柄
返回值
- HAL:状态
HAL_TIM_PWM_Init
函数名称
1 |
|
功能说明
根据TIM_HandleTypeDef中指定的参数初始化 TIM PWM 时基,并初始化关联的句柄。
参数
- htim:TIM PWM 手柄
返回值
- HAL:状态
备注 • 从中心对齐计数器模式切换到边沿计数器模式(或反向)需要定时器复位,以避免由于中心对齐模式下 DIR 位只读而导致的意外方向。
例:在 HAL_TIM_PWM_Init() 之前调用 HAL_TIM_PWM_DeInit()
HAL_TIM_PWM_DeInit
函数名称
1 |
|
函数描述
取消初始化 TIM 外围设备。
参数
- htim:TIM PWM 手柄
返回值
- HAL:状态
HAL_TIM_PWM_Start
函数名称
1 |
|
函数说明
开始生成 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 |
|
功能说明
停止 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 |
|
功能描述
在中断模式下启动 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 |
|
功能说明
在中断模式下停止 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:状态