isimeng 发表于 2011-1-20 16:44:35

求助:HMC5883L的X,Y,Z数据寄存器的读出值不准确,而其他的寄存器的数据读出是准确的

求助:HMC5883L的X,Y,Z数据寄存器的读出值不准确,而其他的寄存器的数据读出是准确的


配置寄存器B初始化为:0x20 //默认值
模式寄存器MR初始化为:0x00 //连续测量
配置寄存器A初始化为:0x18 //正常测量模式75HZ

结果发现读出的   STATX   Y   Z    值如下:
                  11 00 00 00 04 FF FE
                  11 00 02 00 01 00 03
                  11 FF FE FF FE 00 00
                  11 00 04 00 00 00 01
                  11 FF FE 00 04 00 00
                  11 00 FE 00 01 00 00
                  11 00 00 00 00 FF FA
                  11 00 02 00 00 00 02
                  11 FF FE 00 00 00 02
                  11 00 03 00 00 00 02
                  11 00 00 FF FF 00 03
XYZ的值明显不对,可是其他寄存器A B MR STAT读出的值是正确的
对XY值求角度,发现角度都是45°的倍数,哪位大侠能告诉我,这是为什么啊?》

tanker110 发表于 2011-1-21 09:48:14

我最近也在用5883L。
我觉得可能原因是:1,I2C修改配置寄存器A,B数据后,是否寄存器被修改,如果寄存器不被修改,可能你的I2C的连接不良。2,读下寄存器10,11,12,看是不是‘H’‘4’‘3’。如果正确,改配置寄存器也正常,考虑是否5883L中的测量电路在焊接过程中被损坏。高温容易坏的,如损坏,就无法使用了。
我的使用经验,仅供参考。

tanker110 发表于 2011-1-21 17:13:58


配置寄存器B,模式寄存器,配置寄存器都改为0X00。我在这个模式下是可以正常使用的。别的模式下性能不是很清楚了。如果不是这个原因,那要考虑我上面说的情况了。尤其是情况2的因素。

ssaweee 发表于 2011-1-21 18:42:03

是不是没有先进行自校准?

thl315 发表于 2011-1-30 17:45:57

把4.7的电容换成陶瓷的试试.

wy943103 发表于 2011-2-5 21:24:47

回复【楼主位】isimeng
-----------------------------------------------------------------------

我和楼主状况相同,其他寄存器的值读出都对,但09寄存器的值始终为3,LOCK值一直为1,根据DATASHEET所述应该是X,Y,Z寄存器没有全部读出LOCK值才为1,奇怪的是不论等多久,X,Y,Z寄存器都不能全部读出,不知是何缘故?

MAPGPS 发表于 2011-2-6 23:39:50

在国外坛子上有用过的网友也提到: 要先进行自校准.

我也订了块带PCB板(模块化)的HMC5883L, 想用在Arduino上与GPS和气压计一起向我的AR.Drone提供位置和航向.
春节期间商家不发货, 只好等 ...

MAPGPS 发表于 2011-2-6 23:52:52

还有, 如何与3轴陀螺仪数据融合得到更精确的磁角度? (消除抖动)

COMPASS1 发表于 2011-2-9 10:40:44

回复【楼主位】isimeng
-----------------------------------------------------------------------

楼主,从你所采集到的数据来看,这些数据是存在问题的,根据HMC5883L的数据手册上的说明来看,
其范围是-2048 to 2047而满量程的数据显示"-4096"(十进制的数据),而你所采集的数据存在4607,因此这是不正常的数据;
其主要产生的问题,还是可能由于你的配置仅存器A所设置采样频率的问题而引起,因此建议你设置MA1:MA0=00试试

COMPASS1 发表于 2011-2-9 10:43:04

回复【6楼】MAPGPS
-----------------------------------------------------------------------

自校准,这是不需要的,自校准的主要目的是看Sensor是否损坏或者SMT焊锡是否OK;

KOUYU 发表于 2011-2-23 14:08:32

那么巧哦 楼主。哈哈以前我一直用5843挺好的现在换成了5883L 今天测试结果合一的差不多 貌似数据都是45的倍数。不知道你的解决了没有我想一定是和5843配置不一样 虽然可以通信 但是没有正常的工作起来…………寻找原因中…………

KOUYU 发表于 2011-2-23 14:19:06

