A2 STM32_HAL库函数 之 ADC通用驱动器 -- A -- 所有函数的介绍及使用

本文详细介绍了STM32HAL库中的ADC通用驱动器函数,包括初始化、反初始化、中断处理、DMA传输等关键操作,以及相应的函数原型和使用方法,旨在帮助开发者更好地理解和应用这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 ADC通用驱动器预览

序号函数名描述
1HAL_ADC_Init()初始化ADC外设。
2HAL_ADC_DeInit()反初始化ADC外设。
3HAL_ADC_MspInit()初始化MCU外设相关的ADC引脚或资源。
4HAL_ADC_MspDeInit()反初始化MCU外设相关的ADC引脚或资源。
5HAL_ADC_Start()启动ADC转换。
6HAL_ADC_Stop()停止ADC转换。
7HAL_ADC_PollForConversion()轮询ADC转换是否完成。
8HAL_ADC_PollForEvent()轮询ADC事件是否发生。
9HAL_ADC_Start_IT()启动ADC转换并使用中断处理转换完成。
10HAL_ADC_Stop_IT()停止ADC转换中断。
11HAL_ADC_Start_DMA()启动ADC转换并使用DMA处理转换数据。
12HAL_ADC_Stop_DMA()停止ADC转换DMA。
13HAL_ADC_GetValue()获取最近一次ADC转换的结果。
14HAL_ADC_IRQHandler()ADC中断处理程序。
15HAL_ADC_ConvCpltCallback()ADC转换完成回调函数。
16HAL_ADC_ConvHalfCpltCallback()ADC转换一半完成回调函数。
17HAL_ADC_LevelOutOfWindowCallback()ADC窗口阈值超出回调函数。
18HAL_ADC_ErrorCallback()ADC错误回调函数。
19HAL_ADC_ConfigChannel()配置ADC通道。
20HAL_ADC_AnalogWDGConfig()配置ADC模拟看门狗。
21HAL_ADC_GetState()获取ADC状态。
22HAL_ADC_GetError()获取ADC错误状态。

使用模板:

#include "stm32f4xx_hal.h"

int main(void) {
    // HAL初始化
    HAL_Init();
    
    // 初始化MCU外设相关的引脚或资源
    HAL_MspInit();
    
    // 初始化HAL的时基
    HAL_InitTick();
    
    // 初始化ADC外设
    HAL_ADC_Init();
    
    // 启动ADC转换
    HAL_ADC_Start();
    
    // 等待转换完成
    while (HAL_ADC_PollForConversion() != HAL_OK);
    
    // 获取转换结果
    uint32_t adcValue = HAL_ADC_GetValue();
    
    // 进行其他操作...
    
    // 停止ADC转换
    HAL_ADC_Stop();
    
    // 反初始化ADC外设
    HAL_ADC_DeInit();
    
    // 反初始化MCU外设相关的引脚或资源
    HAL_MspDeInit();
    
    return 0;
}

1.1 HAL_ADC_Init

函数名HAL_ADC_Init
函数原形HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc)
功能描述初始化 ADC 模块
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:初始化结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

例:

ADC_HandleTypeDef hadc;
HAL_ADC_Init(&hadc);

1.2 HAL_ADC_DeInit

函数名HAL_ADC_DeInit
函数原形HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef* hadc)
功能描述反初始化 ADC 模块
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:反初始化结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

例:

ADC_HandleTypeDef hadc;
HAL_ADC_DeInit(&hadc);

1.3 HAL_ADC_MspInit

函数名HAL_ADC_MspInit
函数原形void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
功能描述初始化 ADC 模块的底层硬件抽象层(HAL)
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.4 HAL_ADC_MspDeInit

函数名HAL_ADC_MspDeInit
函数原形void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
功能描述反初始化 ADC 模块的底层硬件抽象层(HAL)
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.5 HAL_ADC_Start

函数名HAL_ADC_Start
函数原形HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc)
功能描述启动 ADC 转换
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:启动结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.6 HAL_ADC_Stop

函数名HAL_ADC_Stop
函数原形HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc)
功能描述停止 ADC 转换
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:停止结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.7 HAL_ADC_PollForConversion

函数名HAL_ADC_PollForConversion
函数原形HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout)
功能描述轮询 ADC 转换完成状态
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输入参数 2Timeout:轮询超时时间,单位为毫秒
输出参数
返回值HAL_StatusTypeDef:操作结果,可以是 HAL_OK、HAL_TIMEOUT 或 HAL_ERROR
先决条件
被调用函数

1.8 HAL_ADC_PollForEvent

函数名HAL_ADC_PollForEvent
函数原形HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeout)
功能描述轮询 ADC 事件状态
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输入参数 2EventType:要轮询的事件类型,可以是以下值之一:
                            - ADC_EOSMP_EVENT:转换过程结束事件
                            - ADC_AWD_EVENT:模拟看门狗事件
                            - ADC_OVR_EVENT:溢出事件

| 输入参数 3 | Timeout:轮询超时时间,单位为毫秒 |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:操作结果,可以是 HAL_OK、HAL_TIMEOUT 或 HAL_ERROR |
| 先决条件 | 无 |
| 被调用函数 | 无 |


1.9 HAL_ADC_Start_IT

函数名HAL_ADC_Start_IT
函数原形HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc)
功能描述以中断方式启动 ADC 转换
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:启动结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

|


1.10 HAL_ADC_Stop_IT

函数名HAL_ADC_Stop_IT
函数原形HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc)
功能描述以中断方式停止 ADC 转换
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:停止结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.11 HAL_ADC_Start_DMA

函数名HAL_ADC_Start_DMA
函数原形HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length)
功能描述启动 DMA 传输并以 DMA 方式启动 ADC 转换
输入参数 1hadc:ADC 句柄,指向一个 ADC_HandleTypeDef 结构体
输入参数 2pData:要传输的数据缓冲区的指针
输入参数 3Length:要传输的数据数量
输出参数
返回值HAL_StatusTypeDef:启动结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

该文档修改记录:

修改时间修改说明
2024年4月30日第一次发布,介绍了A2 STM32_HAL库函数 之 ADC通用驱动器 – A – 所有函数的介绍及使用

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常驻客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值