I2C的通信都是遵守I2C通信协议的,跟使用什么芯片没关系,有差别的地方在于有些芯片用单字节的读写,有些用多字节的读写,建议去看I2C通信协议,以不变应万变。
单字节写:
把 MMA7455 7位的设备地址+第8位 表示写,写入,等待处理从机的ACK,再写入8位寄存器地址,等待处理从机的ACK,再写入8位数据,等待处理从机的ACK,结束
单字节读:
把 MMA7455 7位的设备地址+第8位 表示写,写入,等待处理从机的ACK,再写入8位寄存器地址,等待处理从机的ACK,再写入7位的设备地址+第8位 表示读, 接着读取8位数据,等待处理从机的ACK,结束
如果从机的寄存器地址是 16位的,则连续分两次发送,一次发8位;如果从 从机寄存器读到的数据是16位,则连续读2次 8位。 这个要看芯片手册这个芯片是不是多字节读取的,还可以结合I2C 读写驱动里面是怎么写的,看读取完放在一个多大的数组