本帖最后由 UES123 于 2014-12-18 20:40 编辑
在项目中,适用KL16作为主机 去读取从机的一个寄存器的16位的值。按照网上找的步骤:
I2C_START
1、write(slaveadd & write)
2、write (reg & write)
3、restart
4、write (slaveadd | read)
5、read dummy
6、read data_h
7、 I2C_STOP
8、read data_l
但是我读出来的数据完全不对,按照这个流程,我至少应该有3个字节的波形,但是我示波器看的却只有2个字节,而且第一个全0,第二个全1,读取出来就成了 0xFF,明显与我的预期不符。
请大侠们帮忙解答一下,I2C 读取寄存器的16位或者多字节的流程是怎样的?谢谢!!! |