本人的一个串口程序,用的是SerialPort类,工作一天多的时候突然出现问题,我以为是线程阻塞 断点发现是乱码了工作了一天多了 突然就乱码的,后来我又重新开启程序,继续工作了一天多,后面的数据又乱码,串口发送和接受都是Unicode编码,接收端代码如下
public void DoReceive()
{
int l = sport.BytesToRead;
byte[] ch = new byte[l];
int bytesRead = 0;
bytesRead = sport.Read(ch, 0, l);
string str = Encoding.Unicode.GetString(ch, 0, bytesRead);
BitConverter.ToString(ch);
strReportbao = str;
Thread t = new Thread(new ThreadStart(OperateReportbao));//建立新线程用来处理报文包
t.Start();//打开线程
t.Join();//等待线程结束
t.Abort();//销毁线程
}
public void DoReceive()
{
int l = sport.BytesToRead;
byte[] ch = new byte[l];
int bytesRead = 0;
bytesRead = sport.Read(ch, 0, l);
string str = Encoding.Unicode.GetString(ch, 0, bytesRead);
BitConverter.ToString(ch);
strReportbao = str;
Thread t = new Thread(new ThreadStart(OperateReportbao));//建立新线程用来处理报文包
t.Start();//打开线程
t.Join();//等待线程结束
t.Abort();//销毁线程
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货