最近由于项目需要利用到Lis3DH,中间掉了不少坑,与初学者分享一下,自己也MARK一下。
首先lis3DH,官网是有相关驱动的,这个具体链接给忘了,我是从其他论坛下载的一个驱动,链接为https://dl.21ic.com/download/lis3dh-268187.html
这个个人认为编程风格还是不错的,基本把所有的东西都做进去了,给器件支持SPI和IIC,都是标准总线方式,如果之前有了,直接操作LIS3dh是没问题的,
可以读,如果是读到数据是0x33,恭喜驱动OK了。
1.当时困扰我的是取得原始值后的数据转化问题
这个MEMS是数值化的,只是它是补码形式的,取反加一,这个才是它真正的感应加速度值,如果算重力值,还需根据选择的模式,乘以它的增益数,
具体详见lis3dh手册
2.倾斜角---这个问题折腾了我很久,主要是没吃透技术文档,今天灵感一下,突然相通了。
在第一步完成后,取得加速度值(X,Y,Z),那么根据ST的文档,计算倾角一点问题就没了,
需要注意的就是公式中的g值(如果选择是2g),那么公式中的g = 2.
由于上传不了PDF, 只能给个文件名称cd00290365-lis3dh-mems-digital-output-motion 和dm00119046-tilt-measurement-using-a-lowg-3axis-accelerometer
建议在下载器件datasheet是一起下。