关于HMC5883电子罗盘的数据输出问题

2019-07-15 23:32发布

本帖最后由 zhoutuo08 于 2013-7-23 16:18 编辑

我在51上运行程序,数据没有问题可是,改完程序在atmega128上跑,罗盘输出都是错误的数据,没有应用价值,但是加速度及陀螺仪的数据输出都没什么问题,x,y,z最高能达到5530,好像超过了他的范围,还有一个就是

  1. void conversion(unsigned int temp_data)
  2. {
  3.         wan=temp_data/10000+0x30 ;
  4.         temp_data=temp_data%10000;   //取余运算
  5.         qian=temp_data/1000+0x30 ;
  6.         temp_data=temp_data%1000;    //取余运算
  7.         bai=temp_data/100+0x30   ;
  8.         temp_data=temp_data%100;     //取余运算
  9.         shi=temp_data/10+0x30    ;
  10.         temp_data=temp_data%10;      //取余运算
  11.         ge=temp_data+0x30;
  12. }
复制代码为什么取值时要加0X30啊
对了,使用自测时,输出的3个轴都为4095.。。。。。。。。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
北斗下寻觅
2019-07-16 19:17
zhoutuo08 发表于 2013-7-24 11:42
今天,把程序下进去居然行了,我没搞懂,但是角度有点问题正北为0没问题,可是180度与南差了有45度,本来想用网上说的简单校准,可是我发现我的三轴的最大值都为5535,最小值为零。不知道如何是好,还有,最高位到底是什么用的,它只会在0或5之间跳变。。。。然后就是这块芯片的原理到底是什么怎么测量的,网上怎么都找不出 ...

楼主,请问你这个输出数据最后调对了吗?你所说的最大值应该是65535吧,但是为什么数据手册上写的输出最大值是0xF800到0x07FF呢,我现在测出来的输出值和楼主所述的情况十分类似,所以希望楼主指点一下,两年前的帖子,不知道楼主还能不能看到……

一周热门 更多>