求助陀螺仪MPU-DMP初始化问题,使用F407原子例程移植F103

2019-10-15 20:23发布

我参照原子F407原子例程移植到F103上。 DMP文件那些都没有动, 但是发现程序一直卡在MPU-DMP初始化这里。经过我的一步一步排查 ,发现是MPU6050自检失败 。对于DMP这块 我没有研究完全 搬得原子里边的代码,我也没有动过。求大神指点 下边代码中卡在result那里 result返回值为0
代码如下  
//MPU6050×?????
//·?????:0,????
//    ????,?§°?
u8 run_self_test(void)
{
int result;
//char test_packet[4] = {0};
long gyro[3], accel[3]; 
result = mpu_run_self_test(gyro, accel);
if (result == 0x3) 
{
/* Test passed. We can trust the gyro data here, so let's push it down
* to the DMP.
*/
float sens;
unsigned short accel_sens;
mpu_get_gyro_sens(&sens);
gyro[0] = (long)(gyro[0] * sens);
gyro[1] = (long)(gyro[1] * sens);
gyro[2] = (long)(gyro[2] * sens);
dmp_set_gyro_bias(gyro);
mpu_get_accel_sens(&accel_sens);
accel[0] *= accel_sens;
accel[1] *= accel_sens;
accel[2] *= accel_sens;
dmp_set_accel_bias(accel);
return 0;
}else return 1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
正点原子
1楼-- · 2019-10-16 00:30
qgw
2楼-- · 2019-10-16 01:16
回复  那远远的云端:
---------------------------------

你把 MPU6050 放平了,重启 。
Director_Liu
3楼-- · 2019-10-16 02:40
 精彩回答 2  元偷偷看……
Director_Liu
4楼-- · 2019-10-16 05:08
更具体的说是mpu_run_self_test(gyro, accel)里面
result = 0;
    if (!gyro_result)
        result |= 0x01;
    if (!accel_result)
        result |= 0x02;
两个if条件都不满足导致的,问题我现在也没解决。
那远远的云端
5楼-- · 2019-10-16 09:18
回复【4楼】正点原子:
---------------------------------
多谢原子哥了 刚开始也搜索了好久  愣是没看到这个帖子 汗。。。
q27488
6楼-- · 2019-10-16 14:46
回复【5楼】那远远的云端:
---------------------------------
我是卡在了 MPU_Init(); 这里返回1, 初始化失败,然后我试着改变 器件地址也不行啊!

一周热门 更多>