MPU6050利用DMP读取fifo数据时出错

2019-07-20 12:42发布

    根据F4“MPU6050 六轴传感器实验“部分稍微修改了一下(核心代码基本没改),初始化啥的没有什么问题,但是在mpu_dmp_get_data(&pitch,&roll,&yaw)时候失败了,调试时候发现在执行时对应  mpu_dmp_get_data()-->dmp_read_fifo()-->mpu_read_fifo_stream()这一函数下执行了:
[mw_shl_code=c,true]if (tmp[0] & BIT_FIFO_OVERFLOW) { mpu_reset_fifo(); return -2; }[/mw_shl_code] 也就是说FIFO溢出了??网上说可能是I2C驱动的读写驱动有问题但是我MPU6050的原始数据是可以正确读出来的(下图),不知道有谁遇到过这个问题指点一下!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
25条回答
yinshiyouquan
2019-07-23 00:52
我用硬件i2c,100和400的速度都试过可以用,溢出问题正如前面说的,是因为函数mpu_dmp_get_data(&pitch,&roll,&yaw)执行的过慢,1S调取一次,一定会出现失败,后来我在main的while函数循环执行这个函数,然后根据业务需要定时提取pitch,roll,yaw三个数据,不是要的时候再调用这个函数,另外正点原子里面的参考例程,这个函数也是一直在快速执行的

一周热门 更多>