OpenEdv-开源电子网

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

对STM32F103正点原子的6050MPU代码存在疑惑

[复制链接]

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2021-2-5
在线时间
135 小时
发表于 2021-3-3 18:00:21 | 显示全部楼层 |阅读模式
1金钱
if(mpu_dmp_get_data(&pitch,&roll,&yaw)==0)
                {
                        temp=MPU_Get_Temperature();        //得到温度值
                        MPU_Get_Accelerometer(&aacx,&aacy,&aacz);        //得到加速度传感器数据
                        MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);        //得到陀螺仪数据
                        if(report)mpu6050_send_data(aacx,aacy,aacz,gyrox,gyroy,gyroz);//用自定义帧发送加速度和陀螺仪原始数据
                        if(report)usart1_report_imu(aacx,aacy,aacz,gyrox,gyroy,gyroz,(int)(roll*100),(int)(pitch*100),(int)(yaw*10));
                        printf("pitch:%f,roll:%f,yaw:%f,aacx:%d,aacy:%d,aacz:%d",pitch,roll,yaw,aacx,aacy,aacz);
                        printf("\r\n");
这段代码我是看了很久都没有弄明白,没明白的地方在于,上面的pitch,roll,yaw三个变量只是单纯传给mpu_dmp_get_data(,,,)做参数,然后就单纯输出了,现在的问题是,下面调用得到陀螺仪数据的函数用来做什么?二者之间我查了整个文件都没有查到联系,我把下面得到陀螺仪数据的函数注释了,输出还是一样的,说明调用这个函数和上面的三个变量没有关系,但是我研究了mpu_dmp_get_data()函数,只是对传进去的参数进行处理,这个处理我能看明白的就是处理格式,还有就是MPU_Get_Accelerometer()和MPU_Get_Gyroscope()得到的数据该怎么处理?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3627
金钱
3627
注册时间
2019-8-14
在线时间
1054 小时
发表于 2021-3-4 18:13:13 | 显示全部楼层
MPU_Get_Accelerometer()和MPU_Get_Gyroscope()得到模块输出的原始数据,想要把数据发送到匿名上位机显示的话,就是调用2个if判断后面的函数,想要处理原始数据,显示到显示屏,或者是把数据打印到串口助手直接显示,就是下面的代码,有对原始数据进行转换处理
回复

使用道具 举报

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2021-2-5
在线时间
135 小时
 楼主| 发表于 2021-3-7 22:46:20 | 显示全部楼层
hou18 发表于 2021-3-4 18:13
MPU_Get_Accelerometer()和MPU_Get_Gyroscope()得到模块输出的原始数据,想要把数据发送到匿名上位机显 ...

别钓胃口啊,前辈,什么代码?
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
发表于 2021-3-8 10:21:32 | 显示全部楼层
15284083060 发表于 2021-3-7 22:46
别钓胃口啊,前辈,什么代码?

将得到的原始数据,传到匿名上位机显示
回复

使用道具 举报

6

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2013-4-9
在线时间
76 小时
发表于 2021-3-8 10:35:21 | 显示全部楼层
严格说pitch,roll,yaw三个变量地址传递给mpu_dmp_get_data,运算得到欧拉角
签名必须手写!
回复

使用道具 举报

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2021-2-5
在线时间
135 小时
 楼主| 发表于 2021-3-8 15:07:41 | 显示全部楼层
sf116 发表于 2021-3-8 10:35
严格说pitch,roll,yaw三个变量地址传递给mpu_dmp_get_data,运算得到欧拉角

源代码的确是传进去运算了的,具体是调用了 DMP姿态解算,那加速度也是这样吗,有没有加速度的DMP处理代码?
回复

使用道具 举报

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2021-2-5
在线时间
135 小时
 楼主| 发表于 2021-3-8 15:08:32 | 显示全部楼层
DFY 发表于 2021-3-8 10:21
将得到的原始数据,传到匿名上位机显示

前辈,是通过串口打印吗,如果是,数据应该不对
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
发表于 2021-3-8 15:12:04 | 显示全部楼层
15284083060 发表于 2021-3-8 15:08
前辈,是通过串口打印吗,如果是,数据应该不对

它是将六轴的原始数据封装成匿名上位机的格式,然后通过串口上传给匿名上位机进行解析这些数据,进行波形显示,姿态角这些。
回复

使用道具 举报

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2021-2-5
在线时间
135 小时
 楼主| 发表于 2021-3-8 18:59:22 | 显示全部楼层
DFY 发表于 2021-3-8 15:12
它是将六轴的原始数据封装成匿名上位机的格式,然后通过串口上传给匿名上位机进行解析这些数据,进行波形 ...

但是我的目的是要得到想欧拉角这样的准确数据,然后上传到后台
回复

使用道具 举报

6

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2013-4-9
在线时间
76 小时
发表于 2021-3-9 14:39:49 | 显示全部楼层
15284083060 发表于 2021-3-8 15:07
源代码的确是传进去运算了的,具体是调用了 DMP姿态解算,那加速度也是这样吗,有没有加速度的DMP处理代 ...

DMP融合了加速度和角速度。
签名必须手写!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 17:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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