ADS1230的输出数据不对,不明白怎么回事
时间:10-02
整理:3721RD
点击:
刚开始能够得到正确的结果,但是一段时间后,AD输出就不对了。
第一天的数据
00 00 20
00 10 35
类似的数据,这些数据是对的,接传感器,返回数据可以对应重量
然后第二天
00 1E BA
00 04 7C
00 00 6A
然后第三天
0F FB 1A
0F FB 19
0F FB 1C
这是什么情况,求指教?
unsigned long ReadAD(void)
{
unsigned char i=0;
unsigned long ADdatatemp=0; //设置AD转换的初始值为0
while(ADC_RDY1); //RDY = 0??等待AD转换完成
for(i = 0;i < 20;i ++) //获取20位数据
{
ADdatatemp = ADdatatemp << 1;
ADC_SCLK1 = 1; //CLK = 1
if(ADC_DOUT1 == 1)
ADdatatemp = ADdatatemp | 0x000001;
else
ADdatatemp = ADdatatemp & 0xFFFFFE;
ADC_SCLK1 = 0; //CLK = 0
}
for(i = 0;i < 4;i ++) //为下一次转换准备
{
ADC_SCLK1 = 1;
ADC_SCLK1 = 0; //CLK = 0
}
return(ADdatatemp);
}
差别很大啊
是不是中途出现休眠后断电了, 重新测量时 ADC 再次上电后没有经过校准?