了解更多常见问题解答教程

6个帖子/ 0新
最后一篇
贾森
离线
最后一次露面:10个月前1年
加入:2019-01-23 10:26
ADC

我想使用GPIO引脚读取模拟价值?如何使用ADC读取此模拟值?您是否有ADC读取的示例代码?

设备:
PM_DIALOG.
离线
最后一次露面:9小时32分钟前
职员
加入:2018-02-08 11:03
嗨jasu,

嗨jasu,

请检查位于Projects \ target_apps \ peripheral_examples \ adc \ batt_lvl sdk路径下的ADC示例,您将找到所有适合使用ADC的步骤。

谢谢,PM_DIALOG.

贾森
离线
最后一次露面:10个月前1年
加入:2019-01-23 10:26
是的,我看了这个例子

是的,我看了这个例子,但这没有从gpio读取任何值

PM_DIALOG.
离线
最后一次露面:9小时32分钟前
职员
加入:2018-02-08 11:03
嗨jasu,

嗨jasu,

为了读取GPIO的ADC值,您应该保留并配置GPIO作为PID_ADC。例如:

  • 在gpio_reservation():letail_gpio(ADC,ADC_PORT,ADC_PIN,PID_ADC);
  • 在set_pad_function():gpio_configurepin(adc_port,adc_pin,输入,pid_adc,false);

请注意,您可以使用特定的GPIO作为ADC。请检查表1:引脚描述DA14585数据表并搜索“模拟接口”部分。之后,您应该使用ADC库中的相应API,但我们没有任何可用的示例。

谢谢,PM_DIALOG.

贾森
离线
最后一次露面:10个月前1年
加入:2019-01-23 10:26
我保留并配置了

我保留并配置GPIO。但是我无法理解如何从GPIO(ADC)引脚读取ADC值!

PM_DIALOG.
离线
最后一次露面:9小时32分钟前
职员
加入:2018-02-08 11:03
嗨jasu,

嗨jasu,

使用20 USEC延迟,SDK的ADC示例从VBAT1V或VBAT3V电源获取样本。请检查adc_get_vbat_sample():

  • 如果sample_vbat1v = true,则adc_enable_channel(adc_channel_vbat1v)
  • 如果sample_vbat1v = false,则adc_enable_channel(adc_channel_vbat3v)

这意味着根据Sample_VBAT1V,ADC配置为从VBAT1V或VBAT3V获取样本。ADC_CHANNEL_VBAT1V和ADC_CHANNEL_VBAT3V都定义为ADC.h标题文件。假设您希望从PIN_00获取样本,因此您必须先启用它。示例代码如下:

adc_calibrate();

adc_init(gp_adc_se,gp_adc_sign,0);

ADC_USDELAY(20);

ADC_ENABLE_CHANNEL(ADC_CHANNEL_P00);

adc_value = adc_get_sample();

谢谢,PM_DIALOG.