找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2651|回复: 8
收起左侧

怎么把单片机读到的数转化成自己想要的数

[复制链接]
ID:531986 发表于 2019-11-24 20:38 | 显示全部楼层 |阅读模式
怎么把单片机读到的数转化成自己想要的数
1574599068(1).png
回复

使用道具 举报

ID:367934 发表于 2019-11-25 14:14 | 显示全部楼层
AA AB BB CC CD DD EE EF FF

这个是一个16进制的数据。
AA两个为一个字节,即八位
说明中说到 AA AB BB 为Roll轴的数据,意思就是他把一个数据使用3个字节保存。
AA AB BB 分为 高8位 中8位 低8位
转换为十进制为:
(AA*256*256)+(AB*256)+BB
另一种方法:
(AA<<16)+(AB<<8)+BB
要清楚那几位为一组
换成10进制就很容易理解
比如一个数999可以分成
9*10*10+9*10+9 = 09 09 09
982
9*10*10+8*10+2 = 09 08 02

评分

参与人数 1黑币 +70 收起 理由
admin + 70 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:584814 发表于 2019-11-24 21:04 | 显示全部楼层
你想要读什么 ?
回复

使用道具 举报

ID:531986 发表于 2019-11-25 16:46 | 显示全部楼层

我想串口发送一个命令,独到的是数据域的值
回复

使用道具 举报

ID:531986 发表于 2019-11-25 16:47 | 显示全部楼层
适得府君书 发表于 2019-11-25 14:14
AA AB BB CC CD DD EE EF FF

这个是一个16进制的数据。

好人真是多啊,问自己的同门,支支吾吾
回复

使用道具 举报

ID:584814 发表于 2019-11-26 09:57 | 显示全部楼层
17851000590 发表于 2019-11-25 16:46
我想串口发送一个命令,独到的是数据域的值

加了高分的那个C+V了点二进制换算常识而已,答非所问基本扯蛋。
从你贴出的那一点点说明,可以看出返回的一串数据是这样用的:
68 0D 00 84,疑似指令集,最后一个与说明那栏标题0x84对应;后面接的是飞行姿态数据:
00 10 50 表示滚转角Roll +010.50度,第一位是符号位,0/1表示正/负,接下来三位是小数点前,末两位是小数点后;
10 10 05 表示俯仰角Pitch -010.05度,01 04 01表示偏航角heading +104.01度,虽然是读16进制数但直接用;
最后的1C疑似结束标志或校验位,详见说明书。
回复

使用道具 举报

ID:531986 发表于 2019-11-28 14:20 | 显示全部楼层
man1234567 发表于 2019-11-26 09:57
加了高分的那个C+V了点二进制换算常识而已,答非所问基本扯蛋。
从你贴出的那一点点说明,可以看出返回 ...

不好意思,上面协议没贴
回复

使用道具 举报

ID:648521 发表于 2019-11-28 20:50 | 显示全部楼层
要改为机器可以识别的二进制数字。
回复

使用道具 举报

ID:155507 发表于 2019-11-29 16:33 | 显示全部楼层
从你贴出的那一点点说明,可以看出返回的一串数据是这样用的:
68 0D 00 84
标示符:固定为68H  
0D 数据长度:从数据长度到校验和(包括校验和)的长度  (13)
00 地址码:采集模块的地址,默认为00
84 命令字 传感器应答回复

最后一个与说明那栏标题0x84对应;
后面接的是飞行姿态数据:
00 10 50 表示滚转角Roll +010.50度,第一位是符号位, 0/1表示正/负,接下来三位整数是小数点前,末两位是小数点后;
10 10 05 表示俯仰角Pitch -010.05度,
01 04 01 表示偏航角heading +104.01度,虽然是读16进制数但直接用;(是BCD; 用4位二进制数来表示1位十进制数中的0~9这10个数码)

最后的1C 为校验和位:数据长度、地址码、命令字和数据域的和不考虑进位


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表