sirriam 发表于 2013-6-1 23:59:36

模拟I2C中, 24lc256 问题

unsigned char EEPROM_ByteWrite(unsigned int addr,unsigned char data)
{
unsigned char Dev_addr; //设备地址
unsigned char AddrLow;
unsigned char AddrHigh;
AddrLow = (unsigned char)addr;
AddrHigh = (unsigned char)(addr>>8);
Dev_addr = 0xa0|(AddrHigh<<1);
i2c_start();
i2c_SendByte(Dev_addr);
if(i2c_check_ACK() == FALSE)
{
return AckError;
}
i2c_SendByte(AddrHigh);
if(i2c_check_ACK() == FALSE)
{
return AckError;
}
i2c_SendByte(AddrLow);
if(i2c_check_ACK() == FALSE)
{
return AckError;
}
i2c_SendByte(data);
if(i2c_check_ACK() == FALSE)
{
return AckError;
}
i2c_stop();
i2c_delay_ms(10);
return 0;
}

问题:为什么设备地址要 Dev_addr = 0xa0|(AddrHigh<<1);

gfy200866 发表于 2013-6-4 11:45:40

建议看I2C的读写基本时序。多看几遍必然能明白的。
页: [1]
查看完整版本: 模拟I2C中, 24lc256 问题