STM32 HAL库提供了丰富的函数集,用于操作STM32微控制器的各种外设。以下是一些常用的HAL库函数分类及其功能:
GPIO相关函数
- 初始化与反初始化
HAL_GPIO_Init
: 初始化GPIO引脚的工作模式。HAL_GPIO_DeInit
: 将GPIO引脚恢复到默认状态。
- 读写操作
HAL_GPIO_ReadPin
: 读取引脚的电平状态。HAL_GPIO_WritePin
: 设置引脚的电平状态。HAL_GPIO_TogglePin
: 切换引脚的电平状态。
- 锁定与外部中断
HAL_GPIO_LockPin
: 锁定引脚的配置,防止后续更改。HAL_GPIO_EXTI_IRQHandler
: 外部中断服务函数。HAL_GPIO_EXTI_Callback
: 中断回调函数。
ADC相关函数
HAL_ADC_Start
: 开始ADC转换。HAL_ADC_Stop
: 停止ADC转换。HAL_ADC_Start_IT
: 带中断的ADC转换开启。HAL_ADC_Stop_IT
: 带中断的ADC转换停止。HAL_ADC_Start_DMA
: DMA方式ADC开启。HAL_ADC_Stop_DMA
: DMA方式ADC关闭。HAL_ADC_GetValue
: 获取ADC转换值。
DAC相关函数
HAL_DAC_Init
: 初始化DAC。HAL_DAC_DeInit
: 反初始化DAC。HAL_DAC_Start
: 开启DAC转换通道。HAL_DAC_Stop
: 关闭DAC转换通道。HAL_DAC_Start_DMA
: DMA模式转换开启。HAL_DAC_Stop_DMA
: DMA模式转换关闭。HAL_DAC_GetValue
: 获取DAC值。
UART相关函数
HAL_UART_Init
: 初始化UART。HAL_UART_Receive_DMA
: 使用DMA的方式接收数据。HAL_UART_DMAPause
: 暂停DMA数据传输。HAL_UART_DMAResume
: 从暂停状态中恢复DMA传送。HAL_UART_DMAStop
: 停止DMA的传输。
TIM相关函数
HAL_TIM_Base_Init
: 初始化TIM基本功能。HAL_TIM_Base_DeInit
: 反初始化TIM基本功能。HAL_TIM_Base_Start
: 启动TIM基本功能。HAL_TIM_Base_Stop
: 停止TIM基本功能。HAL_TIM_Base_Start_IT
: 以中断模式启动TIM基本功能。HAL_TIM_Base_Stop_IT
: 在中断模式下停止TIM基本功能。HAL_TIM_Base_Start_DMA
: 在DMA模式下启动TIM基本功能。HAL_TIM_Base_Stop_DMA
: 在DMA模式下停止TIM基本功能。HAL_TIM_PWM_Init
: 初始化TIM PWM功能。
这些函数涵盖了STM32微控制器的大部分外设操作,为开发者提供了便捷的硬件抽象层操作接口。
GPIO:
STM32 HAL库提供了一系列的GPIO(通用输入输出)操作函数,用于配置和控制STM32微控制器的GPIO引脚。以下是一些常用的HAL库GPIO函数及其功能:
-
HAL_GPIO_Init: 初始化GPIO引脚的工作模式,包括引脚的工作速度、复用功能、上下拉设置等。
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
-
HAL_GPIO_DeInit: 将GPIO引脚恢复到默认状态,即寄存器复位时的值。
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
-
HAL_GPIO_ReadPin: 读取指定GPIO引脚的电平状态,返回值为0或1。
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
-
HAL_GPIO_WritePin: 设置指定GPIO引脚的电平状态为高或低。
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
-
HAL_GPIO_TogglePin: 切换指定GPIO引脚的电平状态,如果原来是高电平则变为低电平,反之亦然。
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
-
HAL_GPIO_LockPin: 锁定指定GPIO引脚的配置,防止后续的配置更改,直到复位。
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
-
HAL_GPIO_EXTI_IRQHandler: 外部中断服务函数,用于响应外部中断触发。
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
-
HAL_GPIO_EXTI_Callback: 中断回调函数,定义外部中断发生时的具体响应动作。
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
这些函数为开发者提供了灵活的GPIO引脚操作能力,可以用于实现各种输入输出控制逻辑。在实际应用中,根据具体需求选择合适的函数来操作GPIO引脚。