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读卡器***************-------"); 
}

 

 

 

 

erwa.cn

二娃制作

 

posted @ 2023-03-27 20:51  二娃网  阅读(192)  评论(0编辑  收藏  举报
www.erwa.cn 二娃备忘