发现一个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:} 昨天没工夫弄这个,实践证明应该是参考文档错了,自检时加速度计满量程范围设置在±8g无法通过自检。。。 你好,能共享你的官方自检文档吗?
页:
[1]