你好,
我正在尝试使用ADC读取端口0引脚0,并且总是从ADC\u get\u sample()获取值0。
我保留了端口0引脚0,如下所示:
保留GPIO(BATT\ U测量、GPIO\ U BAT\ U测量端口、GPIO\ U BAT\ U测量引脚、PID\ U ADC);
GPIO_ConfigurePin(GPIO_BAT_MEAS_PORT,GPIO_BAT_MEAS_PIN,INPUT,PID_ADC,false);
然后我试着这样读ADC:
adc\ U init(GP\ U adc\ SE,GP\ U adc\ U SIGN);
adc_enable_channel(adc_channel_P00);//注意:使用的通道更改-adc_channel_VBAT3V);
uint16_t adc_sample=adc_get_sample();
adc_disable();
当我这样做时,我总是得到adc\u sample==0。
我做错什么了吗?我在外设驱动程序文档中没有看到任何其他建议。
你好,
试着提高P0.0上的电压。如果电压低于0.2V(?)?这是一个假设?)你将永远得到0。
嗨,我有一个关于使用ADC的工作示例:
uint16\u t adc\u read\u P01\u channel()
{
uint16 adc样本;
//ADC初始化
adc_init(GP_adc_SE,0);//单端模式
adc_enable_channel(adc_channel_P01);//adc_channel_P01
adc_sample=adc_get_sample();//开始转换
返回(adc\U样本);
}
主要区别在于第一行中变量的显式声明:uint16\u t adc\u sample;
你能举个例子试试吗?
顺致敬意,
RvA(对话框)
我用你的代码在我的devkit上工作,RvA。看起来我的硬件的问题可能是硬件:P
谢谢你的帮助。
对于P0.0,代码总是显示00!!为什么每个端口的引脚P0.0、0.1、0.2、0.3的电压都不同???
hrg,我对此也有意见。
这看起来可能是硬件错误,因为ADC的工作电压直接施加在引脚上,而不是电阻分压器。你试过用直流电源测试你的模数转换器吗?如果这是可行的,那么你的问题可能是与电阻分频器。
我为电阻分频器问题提出了一个新问题:http://support.dialog semiconductor.com/using-adc-read-voltage-divider-v。。。
你好!对话小组,我有两个问题:
1怎样才能得到与被测电压相同的准确电压,无论怎样设置寄存器,都不能得到准确的电压?
2DA14580引起的硬件错误是否无法消除?