一、IIC协议

默认(出厂) HMC5883LL 7 位从机地址为0x3C 的写入操作,或0x3D 的读出操作。

要改变测量模式到连续测量模式,在通电时间后传送三个字节:0x3C 0x02 0x00

将00写入第二寄存器或模式寄存器以完成从单一模式切换到连续测量模式的设置。随着数据速率在出厂默认的15Hz更新,在查询HMC5883L数据寄存器进行新的测量之前,I2C主机允许产生一个67毫秒的延迟。要计算新数据时钟,发送:0x3D,并记录下的DXRA,DXRB,DZRA,DZRB,DYRA,DYRB设在寄存器3到8上的时钟脉冲。HMC5883L,将自动重新点回寄存器3进行下一个0x3D的查询。全部六个寄存器在新的数据写入任何一个寄存器前必须正确读取

(1)首先确定IIC从机地址,即IIC设备的地址查手册知为 0x3C

(2)确定HMC5883_Init()初始化操作的配置。注意选择连续测量模式测量数据才能够实时变化

HMC5883_WriteReg(0x00,0x14); //配置寄存器A:输出速率30HZ正常测量
HMC5883_WriteReg(0x02,0x00); //配置模式寄存器:连续测量模式

(3)读数据

我们所需要的数据是X和Y,其中|是按位或,用来将X和Y的高位和低位加起来,先将MSB左移8位再与LSB按位或运算

BUF[1]=Single_Read(HMC5883L_Addr,0x03);
BUF[2]=Single_Read(HMC5883L_Addr,0x04);
BUF[3]=Single_Read(HMC5883L_Addr,0x07);
BUF[4]=Single_Read(HMC5883L_Addr,0x08);
x=(BUF[1] << 8) | BUF[2];
y=(BUF[3] << 8) | BUF[4];
if(x>0x7fff)x-=0xffff;
if(y>0x7fff)y-=0xffff;
angle= atan2(y,x) * (180 / 3.14159265) + 180; 

θ = ATan(y / x)求出的θ取值范围是[-PI/2, PI/2]。

θ = ATan2(y, x)求出的θ取值范围是[-PI, PI]。

(二) 什么是磁偏角和方位公式

HMC5883三轴数位罗盘对角度的计算公式。

angle= atan2(y,x) * (180 / 3.14159265) + 180;

其实就是这样的:
角度 = atan2(y,x) * (180 / π) + 180,这里角度用0~360°表示

X轴的正方向为正北 ,即上述0~360角度的180°表示正北,360°表示正南

转载于:https://www.cnblogs.com/Kevin127/p/5368652.html

STM32 磁场传感器HMC5883相关推荐

  1. Rexsee API介绍:Android传感器系列之 - 磁场传感器Magnetic Field源码

    2019独角兽企业重金招聘Python工程师标准>>> Android的磁场传感器,Magnetic Field..读取磁场的变化,通过该传感器可开发出指南针.罗盘等磁场应用.该传感 ...

  2. android 获取加速度传感器值,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...

    本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...

  3. android开发中磁场传感器,Android传感器(加速度传感器,磁场传感器,光线传感器,方向传感器)...

    [android]代码库package mobile.android.sensor; import java.util.List; import android.app.Activity; impor ...

  4. Android中的传感器之---磁场传感器

    磁场传感器和加速度传感器是一样一样的(我说的是得到数据) Android的磁场传感器,Magnetic Field..读取磁场的变化,通过该传感器可开发出指南针.罗盘等磁场应用.该传感器读取的数据是空 ...

  5. 【传感器大赏】3轴磁场传感器

    3 Axis Compass V1.0 该模块基于磁场感应芯片 HMC5883L,可提供高达 1°~2° 的航向精度.HMC5883L 包含高分辨率的 HMC118X 系列磁场传感器,及 Honeyw ...

  6. android开发中磁场传感器,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...

    本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...

  7. iOS 磁场传感器的应用 Swift CoreMotion使用

    一:CoreMotion简介 CoreMotion框架是苹果应对各式各样的传感器推出的一个集合框架,可方便地使用该框架对诸如磁场.加速度.等物理量的测量.其核心组件为CoreMotion,使用时imp ...

  8. android磁场传感器页面布局在哪,教程:Android传感器—传感器查询demo

    今天给大家带来一个篇安卓传感器查询的干货教程,五一出去旅游看人山人海,不如宅在家学技术! 在Android系统中提供有加速度.磁场.方向.陀螺仪.光线.压力.温度和接近等传感器.传感器系统会主动对上层 ...

  9. android使用磁场传感器和加速度传感器确定当前朝向(即:方位角),以及常见问题的解决办法

    原文链接:http://blog.csdn.net/warren288/article/details/43274647 1,功能实现 确定当前设备朝向的方式有两种,一种是是直接使用 方向传感器 Se ...

  10. android学习笔记之磁场传感器制做指南针

    布局添加一个imageView,在加一个自定义pointer视图(需要加上包名) <FrameLayoutxmlns:android="http://schemas.android.c ...

最新文章

  1. 第一个 Hello Worlds ,打开 opener_server.pl 的大门。OPener_Server 第 3 弹
  2. grep -v、-e、-E
  3. (0028)iOS 开发之Xcode使用技巧
  4. Python 进阶_函数式编程
  5. 第一次CM--CosH.2
  6. 阿里云宣布 Serverless 容器服务 弹性容器实例 ECI 正式商业化
  7. MVC5中EF6 Code First启动慢及间隙变慢的一些优化处理
  8. csdn中使用Git的一些注意问题
  9. 妙用Python内置函数int()快速计算等比数列前n项和
  10. 有趣好玩恶搞的C语言程序,有趣搞笑的整人VBS小脚本(整菜鸟专用)
  11. 《一小时高效会议》纪要摘录----梁聪
  12. 移动应用开发跨平台工具imag.js入门
  13. 最新易企秀 微场景制作源码 易企秀去版权源码 带几百套模板
  14. 流媒体(视频)开发常用调试工具
  15. Web手机开发框架一览
  16. 融云通讯服务器,发送图片到自己的服务器
  17. 分布式id生成器:彻底解决雪花算法时间回拨问题
  18. 字符集与比较规则及在Mysql中的应用
  19. 二三星缩水软件手机版_手机版的录音剪辑软件:清爽视频编辑APP
  20. windows 系统文件中的i386

热门文章

  1. 网易云音乐登陆显示服务器错误,网易云音乐-登录业务流程还原
  2. Web GIS多种方式发布动态地图服务及显示(1)
  3. C# 双目摄像头测试软件
  4. 电脑摄像头测试软件在线,AMCap 摄像头测试软件使用说明
  5. 2022-2028全球与中国真空探针台市场现状及未来发展趋势
  6. CentOS mysql常用命令
  7. linux vi带 替换,vim替换命令_Linux vi/vim替换命令使用集锦
  8. 【目标检测算法系列】一、R-CNN算法
  9. Linux 快捷键大全
  10. java voip 的sip服务器搭建_用树莓派搭建低成本VOIP服务器与电话系统