自己焊接的MPU6050模块在初始化始终不通过。

MPU_Init();                  //初始化MPU6050
while(mpu_dmp_init()){LCD_ShowString(30,130,200,16,16,"MPU6050 Error");delay_ms(200);LCD_Fill(30,130,239,130+16,WHITE);delay_ms(200);}

发现是挂在mpu_dmp_init,return 8

//mpu6050,dmp初始化
//返回值:0,正常
//    其他,失败
u8 mpu_dmp_init(void)
{u8 res=0;IIC_Init();      //初始化IIC总线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);//设置FIFOif(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);  //使能DMPif(res)return 9;     }return 0;
}

再看run_self_test函数:

//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;
}

其中mpu_run_self_test返回的是0.
再看mpu_run_self_test,忽略其中的#define,核心内容如下:

    accel_result = accel_self_test(accel, accel_st);gyro_result = gyro_self_test(gyro, gyro_st);result = 0;if (!gyro_result)result |= 0x01;if (!accel_result)result |= 0x02;return result;

再往下就是读协议的事情了,IIC通信是没有问题的,初步怀疑是焊接时温度过高导致内部重力和加速度模块失效了,因为跳过自检后发现温度是可以正常获取的。

重新焊接换一个,热风枪温度调到270度,吹完用烙铁280度补锡,发现依然卡在这里。
仔细检查电路图:

发现,C76、C77没有焊接,试探性的补上,成功读取数据,OK了~

MPU6050电路自检失败解决方案相关推荐

  1. VRPM包安装失败解决方案:had non-zero exit status

    VRPM包安装失败解决方案:had non-zero exit status 目录 VRPM包安装失败解决方案:had non-zero exit status #VRPM包安装 #找到VRPM包的文 ...

  2. 用户 ‘IIS APPPOOL\IdealTest‘ 登录失败解决方案

    用户 'IIS APPPOOL\IdealTest' 登录失败解决方案 参考文章: (1)用户 'IIS APPPOOL\IdealTest' 登录失败解决方案 (2)https://www.cnbl ...

  3. linux用unzip解压.zip文件失败解决方案

    linux用unzip解压.zip文件失败解决方案 问题描述 在服务器上下载数据集之后进行解压,一般来说用unzip指令去解压.zip文件,有时候解压的时候会出现错误提示: unzip: cannot ...

  4. 阿里云windows server 2012安装.net framework3.5失败解决方案

    阿里云windows server 2012安装.net framework3.5失败解决方案 参考文章: (1)阿里云windows server 2012安装.net framework3.5失败 ...

  5. vue init失败解决方案-终极版

    vue init失败解决方案-终极版 参考文章: (1)vue init失败解决方案-终极版 (2)https://www.cnblogs.com/suger-life/p/8084368.html ...

  6. yarn install node-sass(gulp-sass) 安装失败解决方案

    yarn install node-sass(gulp-sass) 安装失败解决方案 参考文章: (1)yarn install node-sass(gulp-sass) 安装失败解决方案 (2)ht ...

  7. 谈谈spring-boot不同包结构下,同样的类名冲突导致服务启动失败解决方案

    谈谈spring-boot不同包结构下,同样的类名冲突导致服务启动失败解决方案 参考文章: (1)谈谈spring-boot不同包结构下,同样的类名冲突导致服务启动失败解决方案 (2)https:// ...

  8. Mysql容器启动失败-解决方案

    Mysql容器启动失败-解决方案 参考文章: (1)Mysql容器启动失败-解决方案 (2)https://www.cnblogs.com/mjiu/p/10040661.html 备忘一下.

  9. Win10 系统时间同步失败解决方案

    Win10 系统时间同步失败解决方案 1.控制面板 2.时钟和区域 3.日期和时间 4.Internet时间 5.更改设置 6.更改服务器为pool.ntp.org,立即更新 大家可以试试能不能解决, ...

最新文章

  1. Android App监听软键盘按键的三种方式(转)
  2. scuttle包对单细胞数据质控
  3. 远程计算机无法操作,Win10系统下qq远程不能控制对方电脑(点不动)的完全解决方法...
  4. for循环中一个不容小觑的问题
  5. 后台开发常用mysql语句_v1.0
  6. Python工作笔记-往dll中传入char*类型的参数并且如何接收char*的值
  7. 使用Webtask.io创建一个简单的REST API端点
  8. Linux下七牛云存储qrsync命令行上传同步工具
  9. 因为太难而被禁用的17道Google面试题
  10. 鸡蛋掉落----经典dp(动态规划)
  11. wxpython列表控件listctrl设置某行颜色_改变ListCtrl某行的背景色或者字体颜色
  12. 常用Windows运行命令大全
  13. ds18b20数字温度传感器特点及使用介绍
  14. spring-boot java.lang.ClassNotFoundException: org.thymeleaf.spring5.ISpringTemplateEngine
  15. mysql的user表被清空_用delete命令来个不小心删除了user表
  16. hp打印机计算机接口,hp打印机的端口怎么设置?各是什么意思?
  17. 括号配对检测python123_括的拼音_括组词_括意思(解释)-常用汉字大全
  18. 【戒焦戒躁,can win】Linux--IO文件描述符
  19. unlikely和likely的使用
  20. 连接MySql报错【ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)】

热门文章

  1. 干了八年java开发,被比自己小7岁的主管羞辱,这一刻好像真的意识到了什么是中年危机
  2. 相亲交友系统-海外交友-社交陪玩系统上线
  3. 微信小程序+Think PHP 5 授权登陆后获取手机号
  4. Glide 入门到精通之十二 ——自定义转换
  5. 苹果6换屏多钱_王者荣耀:苹果安卓跨区可任意转换,土豪却因充钱太多不能转移...
  6. 百度编辑器ueditor插入表格没有边框解决方法
  7. iphone win7无法识别_win7电脑插入苹果设备提示无法识别怎么办
  8. Comodo(Sectigo)中OV、EV代码签名证书的异同
  9. canvas 的动画卡顿问题(运行一段时间卡顿)
  10. c++ 树状数组三种方法