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
二娃制作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术