哦 貌似找到原因了哈哈 CRA7
CRA7
This bit must be cleared for correct operation

KOUYU 发表于 2011-2-23 15:29:53

嗨大失所望还是不行

MAPGPS 发表于 2011-2-23 17:19:23

我的HMC5883L模块刚收到. 开始(X, Y, Z)数据读出也是错位的.
后来仔细阅读HMC5883L的Datasheet, 发现其接口修改了, (X, Y, Z)数据读出与早期的HMC5843是反着的!
应为(X, Z, Y)

我是接在Arduino Nano上测的. 准备通过USB口用在AR.Drone四轴上.

KOUYU 发表于 2011-2-24 12:05:36

还是跳我的数据!

MAPGPS 发表于 2011-2-24 12:44:09

回复【15楼】KOUYU
还是跳我的数据!
-----------------------------------------------------------------------
我的输出很稳定, 精度<1度.
但与正北有30来度的偏移, 不知何故?

附上Arduino源代码(类C++).

X:282.00         Y:43.68         Z:-401.05
Heading: 188.80
X:279.00         Y:42.73         Z:-399.16
Heading: 188.71
X:280.00         Y:41.78         Z:-401.05
Heading: 188.49
X:280.00         Y:41.78         Z:-401.99
Heading: 188.49
X:279.00         Y:41.78         Z:-400.11
Heading: 188.52
X:282.00         Y:42.73         Z:-401.99
Heading: 188.62
X:280.00         Y:41.78         Z:-400.11
Heading: 188.49
X:278.00         Y:41.78         Z:-400.11
Heading: 188.55
X:280.00         Y:42.73         Z:-399.16
Heading: 188.68
X:281.00         Y:42.73         Z:-400.11
Heading: 188.65

点击此处下载 ourdev_618181HG355N.zip(文件大小:18K) (原文件名:HMC5883L.zip)

KOUYU 发表于 2011-2-24 13:22:45

回复【16楼】MAPGPS
-----------------------------------------------------------------------

我现在焊接的是IIC总线都不稳定了真是郁闷估计我要是保证硬件焊接不出错 我就找软件的错误了…………

MAPGPS 发表于 2011-2-24 13:29:58

回复【17楼】KOUYU
回复【16楼】mapgps
-----------------------------------------------------------------------
我现在焊接的是iic总线都不稳定了真是郁闷估计我要是保证硬件焊接不出错 我就找软件的错误了…………
-----------------------------------------------------------------------
真行, 你还自己焊HMC5883L.
我的焊技很差, 眼都看不清HMC5883L的密密管脚. 直接到淘宝买那种带PCB焊好的模块, 省事.

http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_618201NZDNIP.JPG
(原文件名:HMC5883L_1.JPG)

http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_618202GSCUCL.JPG
(原文件名:HMC5883L_2.JPG)

COMPASS1 发表于 2011-2-24 17:03:38

回复【16楼】MAPGPS
-----------------------------------------------------------------------

从你所给出的数据来看,传感器还是相当稳定的,
但是从你所反馈的正北方向的偏差比较,建议你按照下面的方法试试;
1 如果你是在实验室的话,建议你到外面空旷的地方测试,以确定是否由于周边的干扰造成;
2 将Gain值调大一点测试
希望以上对你有所帮助

KOUYU 发表于 2011-2-24 17:21:48

捣鼓了两天没有成功!!!………………

KOUYU 发表于 2011-2-24 17:25:20

那个4.7UF的电容 正常工作的话电压值是多少?谁给量一下
O(∩_∩)O~

muojie 发表于 2011-2-26 11:16:32

回复【16楼】MAPGPS
-----------------------------------------------------------------------

你好,请问你的角度是怎么算的?

X:282.00         Y:43.68         Z:-401.05
Heading: 188.80

我根据X,Y算出来的是8度。
我的算法是:
atan2(Y,X)*180/3.14。

先谢过了。

muojie 发表于 2011-2-26 11:18:40

回复【楼主位】isimeng
-----------------------------------------------------------------------

楼主,你的问题解决了吗?

能把数据贴出来看一下吗?我比较一下。

我的如下(X轴全是负的,不知道是否有问题):

-895, -245, -787
-1067, 201, -668
-710, 38, -635

