基于mdm9206 threadx_os的adc操作相关API介绍

大家好,今天小白给大家介绍一下,关于mdm9206 threadx_os的adc操作相关的API,希望能和大家一起交流学习。

1 ADC简介

模数转换器(ADC)允许对模拟信号进行采样和数字表示。 SoC具有片上ADC,支持读取多个通道。 ADC可以执行单次和重复测量。ADC可通过静态参数进行配置。 有关静态定义的参数,可以参阅ADC可调参数板文件。该编程接口允许客户端软件配置通道,执行单个读数。

2.主要的API

a. qapi_Status_t qapi_ADC_Open ( qapi_ADC_Handle_t ∗ Handle, uint32_t Attributes )

功能:打开ADC以供软件客户端使用,只有在成功打开ADC后才能读取ADC客户端值。

参数:

out:Handle,指向ADC句柄的指针。

in: Attributes,保留参数。

返回值:

QAPI_OK  - 调用成功。

QAPI_ERROR  - 调用失败。

QAPI_ERR_INVALID_PARAM  - 指定了无效参数。

QAPI_ERR_NO_MEMORY  - 没有可用的内存来支持此操作。

QAPI_ERR_NO_RESOURCE  - 不再提供句柄。

b. qapi_Status_t qapi_ADC_Get_Input_Properties ( qapi_ADC_Handle_t

Handle, const char ∗ Channel_Name_Ptr, uint32_t Channel_Name_Size,

qapi_Adc_Input_Properties_Type_t ∗ Properties_Ptr )

功能:获取ADC通道配置,此函数用于获取ADC通道的属性。

参数:

in :Handle,由qapi_ADC_Open()提供的句柄。

in:Channel_Name_Ptr,指向ADC通道名称指针的指针。

in: Channel_Name_Size,通道名称字符串的大小。

out:Properties_Ptr, ADC通道配置。

返回值:

QAPI_OK  - 呼叫成功。

QAPI_ERROR  - 呼叫失败。

QAPI_ERR_INVALID_PARAM  - 指定了无效参数。

c.  qapi_Status_t qapi_ADC_Read_Channel ( qapi_ADC_Handle_t Handle,

const qapi_Adc_Input_Properties_Type_t ∗ Input_Prop_Ptr, qapi_ADC_Read_Result_t ∗ Result_Ptr )

功能:读取ADC通道,此功能为客户端指定的设备和通道执行阻塞ADC读取pAdcInputProps.

参数:

in :Handle,由qapi_ADC_Open()提供的句柄。

in :Input_Prop_Ptr,由qapi_ADC_Get_Input_Properties()提供通道的属性指针。

out:Result_Ptr,ADC读取结果结构体。

关于Result_Ptr, 类型是:qapi_ADC_Read_Result_t,定义如下:

typedef struct
{
   AdcResultStatusType eStatus;   //转换状态
   uint32_t  nToken;                          //标识转换的令牌
   uint32_t  nDeviceIdx;                   //转换设备索引
   uint32_t  nChannelIdx;                //转换通道索引
   int32_t   nPhysical;                      //结果是物理单位,单位取决于BSP
   uint32_t  nPercent;                      //结果占用于参考电压的百分比转换:0 = 0%,65535 = 100%
   uint32_t  nMicrovolts;                  //结果值,单位是微伏
   uint32_t  nCode;                          //来自硬件的原始ADC代码
} qapi_ADC_Read_Result_t;

返回值:

QAPI_OK  - 调用成功。

QAPI_ERROR  - 调用失败。

QAPI_ERR_INVALID_PARAM  - 指定了无效参数。

d. qapi_Status_t qapi_ADC_Close ( qapi_ADC_Handle_t Handle, qbool_t

keep_enabled )

功能:当软件客户端完成后,关闭ADC的句柄。

参数:

in :Handle,由qapi_ADC_Open()提供的句柄。

out:keep_enabled,保留参数。

3 关于读取adc过程的简单示例代码

qapi_Status_t status;

const char Channel_Name;

qapi_ADC_Handle_t handle;

uint32_t Channel_Name_Size;

qapi_ADC_Read_Result_t result;

//To get a ADC handle.

status = qapi_ADC_Open(&handle, 0); //第一步

if (status != QAPI_OK) { ... }

//Get properties of the ADC

status=qapi_ADC_Get_Input_Properties(&handle, Channel_Name,

Channel_Name_Size, Properties); //第二步

if (status != QAPI_OK) { ... }

//To read ADC channels

status = qapi_ADC_Read_Channel(handle, channel, &result); //第三步

if (status != QAPI_OK) { ... }

//close ADC channel.

status = qapi_ADC_Close(handle, false); //第四步

if (status != QAPI_OK) { ... }

4 小结

本篇主要介绍了基于mdm9206平台的threadx_os的adc操作相关的api,大致流程就是,打开adc读取通道,获取一个操作句柄,接着获取adc配置的属性信息,读取adc相应通道,关闭adc通道。

 

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试