mma8653驱动编程
1) 该芯片的测量范围
+-2g (默认)
+-4g
+-8g
2)该芯片有几种工作模式
OFF
STANDBY(待机)
ACTIVE
3)该芯片的从设备地址
0x1d
4)该芯片大概有多少个特殊功能寄存器
大约有50个寄存器
5)ID值存储在哪个寄存器中
WHO_AM_I (0x0d)
6)加速度值存在哪些寄存器中
0x01~0x06的寄存器中
该驱动本质上也是去操作mma8653内部的特殊功能寄存器
实现该驱动的基础:I2C控制器的驱动
iic_init
iic_start iic_tx iic_stop: 发
iic_start iic_rx iic_stop:收
读mma8653的datasheet
从设备地址:0x1d
内部有接近50个特殊功能寄存器
读写其内部寄存器的方式
写的过程:mma8653_write
主设备 发start
发0x1d<<1|0
收ACK
发寄存器地址
收ACK
发data
收ACK
...
发data
收ACK
发stop
读的过程:mma8653_read
主设备 发start
发0x1d<<1|0
收ACK
发寄存器地址
收ACK
重发start
发0x1d<<1|1
收ACK
收data
发ACK
...
收data
不发ACK
发STOP
读取加速度值
mma8653 datasheet
1)加速度值存在于哪个寄存器中
0x01~0x06寄存器
0x01和0x02寄存器前2bit共10bit存放X轴加速度值
0x03和0x04寄存器前2bit共10bit存放Y轴加速度值
0x05和0x06寄存器前2bit共10bit存放Z轴加速度值
2)地址为0x00的寄存器的作用
数据状态寄存器,可以检测XYZ轴寄存器中数据状态,相应位表示是否被覆盖以及是否产生新数据
3)如何切换为active
CTRL_REG1
[0] 1 ,切换为ACTIVE模式
问题:我是如何读取到加速度值的
以X轴数据为例:
X = arr[01]<<24 | arr[02]<<16
X = X>>22
错误实例:
X = arr[01]<<8 | arr[02]
X = X>>6
mma8653驱动编程相关推荐
- 嵌入式linux驱动开发之点亮led(驱动编程思想之初体验)
这节我们就开始开始进行实战啦!这里顺便说一下啊,出来做开发的基础很重要啊,基础不好,迟早是要恶补的.个人深刻觉得像这种嵌入式的开发对C语言和微机接口与原理是非常依赖的,必须要有深厚的基础才能hold的 ...
- linux内核_Linux驱动编程的本质就是Linux内核编程
由于Linux驱动编程的本质属于Linux内核编程,因此我们非常有必要熟悉Linux内核以及Linux内核的特点. 这篇文章将会帮助读者打下Linux驱动编程的基础知识. 本篇文章分为如下三个小节进行 ...
- Linux驱动编程 step-by-step (二) 简单字符设备驱动
简单字符设备驱动 1.主次设备号 主设备号标识设备连接的的驱动,此设备好由内核使用,标识在相应驱动下得对应的设备 在linux中设备号是一个32位的dev_t类型 typedef __u32 _ ...
- Linux驱动编程 step-by-step (五)主要的文件操作方法实现
主要的文件操作方法实现 文件操作函数有很多的操作接口,驱动编程需要实现这些接口,在用户编程时候系统调用时候会调用到这些操作 [cpp] view plaincopy struct file_opera ...
- 数据即代码:元驱动编程
几个小伙伴在考虑下面这个各个语言都会遇到的问题: 问题:设计一个命令行参数解析API 一个好的命令行参数解析库一般涉及到这几个常见的方面: 1) 支持方便地生成帮助信息 2) 支持子命令,比如:git ...
- [内核编程] 内核环境及其特殊性,驱动编程基础篇
[内核编程] 内核环境及其特殊性,驱动编程基础篇 在学习汉江独钓一书后,打算总结一下内核编程应该注意的事项,以及有关的一些基础知识.第一次接触内核编程,还真是很生疏,很多东西不能一下马上消化.这里做 ...
- linux驱动read函数 copytouser,Linux驱动编程 step-by-step (五)主要的文件操作方法实现...
主要的文件操作方法实现 文件操作函数有很多的操作接口,驱动编程需要实现这些接口,在用户编程时候系统调用时候会调用到这些操作 structfile_operations { ... loff_t (*l ...
- CAN 总线嵌入式驱动编程
摘要:介绍了uclinux 操作系统的内核结构以及设备驱动编程的基本原理,并对CAN 总线的嵌入式系统进行了硬件设计及软件驱动编程,提出CAN 总线技术应用于嵌入式系统的一种方案. 1 引言 ...
- Windows驱动编程基础教程
前言 本书非常适合熟悉Windows应用编程的读者转向驱动开发.所有的内容都从最基础的编程方法入手.介绍相关的内核API,然后举出示范的例子.这本书只有不到70页,是一本非常精简的小册子.所以 ...
最新文章
- sqlDataAdapter的FillSchema用法
- 《你的灯亮着吗》读后感1
- TortoiseGit上传代码报错error:1407742E
- windosw应用提示内存不足
- 随想录(docker应用)
- 【C】C语言内存字节对齐
- Hive与RDBMS的区别
- android 版本更新下载进度框,Android版本更新(Service下载 Notification进度条)
- guet-acm-开挂的chair
- jsp超链接中怎么跳转页面跳转_JSP跳转页面汇总
- 微信公众平台开发(56)优惠券
- 可怕!Facebook 竟能识别出性工作者!你怎么看?
- wma格式怎么转换mp3
- 虚幻5新特性之EnhancedInput
- PHP底层入门的一些概念
- docker容器搭建discuz论坛
- Hadoop中解除 Name node is in safe mode的方法
- ActivityNet数据集解析
- 物联网安全解决方案_如何设计具有安全性的自制物联网解决方案
- java雪人程序_java的几种引用类型