OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3627|回复: 4

MPU6050 DMP初始化失败

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-6-21
在线时间
0 小时
发表于 2017-6-21 22:02:08 | 显示全部楼层 |阅读模式
1金钱
问个问题,使用 Mpu6050时 dmp初始化失败 具体是在

res=dmp_load_motion_driver_firmware();                //加载dmp固件
                if(res)return 4;
里面的
if (memcmp(firmware+ii, cur, this_write))
            return -2;这里会返回-2 然后直接跳出dmp初始化函数


如果把这个memcmp地方注释掉就能过但是自检那里res=run_self_test();                //自检
                if(res)return 8;  又会出错,

我已经在DMP初始化前加了__set_PRIMASK(1);中断总中断,没有效果 模块是直接插在板子上的,没有通过杜邦先连接,SDA和SCL端口分别是PD8和PD9
同时接了OLED,下面附部分代码:

int main(void)
{         
                        u8 t;
                        u16 led0pwmval=0,j=600;
                        u8 dir=1;       
                        delay_init();                     //延时函数初始化         
                        IIC_Init();//初始化IIC总线       
                        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
                        uart_init(115200);                 //串口初始化为115200
                        LED_Init();                             //LED端口初始化
                        Adc_Init();                                  //ADC初始化
                            MPU_Init();                                        //初始化MPU6050
                        OLED_Init();                                //初始化OLED       
                        TIM3_PWM_Init(900-1,0);         //不分频。PWM频率=72000000/900=80Khz
                        TIM4_Int_Init(2-1,7200);//10Khz的计数频率,计数到10为1ms  
                        center_Init();//初始化center
                        CCDIO_Init();        //初始化CCDIO
                        HC595_Init();         //初始化HC595
                        HC165IO_Init();//初始化HC165
                       
                        OLED_P16x16Ch(17,0,0);//17
                        OLED_P16x16Ch(34,0,1);
                        OLED_P16x16Ch(51,0,2);
                        OLED_P16x16Ch(68,0,3);
                        OLED_P16x16Ch(85,0,4);
                        OLED_P16x16Ch(0,2,5);
                        OLED_P16x16Ch(17,2,6);
                        OLED_P16x16Ch(34,2,7);
                        OLED_P16x16Ch(51,2,8);
                        OLED_P16x16Ch(68,2,9);
                        OLED_P16x16Ch(85,2,10);
                        OLED_P16x16Ch(102,2,11);
                        OLED_CLS();//清屏       
                                OLED_P8x16Str(30,0,"请将飞行器");
        OLED_P8x16Str(24,2,"置于水平状态");
        OLED_P8x16Str(30,4,"且保持静止");
        __set_PRIMASK(1);
                        if(mpu_dmp_init())
        {
                OLED_P8x16Str(0,5,"MPU6050 Error");//??? -- 8x16???????ASCII?       
        }
        else
        {
        OLED_P8x16Str(0,5,"RUN");
        }



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-6-22 21:33:58 | 显示全部楼层
是我们开发板的话,直接用我们例程,应该可以才对。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-7-15
在线时间
12 小时
发表于 2017-7-15 11:21:50 | 显示全部楼层
我的也是这样的错误,下例程可以,移到我的程序中就执行不过去
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-8-8
在线时间
0 小时
发表于 2017-8-8 15:20:09 | 显示全部楼层
正点原子 发表于 2017-6-22 21:33
是我们开发板的话,直接用我们例程,应该可以才对。

我用的是V3的代码,战舰的V2老板子,也出现6050初始化失败的提醒。。。求帮忙
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-8-14 02:09:19 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 11:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表