C#串口通信发送和接收数据 10
油门杆通讯协议有13个字节,0x55(1字节)+0xAA(1字节)+设备吗(1字节)+油门1数据(4字节float)+油门2数据(4字节float)+开关1数据(1字节无...
油门杆通讯协议有13个字节,0x55(1字节)+0xAA(1字节)+设备吗(1字节)+油门1数据(4字节float)+油门2数据(4字节float)+开关1数据(1字节无符号整数)+开关2数据(1字节无符号整数)。
油门数据范围:正向油门0到100,精度0.5,反向油门0到-100,精度1.
开关数据:一表示按钮按下,0表示按钮松开。
我用串口调试助手发送数据:55 AA 04 00 00 C8 C2 00 00 C8 C2 00 00
我用写的程序接收到的数据:85 63 04 00 00 63 63 00 00 63 63 00 00
前三位数据接收对的,后两位开关数据也是对的,就中间四位转化出问题了,转换用的是BitConverter.ToSingle函数。实在是不知道原因,求大神解答 展开
油门数据范围:正向油门0到100,精度0.5,反向油门0到-100,精度1.
开关数据:一表示按钮按下,0表示按钮松开。
我用串口调试助手发送数据:55 AA 04 00 00 C8 C2 00 00 C8 C2 00 00
我用写的程序接收到的数据:85 63 04 00 00 63 63 00 00 63 63 00 00
前三位数据接收对的,后两位开关数据也是对的,就中间四位转化出问题了,转换用的是BitConverter.ToSingle函数。实在是不知道原因,求大神解答 展开
展开全部
首先确定接收的数据是不是对的,再说转换问题,数据有高低位不能直接tostring
追问
我现在输出的是对的,输出为字符串形式0,0,C8,C2,现在问题是怎样将它转化为一个16进制 数
追答
一般是 高位数值 ->int --->左移8位 + 低位数值=得到的数据
是否有小数位 ?
最后的数据 ToString()才可以
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好!波特率和其他参数都对吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询