微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS1115,第八位读取值一直都是0xFF,实在找不到原因

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

时间:10-02 整理:3721RD 点击:

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,希望找找原因,谢谢

是低八位,谢谢

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

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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top