很奇怪的问题,我写的i2c的读写程序怎么不对(AT24C256)?
以下我是的程序,A0=1;A1=1;WP=0;address是写入或读出的地址,CH是要写入的数。I2C的专用函数都是正确的,因为在同一个程序里我还用了PCF8563,8563是能正常操作的,可是24C256读出来的始终都是FF,究竟是怎么回事啊?谁能告诉我?
/**--------------------------------------------------------------------------------
---------------------------------------------------------------------------------*/
void WRonebyte(uchar ch,uint address)
{uchar add_h,add_l;
add_h=address/256;
add_l=address%256;
I2CStart();
I2CSendByte(0xA6);WaitAck();
I2CSendByte(add_h);WaitAck();
I2CSendByte(add_l);WaitAck();
I2CSendByte(ch);WaitAck();
I2CStop();
}
/**--------------------------------------------------------------------------------
---------------------------------------------------------------------------------*/
uchar RDonebyte(uint address)
{uchar add_h,add_l,ch;
add_h=address/256;
add_l=address%256;
I2CStart();
I2CSendByte(0xA6);WaitAck();
I2CSendByte(add_h);WaitAck();
I2CSendByte(add_l);WaitAck();
I2CStart();
I2CSendByte(0xA7);WaitAck();
ch=I2CReceiveByte(); SendNotAck();
I2CStop();
return ch;
}
发表时间:2004年7月24日10:42:53