当我尝试读取MPU6050 IC的陀螺仪或Acc寄存器时,会收到零值

时间:2014-08-19 06:17:02

标签: microcontroller pic electronics

我坚持这种奇怪的行为,我在我的项目中使用MPU6050模块 当我读到WHO_AM_I寄存器时,我得到0x68值,我也禁用了SLEEP 当我写一些配置寄存器&读它我得到正确的数据,这意味着我的I2C通信工作正常

现在的问题是,当我尝试读取陀螺仪或Acc数据时,我总是得到零 我不知道出了什么问题你能告诉我这可能是什么原因吗?

我正在使用以下代码

读取传感器值
           GyroX.byte[1] = ReadByte(MPU6050_RA_GYRO_XOUT_L);
           //Delay();
           GyroX.byte[0] = ReadByte(MPU6050_RA_GYRO_XOUT_H);
           //Delay();
           GyroY.byte[0] = ReadByte(MPU6050_RA_GYRO_YOUT_H);
           //Delay();
           GyroY.byte[1] = ReadByte(MPU6050_RA_GYRO_YOUT_L);
           //Delay();
           GyroZ.byte[0] = ReadByte(MPU6050_RA_GYRO_ZOUT_H);
           //Delay();
           GyroZ.byte[1] = ReadByte(MPU6050_RA_GYRO_ZOUT_L);
           //Delay();
           AccX.byte[0] = ReadByte(MPU6050_RA_ACCEL_XOUT_H);
           //Delay();
           AccX.byte[1] = ReadByte(MPU6050_RA_ACCEL_XOUT_L);
           //Delay();
           AccY.byte[0] = ReadByte(MPU6050_RA_ACCEL_YOUT_H);
           //Delay();
           AccY.byte[1] = ReadByte(MPU6050_RA_ACCEL_YOUT_L);
           //Delay();
           AccZ.byte[0] = ReadByte(MPU6050_RA_TEMP_OUT_H);
           //Delay();
           AccZ.byte[1] = ReadByte(MPU6050_RA_TEMP_OUT_L);

谢谢大家

1 个答案:

答案 0 :(得分:0)

确保以下引脚连接到具有下述额定值的电容器,如数据表中所示。

REGOUT:稳压滤波电容连接。稳压器滤波电容(引脚10),陶瓷,X7R,0.1μF±10%,2V。

CPOUT:电荷泵电容连接。电荷泵电容(引脚20),陶瓷,X7R,2.2nF±10%,50V。