LIS3DH为三轴向高精度数字式加速度传感器,可以通过IIC,SPI方式直接采集加速度数据。这里使用的是模拟SPI。

1.初始化配置

采集数据之前需要对有关寄存器进行必要的配置:

write_reg(0x23, 0x08, GPIOA, GPIO_Pin_3); //0x48大端 0x08小端
     write_reg(0x20, 0x57, GPIOA, GPIO_Pin_3);     //100HZ采样,电源正常模式,三个轴采样使能

这里GPIOA, GPIO_Pin_3是片选CS脚

2.读写寄存器

u8 read_reg(u8 register_name, GPIO_TypeDef* GPIOCS, uint16_t GPIO_Pin_CS, GPIO_TypeDef* GPIOSDO, uint16_t GPIO_Pin_SDO)
   {
u8 value,i;
u8 nMISO=0;
value=0;
register_name |= 0x80; // D7=1 -> read; D6=0 -> single byte
GPIOCS->BRR=GPIO_Pin_CS;//CSN_L;
delayus(8);
for (i=0;i<8;i++) // address
{
if (register_name & 0x80)
GPIOB->BSRR=GPIO_Pin_9;//MOSI_H;
else
GPIOB->BRR=GPIO_Pin_9;//MOSI_L;
register_name <<= 1;
clk();
}
for (i=0;i<8;i++) // read data
{
clk();
in_byte <<= 1;
nMISO = ((GPIOSDO->IDR & GPIO_Pin_SDO)!=0)?1:0;
value|= nMISO;
}
GPIOCS->BSRR=GPIO_Pin_CS;//CSN_H;
return value;
  }

void write_reg(u8 register_name, u8 register_value, GPIO_TypeDef* GPIOCS, uint16_t GPIO_Pin_CS)
  {
u8 i;
register_name &= 0x3f;  // D7=0 -> write; D6=0 -> single byte
GPIOCS->BRR=GPIO_Pin_CS;//CSN_L;
delayus(8);
for (i=0;i<8;i++) // address
{
if (register_name & 0x80)
GPIOB->BSRR=GPIO_Pin_9;//MOSI_H;
else
GPIOB->BRR=GPIO_Pin_9;//MOSI_L;
register_name <<= 1;
clk();
}
for (i=0;i<8;i++) // write data
{
if (register_value & 0x80)
GPIOB->BSRR=GPIO_Pin_9;//MOSI_H;
else
GPIOB->BRR=GPIO_Pin_9;//MOSI_L;
register_value <<= 1;
clk();
}
GPIOCS->BSRR=GPIO_Pin_CS;//CSN_H;
   }

3.读加速度传感器数据

LIS3DH有6个加速度数据寄存器

读取数据时可以挨个读取寄存器也可以根据SPI 时序连续读取。

stm32F107VC通过模拟SPI方式读取LIS3DH三轴加速度传感器数据相关推荐

  1. stm32软件模拟I2C读取ADXL345三轴加速度值

    最近做一个实验室里的小项目,需要用stm32来读取ADXL345三轴加速度的值,本来硬件I2C都调好了,可是后来和实验室合作的一个公司给的板子却没把硬件I2C的端口给引出来,太伤心了,我又得重新调一下 ...

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

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

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

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

  4. 三轴加速度传感器bma150驱动解析

    BMA150 博世 三轴加速度传感器 SPI(4线,3线),i2c,中断引脚 频响+/- 2g,4g,8g;带宽25~1500hz,中断触发内部加速度求值 低功耗,快速唤醒 包含数据寄存器,控制寄存器 ...

  5. ADI Blackfin DSP处理器-BF533的开发详解60:DSP控制ADXL345三轴加速度传感器-电子水平仪(含源码)

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

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

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

  7. ADI Blackfin DSP处理器-BF533的开发详解62:DSP控制ADXL345三轴加速度传感器-贪食蛇游戏(含源码)

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

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

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

  9. 三轴加速度传感器和六轴惯性传感器_六轴加速度传感器Beacon

    六轴加速度传感器Beacon 一.产品简介: 六轴加速度传感器Beacon是重庆金瓯科技发展有限责任公司基于Beacon技术研发的新一代传感器产品.该产品可以将采集的加速度数据信息通过Beacon广播 ...

  10. 基于三轴加速度传感器的计步算法

    基于三轴加速度传感器计步算法 By Sky.J 2018.08.08 概述 今天主要是想要分享利用三轴加速度传感器计步的一个算法步骤. 数据分析--->模型 这里拿到的是ADI公司的测试数据,可 ...

最新文章

  1. SAP WM 采购订单收货后LT06报错-No bin types have been assigned to storage unit type IP-
  2. python中->是什么意思
  3. 学python用哪个软件-学python要准备什么软件-问答-阿里云开发者社区-阿里云
  4. 自顶向下彻底理解 Java 中的 Synchronized
  5. 反思本地与测试服一个接口不同的响应:本地正常测试服不行500错误,原因php版本新语法不一样
  6. linux最简单的查杀病毒,linux查杀病毒的几个思路
  7. golang为LigerUI编写简易版本web服务器
  8. 如何判断三极管好坏?
  9. 介绍“又一个” Cloud Foundry Gradle插件
  10. 8月读书分享-《执行力是训练出来的》
  11. 这句话说得不错freeeim
  12. k8s各类yaml文件
  13. 为什么使用linux内核,为什么Linux内核使用它所做的数据结构?
  14. 活动报名 | DEF CON之后,最令人期待的网络安全盛会(内附赠票)
  15. php正则获取html中所有的src,php正则提取html图片(img)src地址与任意属性
  16. Ubuntu快速设置指南
  17. cad汉仪长仿宋体_长仿宋体字体下载 cad工程机械绘图工程制图国标字体下载
  18. python视频大全
  19. JavaScript和TypeScript学习心得
  20. 正常查看网页中压缩的js代码

热门文章

  1. notepad++更换皮肤
  2. OpenCV 对象跟踪
  3. 6000级石阶见证绝世爱情
  4. 概率逻辑程序设计学习 一.预备知识
  5. Jetbrain 如何使用教育邮箱激活
  6. 十一则:程序员冷“笑话”据说只有真正的程序员才看得懂
  7. Redis【有与无】【Lettuce】L4.Redis Sentinel
  8. 美国高校代理服务器地址
  9. 使用Ps制作飞机路过的动画
  10. 手写个Tomcat雏型