{ // delay_ms(2);
Start();
Send(0x90); //写入芯片地址
Ack();
Send(0x01);//写入配置寄存器
Ack();
Send(0xc2);//写配置数据16位:单端输入AN0, Fs=4.096v,,采集速度860。
Ack();
Send(0xe2);
Ack();
Stop();
//--------------------------------------//
//delay_ms(2);
Start();
Send(0x90); //设置读取指针准备读取
Ack();
Send(0x00);
Stop();
//--------------------------------------//
//delay_ms(2);
Start(); //写入芯片地址
Send(0x91);
Ack();
BUF=Read(); //读数据
Ack();
BUF=Read(); //读数据
NoAck(); //最后一个数据不予应答
Stop();
valu=(BUF << 8) | BUF; //合成16位结果
}
这个是51里面完整的过程,你自己参考着改吧{:hug:} ADS1114_init ();
ADS1114_init_pointer ();
i=ADS1114_read ();
这里面有动作是重复了的,还要注意最后一个字节不用应答的问题。 这个东西有内部基准,你选择一个合适的档位,你把电源做一个分压,再测量这个分压就可以得到电源的电压了 5768340 发表于 2013-2-2 21:33 static/image/common/back.gif
经过一段时间的尝试,是买的这一批芯片的问题。
是换了好芯片就ok了吗? 调试中最痛苦的事情莫过于此
页:
[1]