OpenEdv-开源电子网

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

请问有没有人研究过 HMC5883L啊?

[复制链接]

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
发表于 2012-7-28 15:32:43 | 显示全部楼层 |阅读模式
如题,有大神研究过的话,希望可以稍稍联系一下~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-9-2 20:44:10 | 显示全部楼层
一年前写的,写的不好,大家见谅啊...

HMC583L_TEST.zip

654.88 KB, 下载次数: 7367

回复 支持 2 反对 0

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-10-20
在线时间
0 小时
发表于 2013-4-8 19:11:24 | 显示全部楼层
楼主还在吗?···
我也遇到跟你几乎同样的问题了···就是x=1023,y=65535,z=65535,然后就是一直都不动了···
我按照你在7楼说的,加了等待应答了。但是还是不行。
看了一下数组BUF[6],只有BUF[0]=3,其他都是255,怎么办呢?
每次复位x会有不同的值,但是之后不管怎么移动电子罗盘,数据都不变。
之前在51上用的时候都是可以用的,但是为什么移植到STM32上不行呢?···
先谢谢楼主了!
回复 支持 2 反对 0

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2011-7-9
在线时间
0 小时
发表于 2013-3-27 10:36:38 | 显示全部楼层
回复【11楼】lsj9383:
---------------------------------
是电子罗盘没错的,问题解决了。网上代码一堆堆都是一样的,这公式应该没问题。
我的问题在于将x、y变量定义成int,应该是有符号的,结果怎么都没符号,最后强制转换(大于32767时-65536...),
不知道问什么非得这样才行,奇葩。
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-7-28 16:01:42 | 显示全部楼层
没研究.
回复 支持 反对

使用道具 举报

43

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2012-1-10
在线时间
237 小时
发表于 2012-7-28 16:27:16 | 显示全部楼层
正在做,读取X,Y,Z轴数据,计算后得到平面状态下与磁北角值。倾角补偿正在做。。。
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2012-7-28 17:45:34 | 显示全部楼层

回复【3楼】magicoctoy:
---------------------------------
大哥,请问一下,
1.#define SlaveAddress   0x3C   //定义器件在IIC总线中的从地址
这个是固定的吧?
要写寄存器的时候 是不是都要先发一个0x3C,再发寄存器地址呀
读的时候 就要发0x3D呢?
                                        

  2.连续模式下 XYZ采样速率是不是就是RegisterA的DO2 DO1 DO0(用于配置数据输出速率)哦?

回复 支持 反对

使用道具 举报

43

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2012-1-10
在线时间
237 小时
发表于 2012-7-29 14:32:03 | 显示全部楼层
YES
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2012-7-29 15:45:56 | 显示全部楼层
回复【5楼】magicoctoy:
---------------------------------
都YES呀? 谢谢~
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2012-7-29 19:17:16 | 显示全部楼层
回复【5楼】magicoctoy:
---------------------------------
大哥,为啥我在连续测量模式下,X读出来是0x7fff Y是ffff, z是ffff 而且怎么动都没有反应、、
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2012-7-29 20:20:35 | 显示全部楼层
弄了一个下午 终于调出来了~~ 是因为我在IIC写字节后没有加等待应答信号~~
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2012-8-16
在线时间
8 小时
发表于 2012-8-16 18:28:14 | 显示全部楼层
我也在研究这个 但是角度始终调不对 I2C通信也成功了 弄的我很是郁闷 楼主能不能共享下代码 参考下 
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2011-7-9
在线时间
0 小时
发表于 2013-3-26 10:53:52 | 显示全部楼层
回复【9楼】yuanruizhang:
---------------------------------
您好,我也出现了类似的问题,iic通信成功,但是数据很奇怪,只有部分角度是递增的。x、y数据会在某个角度突变。
并且还有,angle=atan2((double)y,(double)x)*(180/3.14159265)+180 
atan2这个函数里的x、y不都是正数么,那最后的结果应该是恒大于等于180度的,我的数据是180~270°之间,
0~180°怎么输出呢?
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-3-26 12:52:15 | 显示全部楼层
回复【10楼】小五:
---------------------------------
..................
你的角度计算公式是给重力加速度器用的吧
HM5883L是电子罗盘....
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-4-8 20:38:07 | 显示全部楼层
回复【13楼】woshishui:
---------------------------------
额,要不我直接把代码发出来吧,你试一下?
因为我也很久没有用这个芯片了,不太记得它的特性了。
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-10-20
在线时间
0 小时
发表于 2013-4-8 20:49:03 | 显示全部楼层
回复【14楼】lsj9383:
---------------------------------
哦!你现在在了啊!现在数据已经可以改变了,但是灵敏度好低,而且会出现跳变,我看了一下11楼也是这样的,但是不知道他是怎么解决的···
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-10-20
在线时间
0 小时
发表于 2013-4-8 20:59:53 | 显示全部楼层
回复【14楼】lsj9383:
---------------------------------
我是用51的程序移植到STM32的,不知道是不是因为STM32的频率高很多,而这个电子罗盘的测量速率远远不能跟上读取速率,才出现这种情况的。
不过就算知道这个问题···也不知道怎么解决···
···
嗯···那可以麻烦你发代码给我吗?也可以发我邮箱,591441248@qq.com
谢谢你了!!
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-10-20
在线时间
0 小时
发表于 2013-4-9 01:40:26 | 显示全部楼层
回复【14楼】lsj9383:
---------------------------------
现在好像弄好了。原来是因为x,y,z经过那个计算以后,才会不灵敏的,直接读取几个x,y,z,然后自己弄一个公式就好了。还是可以用的~
回复 支持 反对

