C#串口收到的数据和串口调试工具不一样

Posted www-erwa-cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#串口收到的数据和串口调试工具不一样相关的知识,希望对你有一定的参考价值。

 串口收到的数据,去掉开头和结尾,中间的就是数据,数据还要交换位置。

 写代码中发现数据的个数一样,数据有不完全一样,主要原因是编码引起,serialport.Encoding=Encoding.Unicode。

 

serialport = new SerialPort(portName);
serialport.Encoding=Encoding.Unicode;          //编码  这句代码解决问题  ,用的是默认,为了改变,新加的这句代码

--------------------------------

private void SerialProt_ReceivedEvent(object sender, SerialDataReceivedEventArgs e)
 
Thread.Sleep(30);
string a = serialport.ReadExisting(); 
var ch = Encoding.Unicode.GetBytes(a);//  Encoding.default.GetBytes(a);有些设备是这样
string cardID = string.Format("0:X2", ch[8]) + string.Format("0:X2", ch[7]) + string.Format("0:X2", ch[6]) + string.Format("0:X2", ch[5]);
 
Console.WriteLine($"--cardID--*************breana读卡器***************-------"); 

 

 

 

 

 

 

 

以上是关于C#串口收到的数据和串口调试工具不一样的主要内容,如果未能解决你的问题,请参考以下文章

自己编了个C#的串口调试程序,但发送命令后,得不到数据!找不到问题所在,想请教各位!谢谢,急用!

串口调试者v2.1------开源c#串口调试工具

易语言串口调试怎么判断串口数据接收完成。最好有源码每次接收到的数据长度不一样。(无自定义规约)

C#上位机开发一:串口通讯之如何制作一个串口调试助手

C.Net串口工具源码 串口调试工具 支持16进制发送 可以定时自动发送

串口调试助手-发送数据,按字符或16进制显示接收数据的C#程序