TM2010 发表于 2011-2-26 11:25:32

HMC5883L,这种封装的,焊是个大问题,我测试时,至少焊了10次(焊功差!),才能正常读出数据。大家也可以用万用表测下引脚有没有焊上。没焊上时,电阻无穷大。

MAPGPS 发表于 2011-2-26 11:32:32

回复【22楼】muojie
回复【16楼】mapgps   
-----------------------------------------------------------------------
你好,请问你的角度是怎么算的?
x:282.00y:43.68z:-401.05
heading: 188.80
我根据x,y算出来的是8度。
我的算法是:
atan2(y,x)*180/3.14。
先谢过了。
-----------------------------------------------------------------------

(atan2(y,x)+3.14)*180/3.14
差个180度, 就看你HMC5883L的安装方位而定.

COMPASS1 发表于 2011-3-1 10:17:05

回复【23楼】muojie
-----------------------------------------------------------------------

你所采集的数据是在水平面旋转的时候所采集到的吗?还是仅仅只是停留其中一个方向

KOUYU 发表于 2011-3-7 13:39:39

这个芯片的确是太娇气了

COMPASS1 发表于 2011-3-8 10:28:27

回复【27楼】KOUYU
-----------------------------------------------------------------------
焊接要求高点,但娇气好像不是吧

isimeng 发表于 2011-3-15 16:04:34

回复【3楼】ssaweee
是不是没有先进行自校准?
--------------------------------------------------------------------
是不是自测试啊?现在我弄好了了,我也不知道什么原因,估计是评估板质量太差了

isimeng 发表于 2011-3-15 16:05:45

回复【8楼】COMPASS1
回复【楼主位】isimeng
-----------------------------------------------------------------------
楼主,从你所采集到的数据来看,这些数据是存在问题的,根据hmc5883l的数据手册上的说明来看,
其范围是-2048 to 2047而满量程的数据显示"-4096"(十进制的数据),而你所采集的数据存在4607,因此这是不正常的数据;
其主要产生的问题,还是可能由于你的配置仅存器a所设置采样频率的问题而引起,因此建议你设置ma1:ma0=00试试
-----------------------------------------------------------------------

谢谢提醒

isimeng 发表于 2011-3-15 16:06:46

回复【11楼】KOUYU
那么巧哦 楼主。哈哈以前我一直用5843挺好的现在换成了5883l 今天测试结果合一的差不多 貌似数据都是45的倍数。不知道你的解决了没有我想一定是和5843配置不一样 虽然可以通信 但是没有正常的工作起来…………寻找原因中…………
-----------------------------------------------------------------------

我的好了。。。,有空加我交流QQ545716093

lihua 发表于 2011-3-17 15:21:23

回复【31楼】isimeng
-----------------------------------------------------------------------

可否透露一下是什么原因,怎么解决的呢?

COMPASS1 发表于 2011-3-21 10:42:18

回复【32楼】lihua
-----------------------------------------------------------------------

磁传感器对于板的品质也有比较高的要求,特别是对于铁镍的物质含量不能太高,这样会造成很大的干扰,
还有就是Set/Reset回路的设计是否正常,电容值是否达到要求,内阻是否比较低(用陶瓷的电容效果比较好);

tanker110 发表于 2011-3-23 15:07:08

Set/Reset回路如何设计?我的是在SETP和SETC之间串了一个224电容,别的没有电路了。请教,指点一下吧

COMPASS1 发表于 2011-3-24 11:34:32

回复【34楼】tanker110
-----------------------------------------------------------------------

在这中间如果电容材质好的话,你就只需增加0.22uF的电容就可以了,5883L外围电路比较简单的

xiaona 发表于 2011-3-26 13:31:15

请教一下,为什么我的HMC5883L模块Z周没有数据呢,还有X、Y轴的数据也不变呢?

xiaona 发表于 2011-3-26 13:31:27

请教一下,为什么我的HMC5883L模块Z周没有数据呢,还有X、Y轴的数据也不变呢?

COMPASS1 发表于 2011-3-28 11:09:48

回复【37楼】xiaona
-----------------------------------------------------------------------
Z轴没有数据,是一个什么样的情况呢?还有你的XY轴的数据没有变化,其读出来的数据大概是多少呢?

tanker110 发表于 2011-4-3 14:17:09