使用道具 举报

18

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2013-3-26
在线时间
0 小时
发表于 2013-4-10 15:02:24 | 显示全部楼层
回复【8楼】lsj9383:
---------------------------------
请问下hmc5883中的识别寄存器ABC是干嘛用的呀?
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-5-19
在线时间
4 小时
发表于 2013-6-4 14:39:35 | 显示全部楼层
回复【17楼】woshishui:
---------------------------------
求救啊,我遇到了11楼的问题。。。我按照11楼的修改后,的确好用了,但是灵敏度只有在180-270之间才好,其他的角度就不灵敏了,请帮忙啊
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-8-4
在线时间
0 小时
发表于 2013-8-4 14:06:07 | 显示全部楼层
回复【8楼】lsj9383:
---------------------------------
求代码,我还没看懂
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-8-4
在线时间
0 小时
发表于 2013-8-4 14:10:46 | 显示全部楼层
回复【14楼】lsj9383:
---------------------------------
求代码,邮箱1163526267@qq.com,谢谢
回复 支持 反对

使用道具 举报

3

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-7-8
在线时间
0 小时
发表于 2013-8-17 16:27:44 | 显示全部楼层
回复【楼主位】lsj9383:
---------------------------------
你好  能发个SM32的 HMC5883L 的程序参考吗
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-8-21
在线时间
0 小时
发表于 2013-8-22 19:10:49 | 显示全部楼层
求程序参考啊~~~
回复 支持 反对

使用道具 举报

45

主题

248

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2013-5-18
在线时间
0 小时
发表于 2013-8-25 10:51:02 | 显示全部楼层
求参考程序啊。。。谢谢拉
回复 支持 反对

使用道具 举报

45

主题

248

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2013-5-18
在线时间
0 小时
发表于 2013-8-25 11:00:43 | 显示全部楼层
我也遇到同样的问题,总是显示255,怎么解决啊,求大神
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-8-21
在线时间
0 小时
发表于 2013-8-26 11:31:09 | 显示全部楼层
在51上显示的好好的,换到stm32上就读不出来了。。郁闷几天了,求楼主大人发下代码参考下,不胜感激啊~~~~826635625@qq.com
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2013-8-26 11:37:57 | 显示全部楼层
上面的各位,我晚些把以前的代码发出来。。。。。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-8-26
在线时间
0 小时
发表于 2013-8-26 15:00:33 | 显示全部楼层
回复【12楼】小五:
---------------------------------
我也遇到这个问题,看到你的回复后修改就解决了,不过我偶然发现应该是数据类型的问题,深入了解了一下,是因为keil,stm32中的int是32位的,x,y,z应该定义为short int /s16而不是 int.
回复 支持 反对

使用道具 举报

45

主题

248

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2013-5-18
在线时间
0 小时
发表于 2013-8-27 09:51:00 | 显示全部楼层
27楼的程序可否共享下,谢谢
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-8-29
在线时间
0 小时
发表于 2013-8-29 08:01:48 | 显示全部楼层
回复【9楼】yuanruizhang:
---------------------------------
请问您的问题解决了吗?可以共享下代码吗?QQ:1227359065
急用,谢谢
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-8-29
在线时间
0 小时
发表于 2013-8-29 08:08:12 | 显示全部楼层
回复【27楼】lsj9383:
---------------------------------
能不能发下代码?
QQ:1227359065
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-7-24
在线时间
0 小时
发表于 2013-9-2 20:41:53 | 显示全部楼层
我的也出问题了。。。求程序
回复 支持 反对

