zhanwang_sky 发表于 2013-10-13 20:28:38

发现一个MPU6050官方库自检问题

在 "inv_mpu.c" 500行左右有这样一段代码const struct test_s test = {
    /*.gyro_sens      = */32768/250,
    /*.accel_sens   = */32768/16,
    /*.reg_rate_div   = */0,    /* 1kHz. */
    /*.reg_lpf      = */1,    /* 188Hz. */
    /*.reg_gyro_fsr   = */0,    /* 250dps. */
    /*.reg_accel_fsr= */0x18, /* 16g. */
    /*.wait_ms      = */50,
    /*.packet_thresh= */5,    /* 5% */
    /*.min_dps      = */10.f,
    /*.max_dps      = */105.f,
    /*.max_gyro_var   = */0.14f,
    /*.min_g          = */0.3f,
    /*.max_g          = */0.95f,
    /*.max_accel_var= */0.14f
};这是在运行自检时用到的
注意/*.reg_accel_fsr= */0x18, /* 16g. */ 这行把加速度计的满量程设置在±16g,而RM手册上是这样写的


最后上面那个结构体的 reg_accel_fsr 成员在 static int get_st_biases(long *gyro, long *accel, unsigned char hw_test) 函数中被引用if (hw_test)
      data = st.test->reg_accel_fsr | 0xE0;
    else
      data = test.reg_accel_fsr;
    if (i2c_write(st.hw->addr, st.reg->accel_cfg, 1, data))
      return -1;现在自己还没测试,明天上传测试结果。。。还望看到的大神们能帮研究一下{:tongue:}

zhanwang_sky 发表于 2013-10-15 20:03:40

昨天没工夫弄这个,实践证明应该是参考文档错了,自检时加速度计满量程范围设置在±8g无法通过自检。。。

iseafish 发表于 2014-12-10 11:02:09

你好,能共享你的官方自检文档吗?
页: [1]
查看完整版本: 发现一个MPU6050官方库自检问题