一、描述

二、AK09918是通过标准的I2C协议读写数据的,速率支持100KHz(标准)-400KHz快速模式的。

三、寄存器


enum {COMPANY_ID = 0x48,DEVICE_ID = 0x0C,
};#define AK09918_SLAVE_ADDR                        0x0C//
//公司名称Company ID->AKM
#define WIA1_CO_ID_REG                              0x00//
//设备ID Device ID->AK09918
#define WIA2_DEVICE_ID_REG                      0x01//
//数据状态寄存器1。bit0就绪位DRDY->0:Normal。1:Data is ready。bit1超时位DOR->0:Normal。1:Data OVerrun
//ST2或测量寄存器(HXL to TMPS)被读的时候都是返回0。溢出是连续测量模式下寄存器数据未被及时读走
#define ST1_REG                                             0x10//
//X轴低八位数据,default:0。range of axis is -32752 to 32752
#define HXL_REG                                             0x11//
//X轴高八位数据,default:0。range of axis is -32752 to 32752
#define HXH_REG                                             0x12//
//Y轴低八位数据,default:0。range of axis is -32752 to 32752
#define HYL_REG                                             0x13//
//Y轴高八位数据,default:0。range of axis is -32752 to 32752
#define HYH_REG                                             0x14//
//Z轴低八位数据,default:0。range of axis is -32752 to 32752
#define HZL_REG                                             0x15//
//Z轴高八位数据,default:0。range of axis is -32752 to 32752
#define HZH_REG                                             0x16//
//哑读操作寄存器
#define TMPS_DUMMY_REG                              0x17//
//状态寄存器2。bit4-HOFL:溢出标志->0:Normal。1:Magnetic sensor overflow occurred
//溢出数据无效,数据有效与否的标志,读取(HXL to TMPS)数据之后需要读溢出ST2寄存器
#define ST2_REG                                             0x18//
//哑读/写操作寄存器
#define CNTL1_DUMMY_REG                             0x30//
//操作模式寄存器
#define CNTL2_MODE_REG                              0x31//
//复位寄存器->1:Reset。0:Normal
#define CNTL3_RST_REG                                   0x32

四、地址需要注意,右移一位:

五、读取三轴数据的时候,判断数据就绪的标志。

但是,按照手册设置模式后直接判断DRDY读取三轴数据,DRDY会一直是0。

.

.

.

在寄存器ST1看到

DRDY就绪后需要读ST2或者HXL-TMPS寄存器才会置零。

所以需要在读标志之前进行一次读ST2或者TMPS寄存器。

以上就是我读写AK09918时遇到的问题和解决方法,水平有限,如有不妥,请见谅,请指出。谢谢。

需要源代码的朋友去:ak09918Linux平台和STM32平台驱动程序,实测,亲自调试-Linux文档类资源-CSDN下载

下载去。

AKM的AK09918调试驱动过相关推荐

  1. 嵌入式Linux(5):驱动开发网络调试驱动设备的Linux系统移植

    驱动开发之网络调试驱动设备的Linux系统移植 1.Uboot移植到开发板 uboot移植 2.开发板网络通讯 nfs命令 tftp命令 3.Linux移植到开发板 4.BusyBox 构建根文件系统 ...

  2. windbg调试驱动学习总结

    简单驱动编写与windbg调试 http://trustsec.blog.51cto.com/305338/64694/ 一.驱动编写 随着对windows系统的深入研究,越来越多的内核方面的知识被挖 ...

  3. VS2012 ddk驱动编译与虚拟机联机调试设置(vs调试驱动)

    一.安装Windows Driver Kit 8 1首先在计算机上安装VS2012 (12很容易安装,安装步骤略),然后到官网上下载Windows Driver Kit 8 下载地址: http:// ...

  4. Windbg无源码调试驱动

    文章目录 准备工具 修改OEP 修改校验和 开始调试 准备工具 windbg调试器 一台搭建好双机调试环境的虚拟机 任意一个能运行驱动的软件 CFF Explorer LoadPE 修改OEP 首先随 ...

  5. 5、WDK 调试驱动使用devcon

    由于对于WDK调试完全不了解.然后从网上找了驱动安装工具, 安装第一次能够打印,卸载后再安装发现能够再继续打印了. 怀疑是因为卸载不完整导致 . 果然重启后安装->启动又能够继续打印调试信息. ...

  6. android driver log,Android调试驱动抓log的方法

    转自:http://blog.csdn.NET/menghnhhuan/article/details/7470583 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序 ...

  7. 使用 vs2012 调试驱动

    1 将Target加入到Host同一个域或工作组,可互ping通. 2 Target:确定你的登陆帐号在Administrators组 3 Target:查看活动网络, 高级共享 打开 对应活动网络配 ...

  8. android usb调试 驱动下载,教你在安装手机上快速打开usb调试模式

    Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件.下载应用或ROOT等,都需要打开手机的USB调试模式.安卓系统的版本有很多,它们的打开 ...

  9. WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建

    为什么80%的码农都做不了架构师?>>>    一.准备工作 1 系统环境:Win10系统 2 开发工具:VS2015 3 驱动开发工具:WDK10 4 Windows SDK:SD ...

最新文章

  1. 中国大学MOOC-C程序设计(浙大翁恺)—— 时间换算
  2. 解决linux中Kipmi0进程对CPU使用率很高问题
  3. 从字符串指定位置删除指定个数的字符
  4. OpenCV:详解掩膜mask
  5. 前端学习(1153):常量const01
  6. cuda编程性能 分析工具 nvprof的使用
  7. J2SE下的路径问题
  8. Thrift 的原理和使用
  9. vue 引入液晶数字字体
  10. 基于Linux的录像机:Neuros OSD
  11. 【Racket】安装与入门
  12. 服务器w7系统怎么开启端口,win7如何打开21端口|win7开启21端口的方法
  13. 怎么用python将日期转化为数字_python转化excel数字日期为标准日期操作
  14. 关于Oracle 12c ocp认证考试
  15. 如何在OpenAI创建一个api key(chatgpt)?
  16. Sumo+Veins+OMNeT仿真调试记录
  17. 蒋勋:知识分子应具备怎样的美学修养
  18. AWS、Google、Apple云端宕机背后的故事
  19. 2023年中国科学技术大学计算机考研上岸前辈备考经验
  20. DNS服务器的问题,IE浏览器的问题 ,网络防火墙的问题好危险啊!

热门文章

  1. Python 基础|while 循环语句
  2. 国标GB/T28181协议下EasyGBS互联网无插件视频播放器起播慢或延迟高问题解决方案
  3. 解决微信App支付服务端,App上提示“商户支付下单id非法”
  4. feign实战(provider与consumer)
  5. source tree ui操作对应的git命令
  6. vue如何通过键盘方向键切换input焦点
  7. linux sed去除重复,删除文本中的重复行(sort+uniq/awk/sed)
  8. 第1章第6节:如何打开之前编辑过的演示文稿 [PowerPoint精美幻灯片实战教程]
  9. 关于自然语言处理中的语义与概念
  10. 全面认识当前市面99%的大数据技术框架(附:各大厂大数据技术应用文章)