LIS3DH 是 ST 公司的一款三轴加速度计。其特点为功耗低、精确度和灵敏度高,由于百
度开源手环在计步功能上也是应用这个传感器,所以最近广泛使用在计步产品中。
LIS3DH 应用的广泛不仅是它可以作为加速度计,其内部还可以实现敲击识别、静止检
测、失重、翻转检测等功能。
加速度计是对传感器本身 xyz 三轴的加速度进行检测,xyz 三轴分布如图
我们得知一个物体在重力方向上的加速度为 1g,在这幅图中静止状态时,z 轴上的加速
度应该为 1g。
LIS3DH 支持的量程有±2g/±4g/±8g/±16g,我们知道量程越小,精度会越高,所以在
一般的应用中使用±2g 的量程。速度寄存器是两个 8 位的寄存器,由于加速度的方向是有
正反两个方向的加速度,所以读出的结果是 16 位有符号整数。
今天我们实验的主要内容是在 nrf51822 的平台上使用 LIS3DH 加速度传感器。
LIS3DH 的驱动部分在 ST 官网已经给出,代码中已经给出该传感器的使用方法了,我们
只需要根据所使用的平台,编写相应的 spi 或 iic 驱动,就可以使用它了。
官方下载地址:
http://www.st.com/content/st_com/en/products/embedded-software/mems-and-sensors-s
oftware/drivers-for-mems/stsw-mems006.html
下面以 nrf51822 SDK9.0 的 ble_app_uart 例程为例,使用官方的驱动程序代码并移植到
nrf51822 上使用。
1、将官方下载的驱动的 lis3dh_driver.c 添加到我们的工程中,包含其头文件。
打开 lis3dh_driver.c 这个文件可以看到关于 lis3dh 驱动的大部分代码官方已经写好了,
我们只要实现 u8_t LIS3DH_ReadReg(u8_t Reg, u8_t* Data)
和 u8_t LIS3DH_WriteReg(u8_t WriteAddr, u8_t Data)
这两个函数就可以驱动实现 lis3dh 的所有功能,这两个函数分别为读写寄存器的操作,需要
我们自己编写
- 1
- 2
前往页