我目前正在通过串口从一些旧机器上读取一些数据。起初,我使用.ReadChar()来获取我的数据(整数),但我的程序会随机冻结,我会得到一些IO错误,所以我想我会尝试使用ReadAsync()来获取我的信息。但是在使用ReadAsync时,我得到的数字与我以前使用ReadChar()的数字完全不同。我已经尝试将我的字节数组转换为int,但我仍然得到奇怪的数字。
使用ReadAsync时有什么我忘了做的吗?
这是一个代码片段
private async void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
byte[] buffer = new byte[4];
await port.BaseStream.ReadAsync(buffer, 0, 4);
Console.WriteLine("from port1 " + BitConverter.ToInt32(buffer,0));
}
catch(Exception w)
{
string logPath = Directory.GetCurrentDirectory() + "TanukiLog.txt";
using (StreamWriter writer = new StreamWriter(logPath, true))
{
writer.WriteLine("Message :" + w.Message + "<br/>" + Environment.NewLine + "StackTrace :" + w.StackTrace + "" + Environment.NewLine + "Date :" + DateTime.Now.ToString());
writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine);
}
Console.WriteLine("An error occured: '{0}'", e);
}
}