|
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 |
|
从你贴出的那一点点说明,可以看出返回的一串数据是这样用的: 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 为校验和位:数据长度、地址码、命令字和数据域的和不考虑进位 |
| 要改为机器可以识别的二进制数字。 |
man1234567 发表于 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疑似结束标志或校验位,详见说明书。 |
适得府君书 发表于 2019-11-25 14:14 好人真是多啊,问自己的同门,支支吾吾 |
man1234567 发表于 2019-11-24 21:04 我想串口发送一个命令,独到的是数据域的值 |
| 你想要读什么 ? |