完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题出在移植的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个回答
|
|
是I2C延时太多导致FIFO阻塞 解决了
|
|
|
|
参考我们例程
|
|
|
|
|
|
|
|
怎么提高读取速度?现在已经读出姿态角了 地面站也显示了 但是数据传着传着突然卡住了 数据还在传 但是我改变传感器位置数据不变
|
|
|
|
试试提高你调用 mpu_dmp_get_data() 函数的频率,跟你在配置 DMP 时配置的 FIFO 匹配一下
|
|
|
|
就是参考你的的例程的 现在mpu数据无故卡死 重启还没有用 只能重新烧代码才能解决
|
|
|
|
我都没有用中断了 我都直接在主函数里while(1)里面读数了 还是会卡死
|
|
|
|
感觉这样读数据的话应该是有时返回 0 值表示读取正常,有时返回 非0 值表示读取失败,因为读取速度比数据生成的速度快了
|
|
|
|
|
|
|
|
请问楼主,地面站显示3D模型姿态变化需要修改例程么?为什么我用例程只能读取到原始数据,晃动板子3D模型没有变化
|
|
|
|
我现在用的是4.22的地面站 改改它自带的协议代码就读到了 3D模型的话只要传3个姿态角并解锁就行了 这么久没上不知道你搞定了没
|
|
|
|
嗯嗯谢谢LZ,搞定啦
|
|
|
|
if (!st.chip_cfg.dmp_on) return -1; if (!st.chip_cfg.sensors) return -1; if (i2c_read(st.hw->addr, st.reg->fifo_count_h, 2, tmp)) return -1; fifo_count = (tmp[0] << 8) | tmp[1]; if (fifo_count < length) { more[0] = 0; return -1; } 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 (!st.chip_cfg.dmp_on)return -1; 我返回这个-1是什么原因呢
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-19 13:18 , Processed in 0.655295 second(s), Total 83, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号