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轴加速度
|