你好,
我试图使用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);
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(对话框)
我用你的代码在我的开发工具包里找到的,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造成的?