跳至内容
深圳维特智能科技有限公司
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
注册
>
最近更改
媒体管理器
网站地图
您的足迹:
gm_issue:正负号计算
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
输出数据的正负号是按照补码的方式表示的,也就是其二进制数据的最高位如果为1则表示负数。程序编写的时候,可以采用强制转化为有符号的short类型来解决符号的问题,具体做法是,将数据的高位强制DataH转化为short类型,然后再左移8位,和低字节DataL进行与操作。例如加速度包的解析方法:\\ 加速度包一共有11个字节,chrTemp[11],其中chrTemp[3]为X轴加速度的高8位,chrTemp[2]为X轴加速度的低8位,那么加速度的解析代码如下:\\ float a[0];\\ a[0]=(( ((short)chrTemp[3])<<8)|chrTemp[2])/32768*16;\\ 其中( ((short)chrTemp[3])<<8)|chrTemp[2]得到short类型的有符号数据,short类型的数据表示范围是-32768~32767之间,加速度的量程范围是正负16g,所以需要除以32768再乘以16。这样处理以后,得到的数据就是有符号的float类型数据了。\\ 以55 51 78 FD 4E 03 85 F8 FC 0E F3为例,此包是加速度包,根据协议X轴的加速度是0XFD78,也就是十进制的-648,根据公式转换-648/32768*16 = -0.31g\\ 详细的图文换算可参看此链接:http://elecmaster.net/forum.php?mod=viewthread&tid=812&page=1&extra=#pid1582
gm_issue/正负号计算.txt
· 最后更改: 2020/05/07 10:13 由
witmotion
页面工具
显示页面
修订记录
反向链接
页面重命名
回到顶部