首先,LIS3DH的II2地址:

I2C Device Address 8 bit format if SA0=0 -> 0x31(30也可以) if SA0=1 -> 0x33

void Init_LIS3DH( void )
{uint8_t temp = 0;if( HAL_I2C_Mem_Read(&hi2c2, DEVADDR, WHO_AM_I, I2C_MEMADD_SIZE_8BIT, &temp, 1, 10) == HAL_OK  ){if( temp == 0x33 ){temp = 0x2f;HAL_I2C_Mem_Write(&hi2c2, DEVADDR, CTRL_REG1,I2C_MEMADD_SIZE_8BIT, &temp,1,10);temp = 0x3f;HAL_I2C_Mem_Write(&hi2c2, DEVADDR, CTRL_REG2,I2C_MEMADD_SIZE_8BIT, &temp,1,10);temp = 0x40;HAL_I2C_Mem_Write(&hi2c2, DEVADDR, CTRL_REG3,I2C_MEMADD_SIZE_8BIT, &temp,1,10);temp = 0xa0;HAL_I2C_Mem_Write(&hi2c2, DEVADDR, CTRL_REG4,I2C_MEMADD_SIZE_8BIT, &temp,1,10);temp = 0x0a;HAL_I2C_Mem_Write(&hi2c2, DEVADDR, CTRL_REG5,I2C_MEMADD_SIZE_8BIT, &temp,1,10);temp = 0x02;    HAL_I2C_Mem_Write(&hi2c2, DEVADDR, CTRL_REG6,I2C_MEMADD_SIZE_8BIT, &temp,1,10);temp = INACTIVITYVAL*10/625;;HAL_I2C_Mem_Write(&hi2c2, DEVADDR, INT1_THS,I2C_MEMADD_SIZE_8BIT, &temp,1,10);temp = 0;HAL_I2C_Mem_Write(&hi2c2, DEVADDR, INT1_DURATION,I2C_MEMADD_SIZE_8BIT, &temp,1,10);HAL_I2C_Mem_Read(&hi2c2, DEVADDR, REFERENCE, I2C_MEMADD_SIZE_8BIT, &temp, 1, 10);temp = 0x2A;HAL_I2C_Mem_Write(&hi2c2, DEVADDR, INT1_CFG,I2C_MEMADD_SIZE_8BIT, &temp,1,10);// 清除中断信号,注意首次使用前一定要这样操作,不然后面的中断产生不了if( (GPIOE->IDR & 0x01 ) == 0 ){HAL_I2C_Mem_Read(&hi2c2, DEVADDR, INT1_SRC, I2C_MEMADD_SIZE_8BIT, &temp, 1, 10);}}}}

上面的代码用到的寄存器不多,主要是 CTRL_REG1,CTRL_REG2,CTRL_REG3,CTRL_REG4,CTRL_REG5,INT1_THS,INT1_DURATION,REFERENCE,INT1_CFG,INT1_SRC,他们的作用分别:

CTRL_REG1 -- 设置工作模式 ,及数据更新频率

CTRL_REG2 -- 开启高通滤波器,这一点对运动检测很有必要,运动检测是检测信号的变化,直流信号不关注,所示开启开通滤波,关注交流信号

CTRL_REG3 -- 开启中断1

CTRL_REG4 -- 设置测量范围

CTRL_REG5 -- 锁存中断信号

INT1_THS -- 中断阈值设置

INT1_DURATION -- 中断检测时间间隔设置

REFERENCE -- 虚拟操作

INT1_CFG  --  中断1配置

INT1_SRC -- 中断状态读取,在配置时需先确清楚现有中断

lis3dh 三轴加速度计 运动检测 中断配置实现相关推荐

  1. STM32开发 -- LIS3DH三轴加速度计开发详解

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/87096085 这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 ...

  2. Arduino I2C + 三轴加速度计LIS3DH

    LIS3DH是ST公司生产的MEMS三轴加速度计芯片,实现运动传感的功能.主要特性有: 宽工作电压范围:1.71 ~ 3.6V 功耗:低功耗模式2μA:正常工作模式.ODR = 50Hz时功耗11μA ...

  3. 三轴加速度计Triaxial accelerometer

    产品介绍 ACC356T是咏为传感针对震动.撞击测试.汽车电子等多个领域开发的一款三轴加速度计,ACC356T为单晶硅电容式传感器,由一片经过微机械处理的硅芯片,用于信号调整的低功率ASIC,用于存储 ...

  4. 三轴加速度计、三轴陀螺仪、三轴磁力计

    1.今天要做的事情 列出:可能影响因素,对影响因素做实验.如何设置对比实验? 如何设置对比实验? 三轴加速度计 1.加速度计的原理 三轴加速度:输出的速度是去掉重力后的整体加速度,因此,三轴加速度计可 ...

  5. Arduino I2C + 三轴加速度计ADXL345

    ADXL345是ADI公司生产的三轴数字加速度计芯片,与ST的LIS3DH功能接近.主要特性有: 工作电压:2.0 ~ 3.6V 功耗:待机功耗0.1μA:工作时与数据输出频率(ODR)有关,如ODR ...

  6. 三轴加速度计的原理和方法

    现如今,很多现代人都非常注重自己的日常锻炼,计步作为一种有效记录监控锻炼的监控手段,被广泛应用在移动终端的应用中. 目前,大部分的计步都是通过GPS信号来测算运动距离,再反推行走步数实现的.这种方法很 ...

  7. ST公司三轴加速度计LIS3DH应用

    本文主要介绍LIS3DH的运动检测功能(Motion detection),一旦两次加速度值的差值超过了设置阈值,相应的引脚就会产生中断. LIS3DH接口非常简单,四线SPI接口. LIS3DH上电 ...

  8. [每日电路图] 8、三轴加速度计LIS3DH电路图及功耗等指标

    看TI的官网资料:http://www.st.com/web/en/catalog/sense_power/FM89/SC444/PF250725 一.初次接触关注的信息: 1.1.概述中的关键信息 ...

  9. 三轴加速度计解算姿态(四元数)

    原理 当传感器载体静止时,加速度计只会输出重力加速度,可以凭此来计算载体的俯仰角和滚转角. 方法 假设导航坐标系为东北天,载体坐标系为右前上. 初始载体坐标系和导航坐标系重合,对应的四元数为q=[1, ...

最新文章

  1. 记录JS event Loop机制及Node v8事件执行机制
  2. 一厕难求!NASA悬赏三万五千美元,只为一个能在月球上用的马桶
  3. 在nocdb转pdb的时候遇到小bug
  4. python如何确定拐点_python – 在样条拟合1d数据中找到拐点
  5. Windows搭建SonarQube_Mysql
  6. 力扣1025.除数博弈
  7. kafka源码_终于看到有人把Kafka讲清楚了,阿里面试官推荐你看这份源码笔记
  8. 离京2小时,快手百亿入云,一切为了「看见」
  9. 5.企业安全建设指南(金融行业安全架构与技术实践) --- 安全团队建设
  10. 统计字符串中各类字符的个数
  11. 计算机老出现安全警报怎么办,windows安全警报怎么关闭,教您怎么关闭windows安全警报...
  12. java liveness_并发 - 活跃度(Liveness) - 《Java 编程要点(Essential Java)》 - 书栈网 · BookStack...
  13. java线程池——逐步分析
  14. 蔡颖-《APS走向实践》书解读之二:需求驱动-预测、掌握、满足需求
  15. js直接打印pdf文件内容
  16. 低功率、运动传感器 PYQ 1548/7659 特性及应用
  17. 中国烟酰胺单核苷酸(NMN)行业研究与投资预测报告(2022版)
  18. android马达测试,技术科普丨马达测试知多少?
  19. 【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数
  20. 高等数学(第七版)同济大学 习题1-6 个人解答

热门文章

  1. Linux CentOS7.0下JAVA安装和配置环境变量
  2. php.exe php-cgi.exe php-win.exe的区别
  3. 1.8 小飞的电梯调度算法
  4. ubuntu java开发环境搭建(jdk+tomcat+eclipse)
  5. Hibernate映射配置方法
  6. SQl inner LOOP | HASH | MERGE join--指定Join的方法
  7. OGRE手册--脚本texture_unit
  8. UA MATH566 统计理论2 C-R不等式简介
  9. 动态CSS - LESS学习总结
  10. 第四周课程总结及实验报告