好文档 - 专业文书写作范文服务资料分享网站

LIS3DH中文资料 - 数据手册 - 初始化 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

LIS3DH具有超低功耗工作模式,可实现高级节能,智能睡眠唤醒以及恢复睡眠功能。

MEMS数字输出运动传感器,超低功耗高性能3轴加速度计“纳米” 类型:数字 轴:X,Y,Z

加速度范围:±2g,4g,8g,16g 灵敏度(LSB/g):1000(±2g)~ 83(±16g) 带宽:0.5Hz ~ 625Hz 输出类型:I2C,SPI

电压 - 电源:1.71 V ~ 3.6 V

特性:可调带宽,可选量程,温度传感器 工作温度:-40°C ~ 85°C(TA) 安装类型:表面贴装 封装/外壳:16-VFLGA

供应商器件封装:16-LGA(3x3)

最近在调试lis3dh加速度计,网上一搜能找到很多资料,但是描述正确的,感觉不是很多,所以这里我来总结一下,也是在网友博客的基础上将正确的地方集中整理一下。

1. 首先说驱动,驱动网上流传的基本上就是一份,.h.c文件随便一搜就能下载到lis3dh的驱动,由于我的是公司电脑,文件是加密,就不上传驱动了,大家可以自行搜索其他的资源下载,驱动下载下来后,用户需要完成的就是底层SPI(这里我用的是SPI读写方法,IIC的没用过)的读写寄存器的函数,我把自己写的粘贴出来,大家参考一下,用的而是HAL函数,这里有一点需要说明一下,就是SPI的速率配置,开始我配置的6M,读取WHO_AM_I寄存器以及任何寄存器读出来都是0x88,检查很多地方都找不出原因来,后来偶然的情况下改成了3M,竟然读取ID成功了0x33, LIS3DH datasheet上写的最大支持spi速率是10MHz.看来实际支持不了这么大的速率。

另外,对于下载的驱动还有一点说明,要注意里面函数返回值的定义,原有驱动是:

typedef enum {

MEMS_SUCCESS = 0x01, MEMS_ERROR = 0x00, } status_t;

为了适应HAL库驱动,我给改成了:

typedef enum {

MEMS_SUCCESS = 0x00,

MEMS_ERROR = 0x01 } status_t;

另外驱动里面的每个函数返回值的判断是 :

if( !LIS3DH_ReadReg(LIS3DH_FIFO_CTRL_REG, &value) ) return MEMS_ERROR;

我改成了:

if( LIS3DH_ReadReg(LIS3DH_FIFO_CTRL_REG, &value) ) //为了适应返回0就是成功,返回非0是失败。

return MEMS_ERROR;

————————————————

万联芯城专注电子元器件配单服务,只售原装现货库存,万联芯城电子元器件全国供应,专为终端生产,研发企业提供现货物料,价格优势明显,BOM配单采购可节省逐个搜索购买环节,只需提交BOM物料清单,商城即可为您报价,解决客户采购烦恼,为客户节省采购成本,点击进入万联芯城

1zhhc1tyit7yogl1itk20zdc523y3q00i1j
领取福利

微信扫码领取福利

微信扫码分享