111,094
社区成员




//这句会不会因为字符编码及问题而出错?因为串口一般是ascii编码,很少用其他的编码,Encoding.Default是unicode
char[] cpara = System.Text.Encoding.Default.GetChars(chrdata);
//这行,你不如直接Encoding.Ascii.GetString()了
str = new String(cpara);
//你尝试吧这行注释掉。改为:
//File.Append方式,追加到文件中。看是否还是只执行1次。
this.BeginInvoke(new ReadScanData(OnReadScanData), str);
private void spReceive_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
byte[] chrdata=null;
int iLen ;
string str=null;
Thread.Sleep(100);
iLen =spScanSerial .BytesToRead;
if (iLen > 0)
{
chrdata = new byte[iLen];
spScanSerial.Read(chrdata, 0, iLen);
char[] cpara = System.Text.Encoding.Default.GetChars(chrdata);
str = new String(cpara);
this.BeginInvoke(new ReadScanData(OnReadScanData), str);
}
}