OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 207|回复: 4

调用MPU6050的DMP功能fifo数据溢出

[复制链接]

5

主题

52

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2016-3-1
在线时间
65 小时
发表于 2024-4-11 23:03:54 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 feiyinglala 于 2024-4-11 23:13 编辑

使用STM43F429驱动MPU6050,现象:从寄存器直接读取加速度和陀螺仪数据是正常的,但是调DMP读取到数据为0
进入仿真发现:dmp_read_fifo函数中,mpu_read_fifo_stream读取报错,在下图的步骤异常的
if (tmp[0] & BIT_FIFO_OVERFLOW) {
            mpu_reset_fifo();   //执行到此异常
我参照帖子,把I2C速率改为100k,没解决;我把DEFAULT_MPU_HZ 由100将为10,还是没解决。
主函数调用函数为
  1. while(1)
  2. {
  3.         while(MPU6050_DMP_Get_Data(&pitch,&roll,&yaw)!=0){}
  4.         {
  5.                 printf("pitch = %f, roll = %f, yaw = %f \r\n",pitch, roll, yaw);
  6.                
  7.         }
  8.         mpu_get_accel_reg(mpu_test,mpu_timestamp);
  9.         printf("accel X = %d, accel Y = %d, accel Z = %d \r\n",mpu_test[0], mpu_test[1], mpu_test[2]);
  10. }
复制代码




求指点。
我有俩个困惑:
一是  如果是因为读太慢,导致异常,那我做飞控,岂不是一直要不停读,MCU不干其他事了?
二是  我看MPU6050数据手册,寄存器、FIFO和DMP模块都是挂在一个主线上,我频繁调用读取数据,是否会影响MPU6050内部模块间的数据传递。

最佳答案

查看完整内容[请看2#楼]

终于解决了,给坛友们分享一下。主要是2步 1.初始化时候就把FIFO的存量数据读完,https://blog.csdn.net/weixin_45611097/article/details/131514656 2.利用MPU中断及时将数据读出 3.降低取样频率,增加FIFO的空间,【FIFO空间增大是关键】 https://blog.csdn.net/weixin_50491538/article/details/132078315
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

52

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2016-3-1
在线时间
65 小时
 楼主| 发表于 2024-4-11 23:03:55 | 显示全部楼层
终于解决了,给坛友们分享一下。主要是2步
1.初始化时候就把FIFO的存量数据读完,https://blog.csdn.net/weixin_45611097/article/details/131514656
2.利用MPU中断及时将数据读出
3.降低取样频率,增加FIFO的空间,【FIFO空间增大是关键】
https://blog.csdn.net/weixin_50491538/article/details/132078315
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2024-4-24 22:48:26 | 显示全部楼层
feiyinglala 发表于 2024-4-23 21:05
终于解决了,给坛友们分享一下。主要是2步
1.初始化时候就把FIFO的存量数据读完,https://blog.csdn.net/w ...

谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2024-4-24 22:48:47 | 显示全部楼层
feiyinglala 发表于 2024-4-11 23:03
终于解决了,给坛友们分享一下。主要是2步
1.初始化时候就把FIFO的存量数据读完,https://blog.csdn.net/w ...

谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

52

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2016-3-1
在线时间
65 小时
 楼主| 发表于 2024-5-2 21:39:13 | 显示全部楼层

谢谢原子哥捧场
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-8 07:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表