博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ST公司三轴加速度计LIS3DH应用
阅读量:5139 次
发布时间:2019-06-13

本文共 935 字,大约阅读时间需要 3 分钟。

本文主要介绍LIS3DH的运动检测功能(Motion detection),一旦两次加速度值的差值超过了设置阈值,相应的引脚就会产生中断。

LIS3DH接口非常简单,四线SPI接口。

LIS3DH上电需要等待大约5ms才能对其寄存器进行操作,否则可能达不到想要的结果。

寄存器配置如下:

spi_lis3dh_writebyte(0x3f,0x20);//CTRL_REG1  设置采样频率为25Hz,低功耗模式,开启x,y,z轴检测

spi_lis3dh_writebyte(0x09,0x21);//CTRL_REG2 正常模式,数据从内部滤波器到输出寄存器,高通滤波器使能到中断1

spi_lis3dh_writebyte(0x40,0x22);//CTRL_REG3 AOI中断1使能

spi_lis3dh_writebyte(0x00,0x23);//CTRL_REG4 分辨率+/-2g 每位~16mg

spi_lis3dh_writebyte(0x08,0x24);//CTRL_REG5 中断锁存

spi_lis3dh_writebyte(0x10,0x32);//INT1_TH  =  16*16mg  设置中断阈值

spi_lis3dh_writebyte(0x00,0x33);//INT_DURATION 中断持续时间设置为0,因为已经设置中断锁存,所以中断不会消失,直到手动清除中断

 spi_lis3dh_readbyte(0x26);//reference  第一次虚读reference寄存器,强制将高通滤波器的值加载到当前加速度值,从这时开始比较了。

spi_lis3dh_writebyte(0x2A,0x30);//INT1_CFG 使能中断,中断模式是中断事件的‘OR’组合,这里只使能了x,y,z轴的高事件中断。开始时这个寄存器没理解清楚,把x,y,z轴的高低事件都使能了,导致一直有中断。因为不是高就是低,肯定有中断。

spi_lis3dh_readbyte(0x31);//当检测到中断后,清除中断

 

转载于:https://www.cnblogs.com/zpehome/archive/2013/05/08/3049697.html

你可能感兴趣的文章
项目管理 - PM、 SRS、SOW简介及范例
查看>>
Socket 编程-------------------笔记
查看>>
【bzoj4443】【[Scoi2015]小凸玩矩阵】二分+二分图最大匹配
查看>>
PHP设计模式系列 - 策略模式
查看>>
安装sqlserver2008
查看>>
ASP.NET 2.0 Provider Model 详细分析
查看>>
CDN技术详解及实现原理【转】
查看>>
关于工作单元模式——工作单元模式与EF结合的使用
查看>>
winForm添加图标
查看>>
用vs2013编译lua源码方法(一)
查看>>
AWS S3 上传文件
查看>>
JavaScript数据类型判断
查看>>
[JOI 2015 Final] 分蛋糕 2
查看>>
LeetCode "Smallest Rectangle Enclosing Black Pixels"
查看>>
Vim XDebug调试PHP php远程调试
查看>>
public private protected
查看>>
少年的烦恼
查看>>
使用定时器制作雪花动画
查看>>
英文邮件常用句型汇总2
查看>>
html+css:将有关系的域组成一组
查看>>