unsigned char Read8Bit() {
unsigned char temp,rbyte=0;
for(temp=8;temp!=0;temp--) {
rbyte=rbyte < <1;
AT24C256_SCL=0;
AT24C256_SCL=1;
rbyte=rbyte|((unsigned char)(AT24C256_SDA));
AT24C256_SCL=0;//此处应该加一个把
}
AT24C256_SCL=0;
AT24C256_SDA=0;
AT24C256_SCL=1;
AT24C256_SCL=0;
AT24C256_SDA=0;
return(rbyte);
}
你可知道iic协议,只有当scl为地电平的时候,sda才会反转,也就是说rbyte=rbyte|((unsigned char)(AT24C256_SDA));这一不执行完了以后,你看看,是不是scl从0马上变为一,sda来不及翻转,所以每次读出来的sda都是1
最后就是ff了。
我不知道我该得对不对,我也是刚学这个芯片的,多多向你们学习啊!
发表时间:2005年3月18日10:32:02