手册的8.3.15.5描述了i2c与芯片的通信逻辑,前面的章节描述了命令为 16bit,返回数据也为16bit。c d两个图都是8bit命令形式,可以按照a图发送16bit命令,但如何读取返回的16bit数据呢?地址指针又是如何设置的呢?如果使用b图读取1字节 之后,主机返回nack,地址指针并不会增加,第二字节就永远读不到了么?
Cheng.W:
主机发ACK,从机会持续返回值,按起始寄存器地址递增返回值
第二个字节,只要主机不发ACK,或者发送P,也就是END的指令,会停止。
changming tian:
回复 Cheng.W:
谢谢您帮忙 那么读的起始地址如何设置呢?读回的多字节数据是以大端还是小端形式呢?
changming tian:
回复 Cheng.W:
谢谢您帮忙 那么读的起始地址如何设置呢?读回的多字节数据是以大端还是小端形式呢?
Cheng.W:
回复 changming tian:
起始地址是有主机发送的,
主机发送Start, 主机发送device Addr, 主机发送需要读取的寄存器其实地址,主机发送Re-start, 在等待返回数据。(前面的ACK都需要从机回应)
寄存器是按照LSB 形式,
changming tian:
回复 Cheng.W:
谢谢