回复【36楼】xiaona
-------------------------------------------------------------------
首先确定你的配置是否正确,
你是在连续测量模式吗,先设置模式寄存器为00,然后设置寄存器A,B依次为0。再试。
然后如果在所有方向都反转,Z轴都没有数据,而XY轴数据正常,那么可能Z轴电路已损坏。我有遇到过这样情况。我的是高温损坏了芯片内部分电路。

COMPASS1 发表于 2011-4-15 15:16:57

回复【40楼】tanker110
回复【36楼】xiaona
-----------------------------------------------------------------------

建议最好还是用self-test模式的设置来检测就更直观简便

KOUYU 发表于 2011-4-15 18:51:37

5883L的确是娇气的很。搞定它还是两个因素。一个是PCB一个焊接。至于PCB就不用说了。现在最新的资料都有PCB的按照上面的做就可以了。当然用你原来的5843的PCB电路也是可以的。就是换一个封装。至于焊接,不是那么好搞定的。以前5843都是手工焊接,没有问题的。现在5883L一般是焊接不好的。原因是焊接温度不能太高。PDF说是不要超过260°不过当你还没有到得时候估计它就死了。所以不是一般的焊接高手我估计你是搞定不了的。所以这个焊接工艺还是用工具吧——做钢网,机器焊接。

emily7982 发表于 2011-5-20 17:33:44

回复【37楼】xiaona
请教一下,为什么我的hmc5883l模块z周没有数据呢,还有x、y轴的数据也不变呢?
-----------------------------------------------------------------------

这个问题是有很多原因造成的,请传邮件给我:
amylp7982@gmail.com

emily7982 发表于 2011-5-20 17:36:48

回复【7楼】MAPGPS
还有, 如何与3轴陀螺仪数据融合得到更精确的磁角度? (消除抖动)
-----------------------------------------------------------------------

你是什么品牌的陀螺仪呢?可以交流一下!我们的技术支持这个方面比较熟悉,你可以发邮件给我amylp7982@gmail.com

xiaojia1203 发表于 2011-7-27 11:28:26

回复【41楼】COMPASS1航纬
-----------------------------------------------------------------------

能告诉我具体怎么自测试么

sally_2 发表于 2011-7-27 15:40:22

回复【楼主位】isimeng
-----------------------------------------------------------------------

你的配置寄存器A只设置了一次吗?文档中,配置寄存器A从0x00到0x01变化是什么意思啊?

Farid 发表于 2011-10-18 09:37:37

回复【25楼】MAPGPS
-----------------------------------------------------------------------

嗯 学习了

Farid 发表于 2011-10-18 09:38:00

回复【16楼】MAPGPS
-----------------------------------------------------------------------

多谢楼主分享 谢谢

qiuchen 发表于 2011-10-18 17:13:17

我也刚玩这颗芯片,是不是STAT的数值是0X01比较正常啊,0X11的话有问题吧;手册上只有提到BIT2~BIT7是保留的,读出为0.我的在0X13的时候锁死数据寄存器。

Farid 发表于 2011-10-21 17:00:08

回复【16楼】MAPGPS
-----------------------------------------------------------------------

用了楼主您的代码,测试后发现我的读数都是0……不知道是什么原因。

aishiqi1992 发表于 2011-10-22 22:08:00

回复【8楼】COMPASS1 航纬
回复【楼主位】isimeng
-----------------------------------------------------------------------
楼主,从你所采集到的数据来看,这些数据是存在问题的,根据hmc5883l的数据手册上的说明来看,
其范围是-2048 to 2047而满量程的数据显示"-4096"(十进制的数据),而你所采集的数据存在4607,因此这是不正常的数据;
其主要产生的问题,还是可能由于你的配置仅存器a所设置采样频率的问题而引起,因此建议你设置ma1:ma0=00试试
-----------------------------------------------------------------------

我饿的更惨。。。。


write_24c02(0x00,0x70);
write_24c02(0x01,0xe0);
write_24c02(0x02,0x00);

while(1)
{

readxyz();

sendstr("X: ");
printf16(mx);

sendstr("Y: ");
printf16(my);

sendstr("Z: ");
printf16(mz);


sendchar(0x0d);
sendchar(0x0a);
//sendchar((mx>>8)&0xff);
//sendchar(mx&0xff);

delay_ms(100);
}
}


