刚开始能够得到正确的结果,但是一段时间后,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);
}