OpenEdv-开源电子网

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

关于电子罗盘的问题

[复制链接]

20

主题

120

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2015-6-4
在线时间
5 小时
发表于 2015-9-4 15:26:24 | 显示全部楼层 |阅读模式
5金钱
最近在调试GY-86模块,调试到HMC5883L的时候读回来的数据都是0,仔细看原理图发现HMC5883L的SDA,SCL是连接到MOU6050的XDA,XCL上的,这样的话就是MPU6050作为主机了,这样该怎么进行HMC5883L数据的读取呢?对MOU6050作为主IIC完全没有接触过。求助论坛里的大神们,先谢谢大家了!

最佳答案

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

如果你把MPU6050设置为主机,可能需要写6050的程序读取磁力计数据,再通过IIC给单片机,这样比较麻烦。建议把MPU6050配置为旁通模式,这样相当于内部短路,磁力计就直接连到了IIC上,具体实现: [mw_shl_code=c,true]MPU_Write_Byte(MPU_INTBP_CFG_REG,0X02);[/mw_shl_code] 这个是我参照其他代码写出来的,因为我没有找到MPU的寄存器方面的资料,所以... 但是这里注意到原子的F4开发板的MPU6050.c文件中第24行: [mw_sh ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2015-9-4 15:26:25 | 显示全部楼层
如果你把MPU6050设置为主机,可能需要写6050的程序读取磁力计数据,再通过IIC给单片机,这样比较麻烦。建议把MPU6050配置为旁通模式,这样相当于内部短路,磁力计就直接连到了IIC上,具体实现:
[mw_shl_code=c,true]MPU_Write_Byte(MPU_INTBP_CFG_REG,0X02);[/mw_shl_code]
这个是我参照其他代码写出来的,因为我没有找到MPU的寄存器方面的资料,所以...
但是这里注意到原子的F4开发板的MPU6050.c文件中第24行:
[mw_shl_code=c,true]MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80);[/mw_shl_code]
若题主参考原子代码,可以试把这里的寄存器改为0x82。

附录是我GY-86的工程,读取GY-86 10轴传感器并上传给匿名上位机V4.06
编译环境:MDK5
单片机:STM32F103RC
接线(只需四根): SDA-->C12      SCL-->C11    3.3V-->3.3V   GND-->GND

若使用我的工程,遇到一个DMP初始不成功时候,则拔出电源线再接入,此时串口又会输出HMC_error,按复位,基本就可以了。
猜测是模拟IIC的SDA线没有作上输入,故在原子哥代码上增添为:
[mw_shl_code=c,true]#define SDA_IN() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;GPIOC->ODR=1<<11;} //新增GPIOC->ODR=1<<11[/mw_shl_code]
把PC11设置为上拉输入,但是没有效果,这里顺便请教一下原子哥,这样设置是否正确?

再一个问题,我的yaw没有倾角补偿,完全是hmc5883l的x轴,y轴的反三角,所以若不是水平面,得到的角度是不准确的。
使用网上流行的那两条公式并没有成功,我猜想是因为坐标系不同原因(左手坐标系和右手坐标系)。

Starshine_02.zip

3.02 MB, 下载次数: 1124

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-9-4 22:49:00 | 显示全部楼层
帮顶....
回复

使用道具 举报

20

主题

120

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2015-6-4
在线时间
5 小时
 楼主| 发表于 2015-9-5 21:12:41 | 显示全部楼层
回复【3楼】弦子的弦:
---------------------------------
嗯嗯,太感谢了!下载了,一定好好学习!
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2015-9-5 21:35:50 | 显示全部楼层
回复【4楼】张晓斌:
---------------------------------
我刚刚更新了,你再看下吧。
回复

使用道具 举报

20

主题

120

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2015-6-4
在线时间
5 小时
 楼主| 发表于 2015-9-5 22:29:47 | 显示全部楼层
回复【5楼】弦子的弦:
---------------------------------
嗯嗯,已经可以读YAW值了!开始只是把6050的那个寄存器值改为0x82,发现不行。后来在磁力计的初始化里面加了那条代码就成功了,真心谢谢你!!!
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2015-9-6 01:58:10 | 显示全部楼层
回复【6楼】张晓斌:
---------------------------------
加了哪条?
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2015-9-6 01:59:23 | 显示全部楼层
回复【6楼】张晓斌:
--------------------------------
你要注意初始化的时候,后面不要有语句把你的寄存器的值给改变了。
回复

使用道具 举报

20

主题

120

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2015-6-4
在线时间
5 小时
 楼主| 发表于 2015-9-6 08:26:44 | 显示全部楼层
回复【7楼】弦子的弦:
---------------------------------
加了MPU_Write_Byte(MPU_INTBP_CFG_REG,0X82);这句就OK啦!你也在做四轴?
回复

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2015-9-6 08:50:51 | 显示全部楼层
回复【9楼】张晓斌:
---------------------------------
嗯。
那可能是你的寄存器被后面的代码覆盖了,才需要在磁力计在加入这个语句,重新配置一次。
回复

使用道具 举报

20

主题

120

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2015-6-4
在线时间
5 小时
 楼主| 发表于 2015-9-6 08:55:06 | 显示全部楼层
回复【10楼】弦子的弦:
---------------------------------
你的四轴做的怎么样了?
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-11-9
在线时间
6 小时
发表于 2015-12-2 20:43:41 | 显示全部楼层
想知道,磁力计和MPU6050的IIC口是接在一起的吗?
回复

使用道具 举报

7

主题

64

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2015-11-28
在线时间
30 小时
发表于 2015-12-5 17:40:00 | 显示全部楼层
回复【3楼】弦子的弦:
---------------------------------
你好,我试用你的程序,用匿名上位机打开后发现基本数据、高级收码都有,但就是其他的显示不出来,该怎么办呀?
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2020-7-28
在线时间
14 小时
发表于 2020-8-4 18:02:04 | 显示全部楼层
楼主,我移植到战舰开发板,一直显示hmcerror,是什么问题呢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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