有没有人研究过 hmc5883l中文资料

查看: 43224|回复: 76
请问有没有人研究过 HMC5883L啊?
主题帖子精华
在线时间2 小时
如题,有大神研究过的话,希望可以稍稍联系一下~
主题帖子精华
在线时间2 小时
一年前写的,写的不好,大家见谅啊...
20:44 上传
点击文件名下载附件
654.88 KB, 下载次数: 5965
主题帖子精华
初级会员, 积分 60, 距离下一级还需 140 积分
在线时间0 小时
楼主还在吗?···
我也遇到跟你几乎同样的问题了···就是x=1023,y=65535,z=65535,然后就是一直都不动了···
我按照你在7楼说的,加了等待应答了。但是还是不行。
看了一下数组BUF[6],只有BUF[0]=3,其他都是255,怎么办呢?
每次复位x会有不同的值,但是之后不管怎么移动电子罗盘,数据都不变。
之前在51上用的时候都是可以用的,但是为什么移植到STM32上不行呢?···
先谢谢楼主了!
主题帖子精华
金钱105398
在线时间664 小时
主题帖子精华
高级会员, 积分 590, 距离下一级还需 410 积分
在线时间108 小时
正在做,读取X,Y,Z轴数据,计算后得到平面状态下与磁北角值。倾角补偿正在做。。。
主题帖子精华
在线时间2 小时
回复【3楼】magicoctoy:
---------------------------------
大哥,请问一下,
1.#define SlaveAddress&&&0x3C &&//定义器件在IIC总线中的从地址
这个是固定的吧?
要写寄存器的时候&是不是都要先发一个0x3C,再发寄存器地址呀
读的时候&就要发0x3D呢?
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
2.连续模式下 XYZ采样速率是不是就是RegisterA的DO2 DO1 DO0(用于配置数据输出速率)哦?
主题帖子精华
高级会员, 积分 590, 距离下一级还需 410 积分
在线时间108 小时
主题帖子精华
在线时间2 小时
回复【5楼】magicoctoy:
---------------------------------
都YES呀?&谢谢~
主题帖子精华
在线时间2 小时
回复【5楼】magicoctoy:
---------------------------------
大哥,为啥我在连续测量模式下,X读出来是0x7fff&Y是ffff,&z是ffff&而且怎么动都没有反应、、
主题帖子精华
在线时间2 小时
弄了一个下午&终于调出来了~~&是因为我在IIC写字节后没有加等待应答信号~~
主题帖子精华
新手上路, 积分 40, 距离下一级还需 10 积分
在线时间4 小时
我也在研究这个&但是角度始终调不对&I2C通信也成功了&弄的我很是郁闷&楼主能不能共享下代码&参考下&
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【9楼】yuanruizhang:
---------------------------------
您好,我也出现了类似的问题,iic通信成功,但是数据很奇怪,只有部分角度是递增的。x、y数据会在某个角度突变。
并且还有,angle=atan2((double)y,(double)x)*(180/3.0&
atan2这个函数里的x、y不都是正数么,那最后的结果应该是恒大于等于180度的,我的数据是180~270°之间,
0~180°怎么输出呢?
主题帖子精华
在线时间2 小时
回复【10楼】小五:
---------------------------------
..................
你的角度计算公式是给重力加速度器用的吧
HM5883L是电子罗盘....
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【11楼】lsj9383:
---------------------------------
是电子罗盘没错的,问题解决了。网上代码一堆堆都是一样的,这公式应该没问题。
我的问题在于将x、y变量定义成int,应该是有符号的,结果怎么都没符号,最后强制转换(大于32767时-65536...),
不知道问什么非得这样才行,奇葩。
主题帖子精华
在线时间2 小时
回复【13楼】woshishui:
---------------------------------
额,要不我直接把代码发出来吧,你试一下?
因为我也很久没有用这个芯片了,不太记得它的特性了。
主题帖子精华
初级会员, 积分 60, 距离下一级还需 140 积分
在线时间0 小时
回复【14楼】lsj9383:
---------------------------------
哦!你现在在了啊!现在数据已经可以改变了,但是灵敏度好低,而且会出现跳变,我看了一下11楼也是这样的,但是不知道他是怎么解决的···
主题帖子精华
初级会员, 积分 60, 距离下一级还需 140 积分
在线时间0 小时
回复【14楼】lsj9383:
---------------------------------
我是用51的程序移植到STM32的,不知道是不是因为STM32的频率高很多,而这个电子罗盘的测量速率远远不能跟上读取速率,才出现这种情况的。
不过就算知道这个问题···也不知道怎么解决···
···
嗯···那可以麻烦你发代码给我吗?也可以发我邮箱,
谢谢你了!!
主题帖子精华
初级会员, 积分 60, 距离下一级还需 140 积分
在线时间0 小时
回复【14楼】lsj9383:
---------------------------------
现在好像弄好了。原来是因为x,y,z经过那个计算以后,才会不灵敏的,直接读取几个x,y,z,然后自己弄一个公式就好了。还是可以用的~
主题帖子精华
初级会员, 积分 145, 距离下一级还需 55 积分
在线时间0 小时
回复【8楼】lsj9383:
---------------------------------
请问下hmc5883中的识别寄存器ABC是干嘛用的呀?
主题帖子精华
新手上路, 积分 34, 距离下一级还需 16 积分
在线时间0 小时
回复【17楼】woshishui:
---------------------------------
求救啊,我遇到了11楼的问题。。。我按照11楼的修改后,的确好用了,但是灵敏度只有在180-270之间才好,其他的角度就不灵敏了,请帮忙啊
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【8楼】lsj9383:
---------------------------------
求代码,我还没看懂
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【14楼】lsj9383:
---------------------------------
求代码,邮箱,谢谢
主题帖子精华
初级会员, 积分 86, 距离下一级还需 114 积分
在线时间0 小时
回复【楼主位】lsj9383:
---------------------------------
你好&&能发个SM32的&HMC5883L&的程序参考吗
主题帖子精华
新手上路, 积分 29, 距离下一级还需 21 积分
在线时间0 小时
求程序参考啊~~~
主题帖子精华
中级会员, 积分 448, 距离下一级还需 52 积分
在线时间0 小时
求参考程序啊。。。谢谢拉
主题帖子精华
中级会员, 积分 448, 距离下一级还需 52 积分
在线时间0 小时
我也遇到同样的问题,总是显示255,怎么解决啊,求大神
主题帖子精华
新手上路, 积分 29, 距离下一级还需 21 积分
在线时间0 小时
在51上显示的好好的,换到stm32上就读不出来了。。郁闷几天了,求楼主大人发下代码参考下,不胜感激啊~~~~
主题帖子精华
在线时间2 小时
上面的各位,我晚些把以前的代码发出来。。。。。
主题帖子精华
新手上路, 积分 21, 距离下一级还需 29 积分
在线时间0 小时
回复【12楼】小五:
---------------------------------
我也遇到这个问题,看到你的回复后修改就解决了,不过我偶然发现应该是数据类型的问题,深入了解了一下,是因为keil,stm32中的int是32位的,x,y,z应该定义为short&int&/s16而不是&int.
主题帖子精华
中级会员, 积分 448, 距离下一级还需 52 积分
在线时间0 小时
27楼的程序可否共享下,谢谢
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【9楼】yuanruizhang:
---------------------------------
请问您的问题解决了吗?可以共享下代码吗?QQ:
急用,谢谢
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【27楼】lsj9383:
---------------------------------
能不能发下代码?
QQ:
主题帖子精华
新手上路, 积分 43, 距离下一级还需 7 积分
在线时间0 小时
我的也出问题了。。。求程序
主题帖子精华
初级会员, 积分 169, 距离下一级还需 31 积分
在线时间0 小时
呵呵,电赛整理过一份,不过是51的,后天又开始正式的比赛了
当你想到自己还一无所有的时候,请记得你还有梦想!
主题帖子精华
新手上路, 积分 25, 距离下一级还需 25 积分
在线时间0 小时
回复【25楼】王军强:
---------------------------------
你最后是怎么解决了这个问题的,就是总是返回255
主题帖子精华
中级会员, 积分 448, 距离下一级还需 52 积分
在线时间0 小时
程序问题,就是X和Y的值计算的时候,数组序号搞错了,自己调试就可以了,就哪里错了,其他没有问题的
主题帖子精华
新手上路, 积分 25, 距离下一级还需 25 积分
在线时间0 小时
回复【36楼】王军强:
------------------------你的是什么cpu,arm的?有xs128的iic模拟吗,急用
主题帖子精华
新手上路, 积分 25, 距离下一级还需 25 积分
在线时间0 小时
回复【37楼】holdcall777:
---------------------------------
谢谢了
主题帖子精华
中级会员, 积分 448, 距离下一级还需 52 积分
在线时间0 小时
STM32的,IIC例程有啊
主题帖子精华
新手上路, 积分 25, 距离下一级还需 25 积分
在线时间0 小时
回复【39楼】王军强:
---------------------------------
给我发一份吧,,不介意的话加下,以后有问题可以一起讨论啊,谢谢了
主题帖子精华
中级会员, 积分 448, 距离下一级还需 52 积分
在线时间0 小时
不介意,可是现在做国赛,没时间,你知道怎么用STM32测电流吗
主题帖子精华
新手上路, 积分 25, 距离下一级还需 25 积分
在线时间0 小时
回复【41楼】王军强:
---------------------------------
没搞过啊
主题帖子精华
新手上路, 积分 30, 距离下一级还需 20 积分
在线时间0 小时
回复【8楼】lsj9383:
弄了一个下午&终于调出来了~~&是因为我在IIC写字节后没有加等待应答信号~~
---------------------------------
我也是这个问题,移植到STM32上数据有问题,加了应答就解决了,谢谢楼主!
主题帖子精华
新手上路, 积分 48, 距离下一级还需 2 积分
在线时间0 小时
回复【43楼】lrbdh:
---------------------------------
你好,我移植时也出现一直是同一个数的问题,你说的加了应答就好了,是在哪儿加应答信号,我看着一切正常啊。看到后,告诉一下呗
主题帖子精华
新手上路, 积分 48, 距离下一级还需 2 积分
在线时间0 小时
回复【33楼】lsj9383:
---------------------------------
楼主,你好!你共享的这份历程,我这怎么一直是一个数啊。你说加一个应答信号就好了,不知道你共享的这份历程是不是加应答信号完整的历程。你给提示一下,需要怎么添加等待应答信号呗
主题帖子精华
新手上路, 积分 46, 距离下一级还需 4 积分
在线时间0 小时
不错 学习了!
主题帖子精华
在线时间96 小时
回复【33楼】lsj9383:
---------------------------------
楼主分享一下你的最新研究成果呀
主题帖子精华
在线时间2 小时
回复【47楼】合肥-文盲:
---------------------------------
不好意思,已经没有做惯导了啊
主题帖子精华
新手上路, 积分 21, 距离下一级还需 29 积分
在线时间0 小时
回复【楼主位】lsj9383:
---------------------------------
你好,能看看你的电路图吗,现在在做这个,完全找不到参考的电路图啊
主题帖子精华
初级会员, 积分 163, 距离下一级还需 37 积分
在线时间0 小时
楼主&有用&8字矫正的算法么
唯累过,方得闲。唯苦过,方知甜…
Powered by21ic官方微信-->
后使用快捷导航没有帐号?
我用stm32(硬件IIC)读取MPU6050的从机HMC5883L的数据为什么不发生变化呢
&&未结帖(20)
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
我设置了HMC5993L的连续测量模式,然后通过mpu6050上的EXT_SENS_DATA来得到传感器的六个数据,然后用串口把数据发回电脑查看,但是数据只有一组,转动芯片也不会发生变化,掉电重新连接之后才会看到另外的一组数据,请问这是为什么呢?谢谢!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
---------------------
主题帖子积分
---------------------
专家等级:结帖率:99%打赏:0.00受赏:40.00
主题帖子积分
---------------------
可能是 I2C 的问题, 也可能是你的串口把数据发回电脑查看的程序的问题.
欢迎进入 !
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
可能是 I2C 的问题, 也可能是你的串口把数据发回电脑查看的程序的问题.
应该不会,我还读取了其他六轴的数据,都是正常的,只有这个不对头
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
应该不会,我还读取了其他六轴的数据,都是正常的,只有这个不对头
问一下&&HMC5883L的DRDY引脚是用来干嘛的,需要用吗
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
初级工程师, 积分 2233, 距离下一级还需 767 积分
初级工程师, 积分 2233, 距离下一级还需 767 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2233, 距离下一级还需 767 积分
初级工程师, 积分 2233, 距离下一级还需 767 积分
可以用虚拟示波器看看有波形吗
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
荣誉元老奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术领袖奖章
人才类勋章请问有没有人研究过 HMC5883L啊?
主题帖子精华
在线时间2 小时
回复【50楼】半岛少年、:
---------------------------------
电子罗盘矫正吗?
主题帖子精华
新手上路, 积分 21, 距离下一级还需 29 积分
在线时间0 小时
那个,我是新手啊,那个角度angle算出来了代表什么啊?是1—360°吗?那又是怎么表示南北,东西也?求帮助
主题帖子精华
中级会员, 积分 379, 距离下一级还需 121 积分
在线时间29 小时
回复【10楼】小五:
---------------------------------
咱们遇到的问题一样啊!怎么解决?什么问题啊!
主题帖子精华
新手上路, 积分 40, 距离下一级还需 10 积分
在线时间4 小时
回复【3楼】magicoctoy:
---------------------------------
请问怎样做,倾斜角的倾角补偿
主题帖子精华
新手上路, 积分 21, 距离下一级还需 29 积分
在线时间0 小时
回复【33楼】lsj9383:
---------------------------------
读出来一直是一个数。。。怎么回事呢
主题帖子精华
初级会员, 积分 151, 距离下一级还需 49 积分
在线时间32 小时
最近我也在东HMC5883L,水平测试时还挺好的!但加了加速度计进行角度补偿后,计算的的角度值会不停的跳变,不能停下来?为什么??哪位兄弟弄过,求指导啊!还有想问下你们是怎么进行角度补偿的?
主题帖子精华
初级会员, 积分 81, 距离下一级还需 119 积分
在线时间3 小时
回复【56楼】ldh45:
---------------------------------
你好,你做HMC5883L的代码能共享下吗?谢谢
主题帖子精华
初级会员, 积分 81, 距离下一级还需 119 积分
在线时间3 小时
回复【36楼】王军强:
---------------------------------
楼主那个一直显示FFFF的问题你们是怎么解决的啊,谢谢了
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
应该是数据类型有问题&按照楼主给的代码&加了
&&&&&&&&&&&&&&&&if(x&32768)
x&=&-(0xFFFF&-&x&+&1);
if(z&32768)
z&=&-(0xFFFF&-&z&+&1);
if(y&32768)
y&=&-(0xFFFF&-&y&+&1);
显示就正常了
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
要想指出东南西北&加了如下判断代码可以&&&&Serial.print(&You&are&heading&&);
&&&&if((angle&&&22.5)&||&(angle&&&337.5&))
&&&&&&&&Serial.print(&South&);
&&&&if((angle&&&22.5)&&&&(angle&&&67.5&))
&&&&&&&&Serial.print(&South-West&);
&&&&if((angle&&&67.5)&&&&(angle&&&112.5&))
&&&&&&&&Serial.print(&West&);
&&&&if((angle&&&112.5)&&&&(angle&&&157.5&))
&&&&&&&&Serial.print(&North-West&);
&&&&if((angle&&&157.5)&&&&(angle&&&202.5&))
&&&&&&&&Serial.print(&North&);
&&&&if((angle&&&202.5)&&&&(angle&&&247.5&))
&&&&&&&&Serial.print(&NorthEast&);
&&&&if((angle&&&247.5)&&&&(angle&&&292.5&))
&&&&&&&&Serial.print(&East&);
&&&&if((angle&&&292.5)&&&&(angle&&&337.5&))
&&&&&&&&Serial.print(&SouthEast&);
注意把&Serial.print改为printf!!!
主题帖子精华
初级会员, 积分 73, 距离下一级还需 127 积分
在线时间6 小时
回复【17楼】woshishui:
---------------------------------
把你的那个基于stm32的指南针的工程程序发给我学习一下吧,谢谢,qq:
主题帖子精华
金牌会员, 积分 1218, 距离下一级还需 1782 积分
在线时间175 小时
主题帖子精华
初级会员, 积分 130, 距离下一级还需 70 积分
在线时间3 小时
回复【36楼】王军强:
---------------------------------
请问你把hmc5883调好了吗?我的一直是0,自己写的和移植楼主的一样都是0,能不能参考下你的程序??谢过了!!
主题帖子精华
初级会员, 积分 182, 距离下一级还需 18 积分
在线时间43 小时
MK,也准备试试5883.
逆水行舟不进则退
主题帖子精华
新手上路, 积分 36, 距离下一级还需 14 积分
在线时间8 小时
楼主,我刚刚开始做这个电子罗盘,在网上找了很多资料,可就是没能明白单片机从HMC5883读回来的数据的具体含义,也无法对数据行应用,求告知
主题帖子精华
新手上路, 积分 36, 距离下一级还需 14 积分
在线时间8 小时
楼主啊,我刚刚开始做着个电子罗盘,我想问一下,单片机从HMC5883读回来的数据代表的含义是什么啊,在网上找了很多的资料也明白是什么意思,求解啊?
主题帖子精华
金牌会员, 积分 1218, 距离下一级还需 1782 积分
在线时间175 小时
楼主啊,我刚刚开始做着个电子罗盘,我想问一下,单片机从HMC5883读回来的数据代表的含义是什么啊,在网上 ...
,你方使的话加我一下,我给你一些,最起码能用的了。
主题帖子精华
新手上路, 积分 36, 距离下一级还需 14 积分
在线时间8 小时
,你方使的话加我一下,我给你一些,最起码能用的了。
好的,这是QQ吗?
主题帖子精华
新手上路, 积分 36, 距离下一级还需 14 积分
在线时间8 小时
回复【14楼】lsj9383:
---------------------------------
现在好像弄好了。原来是因为x,y,z经过那个计算以 ...
我也是用的angle= atan2((double)y,(double)x) * (180 / 3.) + 180;&&这个公式,可是会出现跳变,而且在某些方位会出现很大的误差,误差能达到十几度,您能把您的公式法给我一下吗,我自己不会写公式啊
主题帖子精华
新手上路, 积分 44, 距离下一级还需 6 积分
在线时间7 小时
谢谢楼主的程序
主题帖子精华
新手上路, 积分 44, 距离下一级还需 6 积分
在线时间7 小时
楼主还在吗?···
我也遇到跟你几乎同样的问题了···就是x=1023,y=65535,z=65535,然后就是一直都不动了 ...
遇到同样的问题了!,请问你是怎么解决的?
主题帖子精华
新手上路, 积分 36, 距离下一级还需 14 积分
在线时间8 小时
呵呵,电赛整理过一份,不过是51的,后天又开始正式的比赛了
楼主,你那51的程序能给我发一份吗?QQ:,非常感谢
主题帖子精华
高级会员, 积分 613, 距离下一级还需 387 积分
在线时间32 小时
要想指出东南西北&加了如下判断代码可以&&&&Serial.print(&You&are& ...
得出的angle都不正常啊~&&有时候上到几万,贴在代码啊
主题帖子精华
初级会员, 积分 53, 距离下一级还需 147 积分
在线时间22 小时
我的代码跟楼主共享出来的代码一模一样,为什么我的X值读出来一直是-4096,怎么移动都不会变,y和z的值会变,求解,很捉急啊
主题帖子精华
中级会员, 积分 270, 距离下一级还需 230 积分
在线时间35 小时
我也是用的angle= atan2((double)y,(double)x) * (180 / 3.) + 180;&&这个公式,可是会出现跳变 ...
请问你现在有没有倾角补偿呀 这个公式有角度的情况下是不能直接用的
主题帖子精华
初级会员, 积分 177, 距离下一级还需 23 积分
在线时间40 小时
主题帖子精华
中级会员, 积分 386, 距离下一级还需 114 积分
在线时间48 小时
**** 作者被禁止或删除 内容自动屏蔽 ****
我也搞不懂,求教
Powered by

我要回帖

更多关于 hmc5883l角度公式 的文章

 

随机推荐