|
之前有调过MPU9150,用的是官方的DMP解姿态,现在在调MPU9250,想仍然用之前的那个DMP库,但是发现始终在MPU6050那里,根本进不去MPU6500,如下代码,怀疑是在哪里定义了MPU6050,但是找遍了都没有发现哪里定义了的,就想问一下,官方的DMP是在哪里定义了MPU6050么?不然是怎么找到是属于哪个设备呢? 望大神解答啊啊啊,万分感谢!
#if defined MPU6050 //连上MPU9250时也是直接跳到这里的,不会进入下面的 if defined 6500
/* Check product revision. */
if (i2c_read(st.hw->addr, st.reg->accel_offs, 6, data))
return -1;
rev = ((data[5] & 0x01) << 2) | ((data[3] & 0x01) << 1) |
(data[1] & 0x01);
if (rev) {
/* Congrats, these parts are better. */
if (rev == 1)
{ st.chip_cfg.accel_half = 1;}
else if (rev == 2)
{ st.chip_cfg.accel_half = 0;}
else {
GPIO_SetBits(GPIOB,GPIO_Pin_12);
log_e("Unsupported software product rev %d.\n");
return -1;
}
} else {
if (i2c_read(st.hw->addr, st.reg->prod_id, 1, &(data[0])))
return -1;
rev = data[0] & 0x0F;
if (!rev) {
log_e("Product ID read as 0 indicates device is either "
"incompatible or an MPU3050.\n");
return -1;
} else if (rev == 4) {
log_i("Half sensitivity part found.\n");
st.chip_cfg.accel_half = 1;
} else
st.chip_cfg.accel_half = 0;
}
#elif defined MPU6500 |
|