colin1129 发表于 2014-12-3 14:58

mpu6050静止时数据问题

mpu6050静止时,stm32作主控板,芯片水平朝上放置,Z轴加速度为1G,但是当我180度翻转时,z轴加速度为2G,我再摆动Z轴此时变为-1.9G,再搬动就慢慢变动0再到水平1G。。为什么不是从-1变。
部分代码
void InitMPU6050()
{
        my_i2c_Configuration();//端口配置
        my_i2c_ByteWrite(PWR_MGMT_1, 0x00);          //复位模式   
        my_i2c_ByteWrite(SMPLRT_DIV, 0x07);   //1KHZ 陀螺仪采样频率   
        my_i2c_ByteWrite(CONFIG, 0x06);   //配置陀螺仪Y   19ms 18ms采集,这个重新设置
    //my_i2c_ByteWrite(CONFIG, 0x03);   //配置陀螺仪Y   4.9ms加速度 4.8ms陀螺仪采集一次,这个重新设置
        my_i2c_ByteWrite(GYRO_CONFIG, 0x18);   //2000° 无自检   16.4每位   
        my_i2c_ByteWrite(ACCEL_CONFIG, 0x01);    //加速度满量程+-2g
}
int16_t GetData(uchar REG_Address)
{
        int16_t DataTemp;
        uint8_t L,H;
       
        H=my_i2c_ByteRead(REG_Address);
        L=my_i2c_ByteRead(REG_Address+1);

//printf("H=%d,L=%d",H,L);
      DataTemp=(H<<8)|L;
        return DataTemp;   
}
Mpu6050_DataStruct.ACCEL_Z=GetData(ACCEL_ZOUT_H)/16384.0;//获取Z轴加速度
页: [1]
查看完整版本: mpu6050静止时数据问题