C#菜鸟求教~关于串口通信接收数据后 数据分析

彤小晨er 2014-09-14 01:50:15
串口接收数据后,需要数据分析,我分析出来的总是和理想的不一样,想请各位大侠帮帮忙~
问题1:关于CRC校验,没接触过,不会写,也就没法判断数据完整性。
问题2:接收到的数据为:0x02(包头) 0x00(长度1)(由于长度1长度为0,所以下一位紧跟长度2,否则后为数据1) 0x0A(长度2) 0x34 0x36 0x39 0x31 0x32 0x30 0x3D 0x31 0x30 0x30(数据2) 0x08(长度3) 0x39 0x37 0x31 0x30 0x31 0x30 0x30 0x30(数据3) 0x03(包尾) 0x4B(校验位<示例>)。
想得到的数据为:数据2、数据3 并显示为字符串形式:数据2:469120=100 数据3 :97101000

麻烦各位啦~~~帮帮忙~~~小女谢过啦~~~

...全文
247 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
abc2363789187 2014-09-19
  • 打赏
  • 举报
回复
我也在学习了考虑同样的问题。
彤小晨er 2014-09-16
  • 打赏
  • 举报
回复
引用 6 楼 a3212b12 的回复:
一个效率可能不高的思路: 接收的数据看成一个大的数组。 第1步 :循环3次,取出每次的数据到3个小数组 第2步:然后在每个数组中循环,把每个字节转换为ascll码,并连接转换来的字符为字符串。
非常感谢啊 用这个方法循环取到三个数据的值了。
a3212b12 2014-09-15
  • 打赏
  • 举报
回复
问题1:关于CRC校验,没接触过,不会写,也就没法判断数据完整性。 没接触过,那就要先百度下了,原理不了解,神仙也写不出来的。
a3212b12 2014-09-15
  • 打赏
  • 举报
回复
你都取到list了,按照你们自己定义的协议,后面应该很好操作了。 可以用数组来处理,你要用到的知识主要是数组的操作: 数组可以截取一些元素成子数组、数组可以获得指定的元素的数据
a3212b12 2014-09-15
  • 打赏
  • 举报
回复
一个效率可能不高的思路: 接收的数据看成一个大的数组。 第1步 :循环3次,取出每次的数据到3个小数组 第2步:然后在每个数组中循环,把每个字节转换为ascll码,并连接转换来的字符为字符串。
彤小晨er 2014-09-15
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
[quote=引用 1 楼 chenxt87 的回复:] 数据是可以接收到的 但是不会分组显示~最好~有简单例子~谢过谢过~
把你会的东西先贴出来。最好画出一个流程图。[/quote] 软件向串口设备发送指令 --> 软件接收返回值 --> 分组,获取所需 发送指令: 包头 指令 包尾 校验位 1byte 1byte 1byte 1byte 0x07 0x00 0x09 CRC 接收返回值: 包头 长度1 数据1 长度2 数据2 长度3 数据3 包尾 校验位 1byte 1byte A byte 1byte B byte 1byte C byte 1byte 1byte 0x02 0x0A 数据1 0x0B 数据2 0x0C 数据3 0x03 CRC 例如: 发送: 0x07 0x00 0x09 0x01 接收: 0x02 0x00(长度1) 0x0A(长度2) 0x34 0x36 0x39 0x31 0x32 0x30 0x3D 0x31 0x30 0x30(数据2) 0x08(长度3) 0x39 0x37 0x31 0x30 0x31 0x30 0x30 0x30(数据3) 0x03 0x4B(校验位示例)。 最终取到三个数据的十进制显示: 数据1在例子中没有 数据2 :469120=100 数据3 :97101000 现在 我已经可以把接收到的全部显示在list里了 但是不知道怎么获取单独的数据1.2.3
彤小晨er 2014-09-15
  • 打赏
  • 举报
回复
引用 2 楼 SomethingJack 的回复:
应该相关的API文档吧?不然你怎么知道 开始和结尾的二进制数据呢
和串口机器厂商做了协议 他们把协议写进机器 我在传值 获取他返回的值 现在我就是要分析这些值
  • 打赏
  • 举报
回复
引用 1 楼 chenxt87 的回复:
数据是可以接收到的 但是不会分组显示~最好~有简单例子~谢过谢过~
把你会的东西先贴出来。最好画出一个流程图。
SomethingJack 2014-09-14
  • 打赏
  • 举报
回复
应该相关的API文档吧?不然你怎么知道 开始和结尾的二进制数据呢
彤小晨er 2014-09-14
  • 打赏
  • 举报
回复
数据是可以接收到的 但是不会分组显示~最好~有简单例子~谢过谢过~

110,533

社区成员

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

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

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