【新人求助】C#怎么解码下位机发送的数据

langer1234 2020-05-21 01:04:32
下位机将24位数据,通过串口,每次8位,分成高8位,中8位,低8位 共3次,发给PC,每次收到的数据类似于 "0E 2F 68 ",串口收到后怎么还原成单个十进制数据?



private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{

byte[] data = new byte[serialPort1.BytesToRead]; //定义缓冲区,因为串口事件触发时有可能收到不止一个字节

serialPort1.Read(data, 0, data.Length);

Form1_Paint(data);

}
...全文
225 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dmankill 2020-05-21
  • 打赏
  • 举报
回复
你用个byte[4]的数组接收下然后用bitconvert.toint32(byte[])就可以转换成int类型的数据了
dmankill 2020-05-21
  • 打赏
  • 举报
回复
数据的解析都是按照协议来的,比如你说的"第一个数据*65536 +第二个数据*256+第三个数据 然后把值存到另外一个数组" 这个就是一个协议
six2me 2020-05-21
  • 打赏
  • 举报
回复
就是做一个协议分析的软件,要详细分析你的协议,找规律,如你的协议上是否说明了,报文一帧是否有帧头,结束字符等,这些先要弄明白。
  • 打赏
  • 举报
回复
协议格式怎么定义的?
Bridge_go 2020-05-21
  • 打赏
  • 举报
回复
BitConvert
langer1234 2020-05-21
  • 打赏
  • 举报
回复
没有设置通讯协议,就是单纯的三个数据一起发上来,然后需要把第一个数据*65536 +第二个数据*256+第三个数据 然后把值存到另外一个数组里。

111,095

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