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
1楼-- · 2019-07-20 13:57
回复【3楼】知星:
---------------------------------
你说的很对,我实验过了,我使用的是硬件iic,可以自己看出设置的速度是多少,我的实验发现的是如果iic速率高了,我这里是超过200KHZ的画,就会出现加载DMP固件,以及其他的初始化设置mpu_dmp_init()的时候就会出错,但是如果iic的速率低了,我实验的是如果开优化的话,低于100khz时候,读取dmp fifo就会出错了,读不出值,如果不开优化,那么速度可以低到80KHZ去读取fifo,开了优化基本要大于100KHZ才行,等于100KHZ也是不行的,
正点原子
2楼-- · 2019-07-20 18:32
 精彩回答 2  元偷偷看……
知星
3楼-- · 2019-07-20 19:23
 精彩回答 2  元偷偷看……
Director_Liu
4楼-- · 2019-07-20 20:36
我把MPU6050的程序一直到了MINI板子上,mpu_dmp_init()这一步出错,返回值是8,求大神指教。
王子期待
5楼-- · 2019-07-20 23:25
 精彩回答 2  元偷偷看……
yummychop
6楼-- · 2019-07-21 05:17
楼主,问题解决了吗?

一周热门 更多>