1、HMC5883L通过IIC总线与主机进行通信,其IIC控制字节地址如下

7-bit地址 0x1E 0001 1110
8-bit读取地址 0x3D 0011 1101
8-bit写入地址 0x3C 0011 1100

可以发现,HMC5883L的IIC控制字节地址与IIC总线控制字节地址是一致的。其中高4位为器件类型标识符,接着3位为片选,最低位为读写控制位(1为读操作,0为写操作)。

HMC5883L IIC接口特性说明:

HMC5883L作为一个IIC兼容装置,该装置包含一个7-bit串行地址,并支持IIC协议。HMC5883L可以支持标准和快速模式,分别为100kHz和400kHz,但不支持高速模式(Hs)。

要求主机的活动(寄存器读取和写入)优先于内部活动,例如测量,这一优先次序的安排是为了不让主机等待,同时IIC总线占用的事件比必须的时间长。

2、HMC5883L一些引脚说明

VCC 2.16V-3.6V
GND  
SCL 串行时钟——IIC总线主/从时钟
SDA 串行数据——IIC总线主/从数据
DRDY 数据准备,中断引脚,内部被拉高,选项为连接,当数据位于输出寄存器上时会在低电位上停250us

3、HMC5883L寄存器说明

地址 名称 访问 默认值
00 配置寄存器A(Configuration Register A) 读/写 1111 0000(CRA)
01 配置寄存器B(Configuration Register B) 读/写 0010 0000
02 模式寄存器(Mode Register) 读/写 1000 0001(默认为单一测量模式)
03 数据输出X MSB寄存器(Data Output X MSB Register) 0000 0000
04 数据输出X LSB寄存器(Data Output X LSB Register) 0000 0000
05 数据输出Z MSB寄存器(Data Output Z MSB Register) 0000 0000
06 数据输出Z LSB寄存器(Data Output Z LSB Register) 0000 0000
07 数据输出Y MSB寄存器(Data Output Y MSB Register) 0000 0000
08 数据输出Y LSB寄存器(Data Output Y LSB Register) 0000 0000
09 状态寄存器(Status Register) 0000 0000
10 识别寄存器A(Identification Register A) 0100 1000(ASCII值为H)
11 识别寄存器B(Identification Register B) 0011 0100(ASCII值为4)
12 识别寄存器C(Identification Register C) 0011 0011(ASCII值为3)

4、HMC5883L读写说明

HMC5883L利用地址指针来说明读取或者写入的寄存器位置。这些指针由主机发往从机,并且跟在7-bit地址和1-bit读/写控制位之后。

下面以读数据为例说明HMC5883L IIC读取数据时应该进行的操作时序。

1、发送从器件控制字节0x3C(写入操作)。注意,此操作之后主机再往从机发送的数据就是主机写入从机的数据

2、发送数据3(由器件手册可知,3为数据输出X MSB寄存器的地址)。此操作也就是写想要读取数据的寄存器地址。

3、发送从器件控制字节0x3D(读取操作)。注意,此操作之后从机便向主机发送步骤2所发送的地址处的数据。

4、将从器件发送过来的数据写入相应的数组。

关于HMC5883L读数据需要作如下说明。

HMC5883L为了尽可能减少主机与从机之间的通信,地址指针会在不需要主机干涉的情况下自动更新。这种自动更新的地址更新有两种附加的特性。

1、当访问12或者更高的地址时,指针会自动更新到00。也就是返回首寄存器的地址。

2、当指针达到08时,指针回滚到地址03。也就是说此时指针一直在6个数据寄存器之间滚动,从机一直滚动向主机发送数据。

To move the address pointer to a random register location, first issue a “write” to that register location with no data byte following the commend. For example, to move the address pointer to register 10, send 0x3C 0x0A.

为了将地址指针移动到随机的寄存器地址,首先应该发送写指令,之后再跟一个无数据字节(在这里我自己理解我所要移动到随机的寄存器的地址)。例如,要将地址指针移动到寄存器10 ,就发送0x3C 0x0A。

0x3C为HMC5883L的写控制字节,告诉从机下一个发送的字节为写入到从机的字节。

0x0A为HMC5883L的寄存器10的地址,此时地址指针就指向寄存器10了。如果要进行读操作,则发送HMC5883L的读控制字节0x3D,然后从机将会发送相应的寄存器中的数据返回至主机。如果要进行写操作,则发送HMC5883L的写控制字节0x3C,然后再发送的数据就会写入当前指针指向的寄存器。

