你好,
我试图使用ADC读取端口0引脚0,我总是从adc_get_sample()获得0的值。
我有端口0引脚0保留如下:
Reserve_gpio (batt_meas, gpio_bat_meas_port, gpio_bat_meas_pin, pid_adc);
GPIO_ConfigurePin(GPIO_BAT_MEAS_PORT, GPIO_BAT_MEAS_PIN, INPUT, PID_ADC, false);
然后我试着像这样读取ADC:
adc_init (GP_ADC_SE GP_ADC_SIGN);
adc_enable_channel (ADC_CHANNEL_P00);//注意:改变频道使用- ADC_CHANNEL_VBAT3V);
adc_sample () Uint16_t adc_sample = adc_get_sample();
adc_disable ();
当我这样做时,我总是得到adc_sample == 0。
我做错什么了吗?我在外设驱动程序文档中没有看到任何其他建议。
你好,
试着增加P0.0上的电压。如果电压低于0.2V (?)这是一个假设吗?)你总是得到0。
嗨,下面我有一个使用ADC的工作示例:
uint16_t adc_read_P01_channel ()
{
uint16_t adc_sample;
/ / ADC INIT
adc_init (GP_ADC_SE 0);//单端模式
adc_enable_channel (ADC_CHANNEL_P01);/ / ADC_CHANNEL_P01
adc_sample = adc_get_sample ();/ /开始转换
返回(adc_sample);
}
主要的区别是变量的明确声明在第一行:uint16_t adc_sample;
你能在你的例子中尝试一下吗?
最好的问候,
RvA(对话框)
我在我的devkit上用你的代码RvA工作。看起来我的硬件的问题可能是硬件:P
谢谢你的帮助。
对于P0.0,你的代码总是显示00 !!为什么每个端口引脚P0.0,0.1,0.2,0.3处于不同的电压?
hrg,我还是有点问题。
看起来这可能是硬件错误,因为ADC工作时直接应用到引脚上的电压,而不是电阻分频器。您是否尝试过使用直流电源来测试ADC?如果那工作,那么你的问题可能是与电阻分压器。
我在这里为电阻分频器问题创造了一个新问题:http://support.dialog-semiconductor.com/using-adc-read-voltage-divider-v..。
这就跟你问声好!对话团队,我有两个问题:
1.我如何得到与测量电压相同的准确电压,无论我如何设置寄存器,我都无法得到准确的电压?
2.DA14580造成的硬件错误是否无法消除?