|
发现原因了,我单次读操作可以成功,单次写操作也可以成功,读了之后再写也能行。但是写了之后再读就不行。
void WRITE_24C02_BYTE(u8 device,u8 addr,u8 dat)
{
I2C_START();
I2C_WRITE_BYTE(device);
while(I2C_CACK());
I2C_WRITE_BYTE(addr);
while(I2C_CACK());
I2C_WRITE_BYTE(dat);
while(I2C_CACK());
I2C_STOP();
}
u8 READ_24C02_BYTE(u8 device,u8 addr)
{
u8 temp;
I2C_START();
I2C_WRITE_BYTE(device);
while(I2C_CACK());
I2C_WRITE_BYTE(addr);
while(I2C_CACK());
I2C_START();
I2C_WRITE_BYTE(device + 0x01);
while(I2C_CACK());
temp = I2C_READ_BYTE();
I2C_MNACK();
I2C_STOP();
return temp;
} |
|