X: 0000Y: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: 0000Y: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: 0000Y: FFFFZ: 0000
X: 0000Y: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: 0000Y: FFFFZ: 0000
X: 0000Y: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: 0000Y: FFFFZ: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: FFFFZ: 0000
X: 0000Y: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: FFFF
X: FFFFY: 0000Z: FFFF
X: FFFFY: FFFFZ: 0000
X: 0000Y: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: 0000Y: FFFFZ: 0000
X: 0000Y: FFFFZ: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: 0000Y: 0000Z: 0000
X: 0000Y: 0000Z: FFFF
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: 0000Y: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: 0000Y: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: 0000Y: FFFFZ: 0000
X: FFFFY: 0000Z: FFFF
X: 0000Y: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: 0000Y: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: 0000Y: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: FFFFZ: FFFF
X: 0000Y: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: FFFF
X: 0000Y: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: 0000Y: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: FFFFZ: 0000
X: 0000Y: FFFFZ: 0000
X: FFFFY: FFFFZ: 0000
X: 0000Y: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: 0000Y: FFFFZ: 0000
X: 0000Y: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: 0000Z: FFFF
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: 0000Y: 0000Z: 0000
X: 0000Y: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: 0000Y: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: FFFFY: FFFFZ: FFFF
X: FFFFY: FFFFZ: 0000
X: 0000Y: 0000Z: 0000
X: 0000Y: 0000Z: 0000
X: FFFFY: FFFFZ: 0000
X: 0000Y: FFFFZ: 0000
X: FFFFY: 0000Z: 0000
X: 0000Y: 0000Z: FFFF
X: 0000Y: 0000Z: 0000
X: 0000Y: FFFFZ: 0000
X: 0000Y: 0000Z: 0000



write_24c02(0x00,0x70);
write_24c02(0x01,0xe0);
write_24c02(0x02,0x00);

X: FFDAY: 000CZ: 0000
X: FFE5Y: 0004Z: 0000
X: FFD6Y: 0002Z: 0000
X: FFDBY: 0002Z: FFFF
X: FFC5Y: 0007Z: 0000
X: FFD6Y: 0006Z: 0000
X: FFC5Y: FFFFZ: 0000
X: FFC6Y: FFFEZ: 0000
X: FFD9Y: 0000Z: 0000
X: FFC5Y: FFFEZ: 0000
X: FFC6Y: FFFEZ: 0000
X: FFC4Y: FFFDZ: 0000
X: FFCBY: 0000Z: 0000
X: FFBEY: 0000Z: FFFF
X: FFBDY: FFFFZ: FFFF
X: FFD0Y: 0003Z: 0000
X: FFCDY: 0013Z: 0000
X: FFC6Y: 0002Z: FFFF
X: FFC8Y: 0001Z: FFFF
X: FFD7Y: FFFEZ: 0000
X: FFBEY: 0003Z: 0000
X: FFE0Y: FFFFZ: 0000
X: FFE1Y: 0001Z: 0000
X: FFBEY: FFFFZ: FFFF
X: FFD3Y: 0001Z: 0000
X: FFD5Y: 0012Z: 0000
X: FFC6Y: 0000Z: 0000
X: FFC6Y: FFFEZ: FFFF
X: FFC4Y: 000AZ: 0001
X: FFCCY: FFFFZ: 0000
X: FFC3Y: FFFFZ: FFFF
X: FFC1Y: 000FZ: 0000
X: FFC1Y: 0010Z: 0000
X: FFF2Y: 0014Z: 0001
X: FFC7Y: 0008Z: FFFF
X: FFD1Y: 0000Z: 0000
X: FFCFY: FFFFZ: 0001
X: FFCCY: 0004Z: 0000
X: FFC4Y: FFFBZ: 0000
X: FFD9Y: 0010Z: 0000
X: FFC3Y: FFFDZ: 0000
X: FFC1Y: 000BZ: 0000
X: FFD4Y: FFFEZ: FFFF
X: FFDEY: FFFFZ: 0000
X: FFC8Y: 000DZ: 0000
X: FFCCY: 000EZ: 0000
X: FFC8Y: FFFCZ: FFFF

怎么办啊。。。。

racede 发表于 2011-10-22 22:49:10

回复【54楼】aishiqi1992小鸡
-----------------------------------------------------------------------

