TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS1115,第八位读取值一直都是0xFF,实在找不到原因

Uint16 ReadADS1115(void)
{
Uint16 temp;
Start_ADS1115();
if(Send_Byte(0x91)==0)
return 0;

temp=Read_byte();
AAAA1=temp;
Ack_IIC(1); //这一句出问题
AAAA2=Read_byte();
temp=AAAA1<<8+AAAA2;//Read_byte();
Ack_IIC(1);
Stop_ADS1115();
return temp;
}

Uint16 ADS1115(Uint16 channal)
{
Uint16 result;
if(Confige1115(channal)==1)
{
DelayUs(500);
if(PointRegister()==1)
{
result=ReadADS1115(); return result;
}
else
{
return 0;
}
}
else
{
return 0;
}
}

以上是核心部分,高八位读取是正确的,说明配置应该没问题,可是第八位一直都是0xFF,希望找找原因,谢谢

Jialun Mei:

是低八位,谢谢

Wanda WANG:

能用中文描述下你读取数据的整个流程吗? 看别人写的程序太难懂了。

Guoliang Li:

首先,或者测量下实际输入是不是和ADC输出的数据一致。

Decapton Wang:

可否用示波器抓一下SDA和SCL的波形图?另,如果写成Ack_IIC(0)会怎样?

Jialun Mei:

回复 Decapton Wang:

谢谢大家的回复,IIC在读取数据没完成之前应该是发ACK0的,全部完成才发ACK1,也就是我程序里标的有问题的那一句改一下就行了。话说这款芯片确实是很赞的。

赞(0)
未经允许不得转载:TI中文支持网 » ADS1115,第八位读取值一直都是0xFF,实在找不到原因
分享到: 更多 (0)