STM32 MPU6050 使用DMP遇到的问题-提示Product ID read as 0 indicates device is either incomp

STM32 MPU6050 使用DMP遇到的问题
如题,在移植了原子的DMP库后,遇到了死在"Product ID read as 0 indicates device is either incompatible or an MPU3050."的问题,但是却可以读出6050的地址0x68(AD0接地),论坛有个老哥也遇到了这个问题,他的帖子https://blog.csdn.net/qq_42208483/article/details/82928794
出问题的地方在:

if (i2c_read(st.hw->addr, st.reg->prod_id, 1, data))
            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;

prod_id这个寄存器地址是0x0c,寄存器手册上并没有写出这个寄存器,猜测应该是自检的一个寄存器吧。只能放弃从寄存器着手查找问题。
论坛有其他人碰到能读出ID不能读出数据的情况,详情:
https://blog.csdn.net/qq_26039737/article/details/79214887
这篇帖子总结的很好,说的是可能PWR_MGMT_1 寄存器的睡眠位处于开启状态,所以要清零睡眠位(唤醒)才可以正常读取数据。但是我重新读了PWR_MGMT_1寄存器,发现PWR_MGMT_1值为0,所以排除6050休眠可能。
最后怀疑是芯片损坏,因此重新焊了一片,就能正常读出数据了。和开头那篇帖子的博主的结论一样。

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值