小弟最近在用F28335的I2C 来驱动MPU6050 我参考了德州仪器的例程i2c_eeprom 对其做了如下更改
1. 首先注释掉了 // Write data to EEPROM section // 因为我只想读取MPU6050 中的WHO_AM_I(地址0x75)寄存器的值
2.Uint16 I2CA_ReadData(struct I2CMSG *msg) 这个函数中: I2caRegs.I2CCNT = 1;
I2caRegs.I2CDXR = WHO_AM_I;
我知道MPU6050 的读时序 如下图
我发现它和EEPROM的读数是一样的 在我的程序中 RA=0x75 在数据手册中 这个时候读取的 DATA的值应该为 0x68
但是我通过仿真器 看到I2CDRR 中的值每次都是0x6b 不知道哪里出问题了
还有 问题1: 当I2CCNT 的值减为0 时 F283335 进入中断?
问题2 : 例程中设置 I2caRegs.I2CFFTX.all = 0x6000;
I2caRegs.I2CFFRX.all = 0x2040; 有何种作用呢?