/** * @brief * @param * @retval **/ unsigned char mpu6050_read_zero_offsent(void) { static unsigned char check_num=0; static unsigned int Acce_offsent_X , Acce_offsent_Y , Acce_offsent_Z; static unsigned int Gyro_offsent_X , Gyro_offsent_Y , Gyro_offsent_Z; if(check_num==0) { memset((int8_t *)&mpu6050_zero_offsent,0,14); } if(check_num<200) { mpu6050_read_data(); //读一次mpu6050内部数据 Acce_offsent_X += mpu6050_ramdata.Acce[0]; Acce_offsent_Y += mpu6050_ramdata.Acce[1]; Acce_offsent_Z += mpu6050_ramdata.Acce[2]; Gyro_offsent_X += mpu6050_ramdata.Gyro[0]; Gyro_offsent_Y += mpu6050_ramdata.Gyro[1]; Gyro_offsent_Z += mpu6050_ramdata.Gyro[2]; check_num++; printf("%d %d %d %d %d %d\n\r",mpu6050_ramdata.Acce[0],mpu6050_ramdata.Acce[1],mpu6050_ramdata.Acce[2], mpu6050_ramdata.Gyro[0] ,mpu6050_ramdata.Gyro[1],mpu6050_ramdata.Gyro[2]); return FALSE; } check_num=0 ; mpu6050_zero_offsent.Acce[0] =Acce_offsent_X /check_num; mpu6050_zero_offsent.Acce[1] =Acce_offsent_Y /check_num; mpu6050_zero_offsent.Acce[2] =Acce_offsent_Z /check_num; mpu6050_zero_offsent.Gyro[0] =Gyro_offsent_X /check_num; mpu6050_zero_offsent.Gyro[1] =Gyro_offsent_Y /check_num; mpu6050_zero_offsent.Gyro[2] =Gyro_offsent_Z /check_num; return TRUE; }
static int mpu6050_read_accel(struct mpu6050_data *mpu6050) { return mpu6050_read_data(mpu6050, 1); }
static int mpu6050_read_temprature(struct mpu6050_data *mpu6050) { return mpu6050_read_data(mpu6050, 2); }
static int mpu6050_read_gyro(struct mpu6050_data *mpu6050) { return mpu6050_read_data(mpu6050, 0); }