在地球上的物体都受到地球的引力,所以LIS3DH静止不动时,都会测量的重力加速度。使用LIS3DH内部的高通滤波器可以过滤掉重力,可以更好的检测重力外的其他力产生的加速度。

LIS3DH的高通滤波器的正常模式可以通过读取REFERENCE (26h)寄存,立即清除加速度的直流分量,实现重力加速度的过滤。如图1。

图1

使用中断时,一定要打开中断,设置中断的阈值,设置打开对应轴的阈值中断。使用中断需要获取产生中的加速度值时,不要使用fifo。初始化程序如下。

void LIS3DHInit()
{uint8_t flag;IICInit();ExtiInit(INT1_PORT,INT1_PIN,1,GpioIrqRising);ExtiInit(INT2_PORT,INT2_PIN,1,GpioIrqRising); LIS3DH_ReadReg(LIS3DH_WHO_AM_I,&flag);printf("%x\r\n",flag);LIS3DH_WriteReg(LIS3DH_CTRL_REG1,0x4f); //50HZ,低功耗模式LIS3DH_WriteReg(LIS3DH_CTRL_REG2,0x09); //使用高通滤波器,过滤初始加速度LIS3DH_WriteReg(LIS3DH_CTRL_REG3,0x40); //打开INT1中断LIS3DH_WriteReg(LIS3DH_CTRL_REG4,0x00); //-2g~2gLIS3DH_WriteReg(LIS3DH_CTRL_REG5,0x08); //锁存INT1_SRC,不使用fifoLIS3DH_WriteReg(LIS3DH_CTRL_REG6,0x00); //中断引脚高电平有效LIS3DH_WriteReg(LIS3DH_INT1_THS,31); //设置阈值,2g单位为16mg,4g单位为32mg,8g单位为62mg,16g单位为186mgLIS3DH_WriteReg(LIS3DH_INT1_DURATION,0);      //设置唤醒时间,不需要进入睡眠LIS3DH_ReadReg(LIS3DH_REFERENCE_REG,&flag);   //读取参考值寄存器,清除直流分量LIS3DH_WriteReg(LIS3DH_INT1_CFG,0x2a);        //当XYZ轴加速度高于阈值,产生中断
}

读取加速度时,可以在中断服务函数中读取,提高数据的实时性。程序如下。

void PORT2_IRQHandler(void)
{uint8_t flag;uint32_t irqSt = 0;irqSt = M0P_GPIO->P2STAT;M0P_GPIO->P2ICLR = 0;        //清除外部中断if(irqSt & (1<<INT1_PIN)){   //INT1产生中断LIS3DH_GetInt1Src(&flag);  //获取LIS3DH INT1标志if(flag){                  //INT1产生中断,直接读取加速度LIS3DH_GetAccAxesRaw(&lis3dh.acc);lis3dh.acc.AXIS_X >>= 4;lis3dh.acc.AXIS_Y >>= 4;lis3dh.acc.AXIS_Z >>= 4; //加速度值都是左对齐的,要右移4位printf("%5d%6d%6d\r\n",lis3dh.acc.AXIS_X,lis3dh.acc.AXIS_Y,lis3dh.acc.AXIS_Z);}}if(irqSt & (1<<INT2_PIN)){lis3dh.intFlag |= INT2_FLAG;LIS3DH_ReadReg(0x35,&flag);}
}

给LIS3DH施加一定的力后,数据输出如下。本文中设置的阈值为31,所以加速度阈值为31*16mg=496mg。图中每次输出都至少有一个轴的值大于496,说明配置有效。

最后发一下程序的下载链接。

https://download.csdn.net/download/qq_39306385/12258521

