你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
ST的LIS3DH有谁用过吗?基于它的计步算法有人懂吗?
[复制链接]
kunluo
提问时间:2015-12-18 12:33 /
因为工作的需求,现在接触了百度智能手环的开源代码,其中三轴就使用了LIS3DH,但其中有一些小问题不太明白。如下图:
这里的数据是从FIFO读出的,可为什么人FIFO读出来的数据要进行移位操作呢?不明白,求解!
赞
0
收藏
1
评论
17
分享
发布时间:2015-12-18 12:33
举报
请先
登录
后回复
17个回答
bbslhb
回答时间:2017-1-10 20:02:44
a0a.1 32b0c
这个加速度计是12bit的。这12bit的数据放在16bit的寄存器里面,左对齐的。
真实值应该是读到的16bit的数据再右移4位才对。
代码里只右移了3位,说明得到的这个数值是真实值的两倍。
置于为啥是3不是4,可能人家要的是2倍而非原始值吧。
赞
0
评论
回复
支持
反对
yuyuheqiu
回答时间:2017-3-28 11:07:42
a0a.1 32b0c
这个算法很好,其实Lis3DH数据为12bits,存储在16bits的内存中,所以要读取到每个轴的数据,应该右移4bit,又因为配置的量程为2g,所以为了降低在接下来的计算中乘以2g,所以只移动3bit,相当于乘以2了,这样简化计算,节省电量
赞
0
评论
回复
支持
反对
斜阳
回答时间:2017-1-11 09:14:42
a0a.1 32b0c
看手册。有几种可能:
1:数据存储在高位,且未用满。需要将数据右移;
2:数据是整字节的,通过右移可以简单的滤除抖动:
赞
0
评论
回复
支持
反对
kunluo
回答时间:2016-3-17 14:37:28
a0a.1 32b0c
自己顶一下
赞
0
评论
回复
支持
反对
xmshao
回答时间:2016-3-18 10:34:11
a0a.1 32b0c
没用过。帮顶!
你可能需要配合芯片数据寄存器手册帮助理解。
赞
0
评论
回复
支持
反对
antstruggling
回答时间:2016-5-8 11:37:36
a0a.1 32b0c
右移3位相当于除以8.用的是8g量程?
赞
0
评论
回复
支持
反对
zhangxu56726
回答时间:2016-5-9 09:52:26
a0a.1 32b0c
你好,源代码和原理图能上传一下吗?谢谢!
赞
0
评论
回复
支持
反对
lcdi
回答时间:2016-5-9 11:41:48
a0a.1 32b0c
我猜是后面那个函数的要求,里面数据需自乘,位数太高了会溢出,所以先降一些。
赞
0
评论
回复
支持
反对
爱吃炒面的小颜颜
回答时间:2016-6-1 09:25:51
a0a.1 32b0c
这个算法有搞清楚吗?有没有源码贴一下,想请教一下,非常感谢!
赞
0
评论
回复
支持
反对
风子
回答时间:2016-6-1 10:10:17
a0a.1 32b0c
就贴这么几句,谁看得懂啊,,
赞
0
评论
回复
支持
反对
爱吃炒面的小颜颜
回答时间:2016-6-3 17:16:22
a0a.1 32b0c
兄弟,有这个源码吗?能提供下吗?或者发个源码下载链接,真的感谢!
赞
0
评论
回复
支持
反对
suoma
回答时间:2016-6-3 22:23:23
a0a.1 32b0c
我用过,你要看datasheet
赞
0
评论
回复
支持
反对
zbber
回答时间:2017-1-11 08:44:54
a0a.1 32b0c
这个算法有搞清楚吗?有没有源码贴一下,想请教一下,非常感谢
赞
0
评论
回复
支持
反对
cxy
回答时间:2017-3-24 13:16:11
a0a.1 32b0c
精度吧 你要看你的那个调用这个参数的函数原型。估计是精度太高了
赞
0
评论
回复
支持
反对
cxy
回答时间:2017-3-24 17:42:26
a0a.1 32b0c
因为要对齐,位数不够 补零了 MD 搞了半天总于好了
赞
0
评论
回复
支持
反对
1
2
/ 2 页
下一页
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
真实值应该是读到的16bit的数据再右移4位才对。
代码里只右移了3位,说明得到的这个数值是真实值的两倍。
置于为啥是3不是4,可能人家要的是2倍而非原始值吧。
1:数据存储在高位,且未用满。需要将数据右移;
2:数据是整字节的,通过右移可以简单的滤除抖动:
你可能需要配合芯片数据寄存器手册帮助理解。