你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ST的LIS3DH有谁用过吗?基于它的计步算法有人懂吗?

[复制链接]
kunluo 提问时间:2015-12-18 12:33 /
因为工作的需求,现在接触了百度智能手环的开源代码,其中三轴就使用了LIS3DH,但其中有一些小问题不太明白。如下图:

QQ截图20151218123232.png

这里的数据是从FIFO读出的,可为什么人FIFO读出来的数据要进行移位操作呢?不明白,求解!
收藏 1 评论17 发布时间:2015-12-18 12:33

举报

17个回答
bbslhb 回答时间:2017-1-10 20:02:44
这个加速度计是12bit的。这12bit的数据放在16bit的寄存器里面,左对齐的。
真实值应该是读到的16bit的数据再右移4位才对。
代码里只右移了3位,说明得到的这个数值是真实值的两倍。
置于为啥是3不是4,可能人家要的是2倍而非原始值吧。
yuyuheqiu 回答时间:2017-3-28 11:07:42
这个算法很好,其实Lis3DH数据为12bits,存储在16bits的内存中,所以要读取到每个轴的数据,应该右移4bit,又因为配置的量程为2g,所以为了降低在接下来的计算中乘以2g,所以只移动3bit,相当于乘以2了,这样简化计算,节省电量
斜阳 回答时间:2017-1-11 09:14:42
看手册。有几种可能:
1:数据存储在高位,且未用满。需要将数据右移;
2:数据是整字节的,通过右移可以简单的滤除抖动:
kunluo 回答时间:2016-3-17 14:37:28
自己顶一下
xmshao 回答时间:2016-3-18 10:34:11
没用过。帮顶!

你可能需要配合芯片数据寄存器手册帮助理解。
antstruggling 回答时间:2016-5-8 11:37:36
右移3位相当于除以8.用的是8g量程?
zhangxu56726 回答时间:2016-5-9 09:52:26
你好,源代码和原理图能上传一下吗?谢谢!
lcdi 回答时间:2016-5-9 11:41:48
我猜是后面那个函数的要求,里面数据需自乘,位数太高了会溢出,所以先降一些。
爱吃炒面的小颜颜 回答时间:2016-6-1 09:25:51
这个算法有搞清楚吗?有没有源码贴一下,想请教一下,非常感谢!
风子 回答时间:2016-6-1 10:10:17
就贴这么几句,谁看得懂啊,,
爱吃炒面的小颜颜 回答时间:2016-6-3 17:16:22
兄弟,有这个源码吗?能提供下吗?或者发个源码下载链接,真的感谢!
suoma 回答时间:2016-6-3 22:23:23
我用过,你要看datasheet
zbber 回答时间:2017-1-11 08:44:54
这个算法有搞清楚吗?有没有源码贴一下,想请教一下,非常感谢
cxy 回答时间:2017-3-24 13:16:11
精度吧  你要看你的那个调用这个参数的函数原型。估计是精度太高了
cxy 回答时间:2017-3-24 17:42:26
因为要对齐,位数不够  补零了  MD  搞了半天总于好了
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版