LIS3DH高通滤波器与加速度阈值中断相关推荐

  1. STM32F103通过模拟IIC读取LIS3DH 解析数据获取加速度和角度

    STM32F03通过模拟IIC读取LIS3DH 解析数据获取加速度和角度. 串口1输出电脑串口助手,直接用即可,代码规范,好移植 STM32F03通过模拟IIC读取LIS3DH 解析数据获取加速度和角 ...

  2. lis3dh 三轴加速度计 运动检测 中断配置实现

    首先,LIS3DH的II2地址: I2C Device Address 8 bit format if SA0=0 -> 0x31(30也可以) if SA0=1 -> 0x33 void ...

  3. Lis3dh加速度传感器使用实验教程

    前言 LIS3DH三轴加速度专感器是ST公司推的一款宽电压,超低耗的加速度传感器,最低耗低至2uA,支持IIC/SPI等通信接口,支持单击,双击,自由落体,6D运动/位置检测等工作模式,广泛应用于IO ...

  4. LIS3DH(3轴加速度计)使用

    LIS3DH LIS3DH 是属于 "nano" 系列的超低功耗高性能 3 轴线性加速度计,具有数字 I2C. SPI 串行接口标准输出.器件具有超低功耗工作模式,可实现高级节能. ...

  5. 关于LIS3DH和LIS3DSH的使用及误区

    关于LIS3DH和LIS3DSH的使用及误区 LIS3DH和LIS3DSH的差异 LIS3DH和LIS3DSH的差异 背景 在这次项目中,需要用的lis3dh来唤醒主控MCU以达到省电低功耗的目的,然 ...

  6. LIS3DH 3-axes digital accelerometer

    LIS3DH是一个三轴加速度传感器,可用于检测X.Y.Z轴上的加速度,以及设置阈值,在加速度超出阈值时触发中断,支持SPI和IIC读写. LIS3DH 三轴加速度传感器使用流程及示例 Open sou ...

  7. micropython 实现手表抬手亮屏以及mpu6050中断

    最近很久没更新技术文章了,因为一直忙,本职工作也忙,单子也多,特别是前一阵子接了同一所大学的N个毕设(没有人能抗拒返现的诱惑),耗费比较多精力(主要是后期解答调试很耽误精力,看来我以后得做个截止时限) ...

  8. ADI Blackfin DSP处理器-BF533的开发详解58:DSP控制ADXL345三轴加速度传感器的应用(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  9. ST公司 Lis2dh12 三轴加速度传感器,计算加速度值转成角度值

    目录 概述 项目上使用了一款Lis2dh12三轴加速度传感器.开发前要准备的工作. 1.原理图: 1.1.创建lis2dh12.c文件 1.2.在此重点说明,如果想调传感器的中断灵敏度,注意:关注1. ...

最新文章

  1. 常用服务的默认端口号
  2. 缓冲区溢出基本C程序的控制台和Win32版本
  3. 无法安装计算机的启动配置,“windows 无法更新计算机的启动配置。安装无法继续”这样解决...
  4. 【Git笔记2】必知习惯和如何版本回退
  5. 基于机器视觉的散热器钎焊缺陷检测系统研发
  6. 模型调参:分步骤的提升模型的精度
  7. Python 网络爬虫与信息获取(一)—— requests 库的网络爬虫
  8. 如何使用Vectorworks Vision 2020将场景另存为图像
  9. 七张王牌助你做人做事顺遂成功
  10. IT民工金鱼哥从业8年的历程与感悟
  11. Linux常用软件包安装工具及配置方法(apt-get, pip, dpkg)
  12. MacOS罗技鼠标定义的功能键经常失灵
  13. STM32智能小车电路综合实习报告
  14. matlab 光线追踪 渲染,光线追踪(Ray tracing)渲染器工作原理
  15. 金山WPS2018安卓实习面试经历
  16. 【黄啊码】微信朋友圈的几分钟/几小时前如何实现
  17. springboot+vue+elementui社区公益志愿者服务网站java
  18. 南京大学软件学院 西交计算机,2021届薪酬最高的十大本科专业,前三名都是计算机和相关专业...
  19. 简序《1912青年空间诗话之春》
  20. 功能测试用例需要详细到什么程度,完全测试程序是可能的么

热门文章

  1. python来源介绍
  2. 计算机技术在油气储运工程的应用,浅谈自动化技术在油气储运工程中的应用
  3. 解决Linux只有Nvidia HDM声卡输出的现象
  4. 判断一家软件公司是否靠谱
  5. 自行车测速器怎么调_自行车调速器怎么调
  6. 浅析消费金融风控之贷中、贷前、贷后风控(风控模型、决策引擎)
  7. D. Divide and Sum(组合数学)
  8. 天网防火墙的最新破解方法 1
  9. Delphi 环境下使用DirectDraw实现简单的绘制
  10. 三层架构:表示层-业务逻辑层-数据访问层