正好在搞AT24C02,本来不想研究底层
但是还是看了下
// Start with a dummy write to get the address set in the EEPROM.
//
SoftI2CSlaveAddrSet(&g_sI2C, SLAVE_ADDR | (ulOffset >> 8), false);
然后这个#define SLAVE_ADDR 0x50
这个地址我就看不懂了 记得AT24C02 是从1010 000 W/R 开始的,
以前编写的时候都是0xa0 然后加偏移地址
这个奇怪了??
不解
有啥好奇怪的?0x50=0b101 0000,一个标准的7位地址。
(0x50<<1)=0xa0=0b1010 0000再加上W/R就可以直接用了。
这个位置虽然是一个8位的字节,但是实际上应该是7位地址加1位的读写位拼接而成的。
我们平常为了方便编程经常将其合并成一个8位的字节直接使用,但是不要忘记其本质,地址位并不是8位的。
是的 是这回事
受教了
但是在程序里没有找到左移一位的代码 不知道在那里完成的
水平太差了