工作总结—HMC5883L应用的一些说明相关推荐

  1. HMC5883L 电子指南针

    电子指南针也称为电子罗盘,是一种重要的导航工具,能实时提供移动物体的航向和姿态.随着半导体工艺的进步和手机操作系统的发展,集成了越来越多传感器的智能手机变得功能强大,很多手机上都实现了电子罗盘的功能. ...

  2. 关于HMC5883L驱动书写及调试的总结

    刚刚结束对传感器HMC5883L的驱动书写及调试工作,虽然之前对相关的各种知识点都有接触,但是在真正从头书写驱动的时候还是遇到了很多不大不小的麻烦,在这里自行总结一下,也是作为以后驱动书写的一个经验教 ...

  3. 3轴数字罗盘IC HMC5883L介绍

    3轴数字罗盘IC HMC5883L简介 霍尼韦尔 HMC5883L 是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域.HMC5883L 包括最先进的高分辨率H ...

  4. 工作如果没有方法,光靠苦力是不行的

    在职场中,如果你已经升职为一个管理者了,有时候光靠苦力是不行的,还要认真读点在工作上能有用到的书,才能增加知识,开通思路,增长才能. 在平时也要发奋读现在或将来能用到的书,抓紧点滴时间.一个管理者的才 ...

  5. 外包工作经历暨2021年终总结

    公司:太极-慧点科技 时间:2021/3/24~2021/6/7 项目:工商联/经济日报社OA项目 技术点: 前端:VUE封装组件 后端:Springboot.Spring Data Jpa Jenk ...

  6. Java学到什么水平能够出去找工作!

    Java学到什么水平能够出去找工作!搞定这些技术吧! 1.JavaSE内容 环境搭建,基础语法,面向对象,数组,集合,常用API,IO流,反射机制,多线程,网络编程 要求: 利用这些基础知识,写出一个 ...

  7. 广泛的信号处理链如何让语音助理“正常工作”

    广泛的信号处理链如何让语音助理"正常工作" How extensive signal processing chains make voice assistants 'just w ...

  8. GPU—加速数据科学工作流程

    GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...

  9. 2021年大数据ELK(二十):FileBeat是如何工作的

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 FileBeat是如何工作的 一.input和harvester 1.inpu ...

  10. 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...

最新文章

  1. pandas的series和dataframe
  2. postman测试post请求
  3. 《正则表达式经典实例(第2版)》——2.6 匹配完整单词
  4. 一起谈.NET技术,初识Silverlight 4及其架构
  5. Echarts开源可视化库学习(二)常用图表的实现与效果
  6. 【jquery版.net控件—dropdownlist】附源码,欢迎大家指点、指正、拍砖!!!
  7. SSIS中循环遍历组件[Foreach Loop Container]
  8. httpclient base64 文件上传_文件上传下载
  9. Leetcode--134. 加油站
  10. MySQL : mysql连接报 Communications link failure
  11. c# lock的使用及注意事项
  12. mac模式怎样构造在jsp中_在MAC下搭建JSP开发环境
  13. 【转】多态与 new [C#]
  14. Qlocker勒索病毒 7Z勒索病毒 7Z压缩包密码破解
  15. C语言编写小程序——万年历
  16. 什么是应用宝统一链接服务器,applink
  17. 95-2.Hive史诗级调优大全_ev 两个案例重复了 没用
  18. java.Net.UnknownHostException异常处理的方法
  19. MySQL MGR 单主模式下单点故障时的节点角色切换规则
  20. Python将图片插入到Excel中

热门文章

  1. java软件汉化工具_6款程序员必备的开源中文处理工具
  2. 闪讯无线助手-Android端闪讯破解路由器拨号实现原理
  3. 全志android编译过程
  4. 硬盘盒刷固件使其不休眠
  5. Shadow Defender 1.4.0.561 简体中文注册码破解版(最好用的影子保护系统)
  6. erp和php数据对接,ERP系统与PLC数据对接方法
  7. 深度学习与PyTorch入门实战教程
  8. jdk,j2sdk,j2eesdk,jre 的区别和联系
  9. SNN系列|神经元模型篇(4) LIF
  10. QT cmd强制删除文件