根据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的原始数据是可以正确读出来的(下图),
不知道有谁遇到过这个问题指点一下!
---------------------------------
你说的很对,我实验过了,我使用的是硬件iic,可以自己看出设置的速度是多少,我的实验发现的是如果iic速率高了,我这里是超过200KHZ的画,就会出现加载DMP固件,以及其他的初始化设置mpu_dmp_init()的时候就会出错,但是如果iic的速率低了,我实验的是如果开优化的话,低于100khz时候,读取dmp fifo就会出错了,读不出值,如果不开优化,那么速度可以低到80KHZ去读取fifo,开了优化基本要大于100KHZ才行,等于100KHZ也是不行的,
一周热门 更多>