关于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条回答
zhoutuo08
2019-07-16 02:48
今天,把程序下进去居然行了,我没搞懂,但是角度有点问题正北为0没问题,可是180度与南差了有45度,本来想用网上说的简单校准,可是我发现我的三轴的最大值都为5535,最小值为零。不知道如何是好,还有,最高位到底是什么用的,它只会在0或5之间跳变。。。。然后就是这块芯片的原理到底是什么怎么测量的,网上怎么都找不出来,三个数据的实际意义也不懂。。。。。。但还好角度出来了,嘿嘿

一周热门 更多>