ADC驱动API描述
ADC驱动的API主要包括:
| API类别 | API名称 | 描述 |
|---|---|---|
| 初始化 | hal_adc_init() | 初始化ADC外设,配置参考电压等参数。 |
| hal_adc_deinit() | 反初始化ADC外设。 | |
| hal_adc_msp_init() | 初始化ADC外设所使用的MSIO引脚、NVIC中断、DMA通道。 | |
| hal_adc_msp_deinit() | 反初始化ADC外设所使用的MSIO引脚、NVIC中断、DMA通道。 | |
| IO操作 | hal_adc_poll_for_conversion() | 轮询方式采样数据。 |
| hal_adc_start_dma() | DMA方式采样数据(非轮询)。 | |
| hal_adc_stop_dma() | DMA方式采样终止。 | |
| 中断处理及回调函数 | hal_adc_conv_cplt_callback() | 非轮询采样完成回调,由开发者定义。 |
| 状态及错误 | hal_adc_get_state() | 获取驱动运行状态。 |
| hal_adc_get_error() | 获取错误码。 | |
| 控制 | hal_adc_set_dma_threshold() | 设置DMA阈值。 |
| hal_adc_get_dma_threshold() | 获取DMA阈值。 | |
| 睡眠相关 | hal_adc_suspend_reg() | 睡眠时挂起与ADC配置相关的寄存器。 |
| hal_adc_resume_reg() | 唤醒时恢复与ADC配置相关的寄存器。 |
下面章节将对各API进行详细描述。
hal_adc_init
| 函数原型 | hal_status_t hal_adc_init(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 根据adc_init_t里的参数初始化ADC外设和初始化关联句柄。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | HAL状态。 |
| 备注 |
hal_adc_deinit
| 函数原型 | hal_status_t hal_adc_deinit(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 反初始化ADC外设。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | HAL状态。 |
| 备注 |
hal_adc_msp_init
| 函数原型 | void hal_adc_msp_init(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 初始化ADC所使用的MOSI引脚、NVIC中断、DMA通道等配置。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,开发者需重写该API完成MSIO引脚选择、NVIC中断、DMA通道的初始化。 |
hal_adc_msp_deinit
| 函数原型 | void hal_adc_msp_deinit(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 反初始化ADC所使用的MOSI引脚、NVIC中断、DMA通道等配置。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,开发者需重写该API完成MSIO引脚选择、NVIC中断、DMA通道的反初始化。 |
hal_adc_poll_for_conversion
| 函数原型 | hal_status_t hal_adc_poll_for_conversion(adc_handle_t *p_adc, uint16_t *p_data, uint32_t length) |
|---|---|
| 功能说明 | 转换ADC数据,以轮询方式读取转换后的数据。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 p_data:指向存储ADC转换结果的数据缓冲区的指针。 length:数据缓冲区长度。 |
| 返回值 | HAL状态。 |
| 备注 | 返回HAL_ERROR时可调用hal_adc_get_error获取具体的错误码。 |
hal_adc_start_dma
| 函数原型 | hal_status_t hal_adc_start_dma(adc_handle_t *p_adc, uint16_t *p_data, uint32_t length) |
|---|---|
| 功能说明 | 转换ADC数据,以DMA方式读取转换后的数据。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 p_data:指向存储ADC转换结果的数据缓冲区的指针。 length:数据缓冲区长度。 |
| 返回值 | HAL状态。 |
| 备注 | 返回HAL_ERROR时可调用hal_adc_get_error()获取具体的错误码。 |
hal_adc_stop_dma
| 函数原型 | hal_status_t hal_adc_stop_dma(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 中止正在进行的转换,以DMA的方式读取转化后的ADC数据 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | HAL状态。 |
| 备注 |
此过程只能用于中止在DMA模式中启动的转换。 此过程执行以下步骤:
|
hal_adc_conv_cplt_callback
| 函数原型 | void hal_adc_conv_cplt_callback(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 转换完成回调函数。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,开发者需重写该API完成采样完成后的操作。 |
hal_adc_get_state
| 函数原型 | hal_status_t hal_adc_get_state(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 返回ADC句柄状态。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | 无 |
| 备注 |
ADC状态,该参数的取值可能是下列值中的任意一个:
|
hal_adc_get_error
| 函数原型 | uint32_t hal_adc_get_error(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 返回ADC句柄错误码。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 |
ADC错误码,该参数的取值可以是下列值中的任意一个:
|
| 备注 |
hal_adc_set_dma_threshold
| 函数原型 | hal_status_t hal_adc_set_dma_threshold(adc_handle_t *p_adc, uint32_t threshold) |
|---|---|
| 功能说明 | 设置触发DMA传输的FIFO阈值。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 threshold:FIFO触发阈值(取值范围0 ~ 64)。 |
| 返回值 | HAL状态。 |
| 备注 |
hal_adc_get_dma_threshold
| 函数原型 | uint32_t hal_adc_get_dma_threshold(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 获取触发DMA传输的FIFO阈值。 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | 无 |
| 备注 | FIFO阈值(取值范围0 ~ 64)。 |
hal_adc_suspend_reg
| 函数原型 | hal_status_t hal_adc_suspend_reg(adc_handle_t *p_adc) |
|---|---|
| 功能说明 | 睡眠时挂起与ADC配置相关的寄存器 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | HAL状态 |
| 备注 |
hal_adc_resume_reg
| 函数原型 | hal_status_t hal_adc_resume_reg(adc_handle_t *p_adc); |
|---|---|
| 功能说明 | 唤醒时恢复与ADC配置相关的寄存器 |
| 输入参数 | p_adc:指向adc_handle_t结构体变量的指针,该结构体变量包含指定的ADC的配置信息。 |
| 返回值 | HAL状态 |
| 备注 |