综合技术
直播中

李丽波

7年用户 207经验值
私信 关注
[问答]

为什么我的MPU9250还是调整失败?

问题出在移植的DMP库里面 在走mpu_dmp_get_data()的时候,里面有个mpu_read_fifo_stream()函数,里面有个if语句是这样的
if (fifo_count > (st.hw->max_fifo >> 1)) {
        /* FIFO is 50% full, better check overflow bit. */
        if (i2c_read(st.hw->addr, st.reg->int_status, 1, tmp))
            return -1;
        if (tmp[0] & BIT_FIFO_OVERFLOW) {
            mpu_reset_fifo();
            return -2;
        }
    }
问题出在里面第二个if,直接return2了,函数前有这么一段注释
Get one unparsed packet from the FIFO.
*  This function should be used if the packet is to be parsed elsewhere.
*  @param[in]  length  Length of one FIFO packet.
*  @param[in]  data    FIFO packet.
*  @param[in]  more    Number of remaining packets.
意思大概是获得一个不符合语法的FIFO包,但我不懂那段if的含义 也不知道怎么改,请大佬讲解
还想问一下 mpu_dmp_get_data()和mpu_mpl_get_data()有什么区别?

回帖(14)

叶恒

2019-6-26 09:48:29
是I2C延时太多导致FIFO阻塞 解决了
举报

李秀荣

2019-6-26 10:05:29
参考我们例程
举报

孙世珍

2019-6-26 10:17:24
是返回 -2 还是 2?
如果返回 -2 了,按照注释可以看出是 FIFO 溢出了,可以提高数据读取速度,或增加 FIFO 大小试试看
举报

李丽华

2019-6-26 10:30:51
怎么提高读取速度?现在已经读出姿态角了 地面站也显示了 但是数据传着传着突然卡住了 数据还在传 但是我改变传感器位置数据不变
举报

更多回帖

发帖
×
20
完善资料,
赚取积分