I2C和SCCB协议的小区别和误区

I2C采用的是7位地址数据,首字节最低位代表读写位,第二字节SUB寄存器高位为1表示自动加subaddress

SCCB采用的是8位地址数据,比如0x42,B01000010
使用I2C协议时,第一次就得发送地址0x42.但是,在往地址寄存器中写时,只需要写0100001这个值到相应地址寄存器即可。
故I2C只需写入0x21即可。实际发送时,比如读时,处理器自动组合成01000011=0x43
写时自动组合成01000010 = 0x42;

还需要知道,I2C等第一次发送的数据是地址和数据方向组合而成。有的处理器直接带有地址寄存器就直接写入高7位即可。而有的没有,直接发送首个数据。那这7位在MSB处,LSB为方向位。如上所述。
原文地址:https://www.cnblogs.com/javawebsoa/p/3231145.html