使用道具 举报

6

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-8-12
在线时间
0 小时
发表于 2013-9-2 21:04:38 | 显示全部楼层
呵呵,电赛整理过一份,不过是51的,后天又开始正式的比赛了
当你想到自己还一无所有的时候,请记得你还有梦想!
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-9-2
在线时间
0 小时
发表于 2013-9-3 01:37:51 | 显示全部楼层
回复【25楼】王军强:
---------------------------------
你最后是怎么解决了这个问题的,就是总是返回255
回复 支持 反对

使用道具 举报

45

主题

248

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2013-5-18
在线时间
0 小时
发表于 2013-9-3 12:22:00 | 显示全部楼层
程序问题,就是X和Y的值计算的时候,数组序号搞错了,自己调试就可以了,就哪里错了,其他没有问题的
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-9-2
在线时间
0 小时
发表于 2013-9-5 21:22:10 | 显示全部楼层
回复【36楼】王军强:
------------------------你的是什么cpu,arm的?有xs128的iic模拟吗,急用
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-9-2
在线时间
0 小时
发表于 2013-9-5 21:22:25 | 显示全部楼层
回复【37楼】holdcall777:
---------------------------------
670038101@qq.com谢谢了
回复 支持 反对

使用道具 举报

45

主题

248

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2013-5-18
在线时间
0 小时
发表于 2013-9-7 08:26:13 | 显示全部楼层
STM32的,IIC例程有啊
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-9-2
在线时间
0 小时
发表于 2013-9-7 09:56:02 | 显示全部楼层
回复【39楼】王军强:
---------------------------------
给我发一份吧,670038101,不介意的话加下,以后有问题可以一起讨论啊,谢谢了
回复 支持 反对

使用道具 举报

45

主题

248

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2013-5-18
在线时间
0 小时
发表于 2013-9-7 15:41:40 | 显示全部楼层
不介意,可是现在做国赛,没时间,你知道怎么用STM32测电流吗
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-9-2
在线时间
0 小时
发表于 2013-9-7 20:21:42 | 显示全部楼层
回复【41楼】王军强:
---------------------------------
没搞过啊
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-5-25
在线时间
1 小时
发表于 2013-10-4 15:08:45 | 显示全部楼层
回复【8楼】lsj9383:

弄了一个下午 终于调出来了~~ 是因为我在IIC写字节后没有加等待应答信号~~

---------------------------------
我也是这个问题,移植到STM32上数据有问题,加了应答就解决了,谢谢楼主!
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-10-19
在线时间
0 小时
发表于 2013-10-17 22:18:04 | 显示全部楼层
回复【43楼】lrbdh:
---------------------------------
你好,我移植时也出现一直是同一个数的问题,你说的加了应答就好了,是在哪儿加应答信号,我看着一切正常啊。看到后,告诉一下呗
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-10-19
在线时间
0 小时
发表于 2013-10-17 22:22:17 | 显示全部楼层
回复【33楼】lsj9383:
---------------------------------
楼主,你好!你共享的这份历程,我这怎么一直是一个数啊。你说加一个应答信号就好了,不知道你共享的这份历程是不是加应答信号完整的历程。你给提示一下,需要怎么添加等待应答信号呗
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-11-22
在线时间
0 小时
发表于 2013-11-25 21:32:00 | 显示全部楼层
不错 学习了!
回复 支持 反对

使用道具 举报

86

主题

982

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1846
金钱
1846
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-4-2 10:27:23 | 显示全部楼层
回复【33楼】lsj9383:
---------------------------------
楼主分享一下你的最新研究成果呀
合肥-文盲
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2233
金钱
2233
注册时间
2012-4-30
在线时间
7 小时
 楼主| 发表于 2014-4-2 13:02:33 | 显示全部楼层
回复【47楼】合肥-文盲:
---------------------------------
不好意思,已经没有做惯导了啊
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-4-21
在线时间
0 小时
发表于 2014-4-21 18:37:01 | 显示全部楼层
回复【楼主位】lsj9383:
---------------------------------
你好,能看看你的电路图吗,现在在做这个,完全找不到参考的电路图啊
回复 支持 反对

使用道具 举报

18

主题

69

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2013-11-26
在线时间
0 小时
发表于 2014-7-25 09:22:08 | 显示全部楼层
楼主 有用 8字矫正的算法么
唯累过,方得闲。唯苦过,方知甜…
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 07:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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