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条回答
摩天轮1111
2019-07-20 13:57
回复【3楼】知星:
---------------------------------
你说的很对,我实验过了,我使用的是硬件iic,可以自己看出设置的速度是多少,我的实验发现的是如果iic速率高了,我这里是超过200KHZ的画,就会出现加载DMP固件,以及其他的初始化设置mpu_dmp_init()的时候就会出错,但是如果iic的速率低了,我实验的是如果开优化的话,低于100khz时候,读取dmp fifo就会出错了,读不出值,如果不开优化,那么速度可以低到80KHZ去读取fifo,开了优化基本要大于100KHZ才行,等于100KHZ也是不行的,

一周热门 更多>