应该是外围的两个电容出问题了...我也经历过这个问题...我的是因为复位电容虚焊了...

aishiqi1992 发表于 2011-10-23 10:08:33

回复【55楼】racede
回复【54楼】aishiqi1992小鸡
-----------------------------------------------------------------------
应该是外围的两个电容出问题了...我也经历过这个问题...我的是因为复位电容虚焊了...
-----------------------------------------------------------------------

现在最恐怖的是芯片想焊也焊不上去,想拆也拆不下来。我只有电烙铁。。。而且电动我没有说明书上的那种我都用104瓷片电容。

racede 发表于 2011-10-23 10:29:33

回复【56楼】aishiqi1992小鸡
-----------------------------------------------------------------------

额.................那真帮不了你了...

aishiqi1992 发表于 2011-10-23 11:22:13

回复【57楼】racede
回复【56楼】aishiqi1992小鸡
-----------------------------------------------------------------------
额.................那真帮不了你了...
-----------------------------------------------------------------------

你要是确定是电容的问题我将想尽一切办法搞定它。。。。

racede 发表于 2011-10-23 14:30:03

回复【58楼】aishiqi1992小鸡
-----------------------------------------------------------------------

恩~~90%了

zjihtt 发表于 2011-10-23 17:31:50

这个东西好像没这么复杂吧。我一次就搞定了啊,板子自己做的,芯片也是自己焊的。掌握技巧了这些芯片都好焊啊

aishiqi1992 发表于 2011-10-23 22:46:22

回复【59楼】racede
回复【58楼】aishiqi1992小鸡
-----------------------------------------------------------------------
恩~~90%了
-----------------------------------------------------------------------

还是没反应……明天我最后一次对他施暴……用打火机把它烧下来,再焊上去,坏了就算了……

racede 发表于 2011-10-23 23:33:27

回复【61楼】aishiqi1992小鸡
-----------------------------------------------------------------------

可以用烙铁焊的啊...有刀头更容易....网上找个视频看看吧~

Farid 发表于 2011-10-25 09:10:50

回复【16楼】MAPGPS
-----------------------------------------------------------------------

您好,我现在用的是arduino板子,芯片是STM32F103RBT6这个芯片对应的I2C引脚是29 30 但是arduino中的wire库里面定义的是20和21
我现在也是用hmc5883l但是不知道如何把这引脚对应起来,arduino中的29和30引脚我现在已经用掉了。

求解答,谢谢!

COMPASS1 发表于 2011-10-31 16:30:07

回复【61楼】aishiqi1992小鸡
-----------------------------------------------------------------------

从你上面的数据来看,基本三轴的数据都接近为零了?!
你有用自带的self-test测试吗?如果没有,可以先试试

COMPASS1 发表于 2011-10-31 16:33:41

回复【63楼】Farid
-----------------------------------------------------------------------

如果你的Pin20和21能被定义为SCL和SDA引脚吗?
如果可以,那你直接连接那两引脚和HMC5883L的相应引脚连接就好了;

cctsao1008 发表于 2011-11-12 21:00:19

學習!!!

Farid 发表于 2011-11-24 14:06:34

回复【16楼】MAPGPS
-----------------------------------------------------------------------

您好,用了你的代码,发现读书都不变化,不知何故。好像数据没有更新。我用的是maple开发环境。请问你的arduino是什么版本?

aishiqi1992 发表于 2011-11-27 15:38:49

回复【62楼】racede
-----------------------------------------------------------------------

买了两套PCB用刀头焊,都是没反应。。我崩溃了。。。伤心死了

dragondslj 发表于 2012-11-21 17:16:01

我用的HMC5883L传感器的XY轴数据都正常,但是Z轴数据返回都是0不变,这是不是焊接的问题呢?我手工焊接的,重新焊接了N次还是这样

zjzly 发表于 2014-12-10 17:42:45

wy943103 发表于 2011-2-5 21:24
回复【楼主位】isimeng
-----------------------------------------------------------------------



你好,你的问题解决了吗?我读hmc5883时也遇到了问题,就是09状态寄存器一直是3,这是怎么回事?
页: [1]
查看完整版本: 求助:HMC5883L的X,Y,Z数据寄存器的读出值不准确,而其他的寄存器的数据读出是准确的