[STM32F0] MPU6050无法通过自检

[复制链接]
3063|5
 楼主| Cjy_JDxy 发表于 2017-11-22 17:13 | 显示全部楼层 |阅读模式
//mpu6050,dmp初始化
//返回值0正常
//    其他失败
u8 mpu_dmp_init(void)
{
        unsigned long int i;
        u8 res=0;
        IIC_Init();         //初始化I2C总线
        for(i=0;i<4000000;i++);
        if(mpu_init()==0)        //初始化MPU6050
        {         
                res=mpu_set_sensors(INV_XYZ_GYRO|INV_XYZ_ACCEL);//ÉèÖÃËùÐèÒªµÄ´«¸ÐÆ÷
                if(res)return 1;
                res=mpu_configure_fifo(INV_XYZ_GYRO|INV_XYZ_ACCEL);//ÉèÖÃFIFO
                if(res)return 2;
                res=mpu_set_sample_rate(DEFAULT_MPU_HZ);        //ÉèÖòÉÑùÂÊ
                if(res)return 3;
                res=dmp_load_motion_driver_firmware();                //¼ÓÔØdmp¹Ì¼þ
                if(res)return 4;
                res=dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation));//ÉèÖÃÍÓÂÝÒÇ·½Ïò
                if(res)return 5;
                res=dmp_enable_feature(DMP_FEATURE_6X_LP_QUAT|DMP_FEATURE_TAP|        //ÉèÖÃdmp¹¦ÄÜ
                    DMP_FEATURE_ANDROID_ORIENT|DMP_FEATURE_SEND_RAW_ACCEL|DMP_FEATURE_SEND_CAL_GYRO|
                    DMP_FEATURE_GYRO_CAL);
                if(res)return 6;
                res=dmp_set_fifo_rate(DEFAULT_MPU_HZ);        //ÉèÖÃDMPÊä³öËÙÂÊ(×î´ó²»³¬¹ý200Hz)
                if(res)return 7;   
                res=run_self_test();                //自检
                if(res)return 8;   
                res=mpu_set_dmp_state(1);        //ʹÄÜDMP
                if(res)return 9;     
        }else return 10;
        return 0;
}
我搞MPU6050,无法通过自检。返回值是1.
请高手指教,谢谢!

 楼主| Cjy_JDxy 发表于 2017-11-22 17:32 | 显示全部楼层
我把自检那两句话注释掉,运行程序,也可以测到数据。
三个角速度值:
        MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);        //得到陀螺仪数据
我把陀螺仪板子水平放置不动。
4.png

这样是准还是不准呢?


mmuuss586 发表于 2017-11-22 20:16 | 显示全部楼层

数据会变吗?
如果一直变那可能是对的;不变肯定不对
一路向北lm 发表于 2017-11-22 22:12 | 显示全部楼层
看你发的数据好像有变化。
 楼主| Cjy_JDxy 发表于 2017-11-23 08:22 | 显示全部楼层
mmuuss586 发表于 2017-11-22 20:16
数据会变吗?
如果一直变那可能是对的;不变肯定不对

会变
yujy543210 发表于 2018-11-26 14:49 | 显示全部楼层
无法通过自检,总是返回1的原因之一是:自检时陀螺仪没放平,导致校准时偏差太大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:绿水本无忧因风皱面,青山原不老为雪白头。

553

主题

3530

帖子

20

粉丝
快速回复 在线客服 返回列表 返回顶部