针对以下 C# SerialPort 错误我能做些什么
What i can do against the following C# SerialPort Error
如果我 运行 我使用 SharpDevelop 创建的以下代码:
SerialPort serial = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
void sendMsg_Click(object sender, EventArgs e)
{
serial.Open();
serial.WriteLine(textBox1.Text);
serial.Write(new byte[] {0x0A, 0xE2, 0xFF}, 0, 3);
serial.Close();
}
下面是执行代码时出现的异常:
异常如下:
System.IO.IOException: Falscher Parameter.
bei System.IO.Ports.InternalResources.WinIOError
bei System.IO.Ports.SerialStream.EndWrite
bei System.IO.Ports.SerialStream.Write
bei System.IO.Ports.SerialPort.Write
bei System.IO.Ports.SerialPort.WriteLine
bei Chat_via_RS232.MainForm.sendMsg_Click in c:\Users\admin\Documents\SharpDevelop Projects\Latias.eu IT\Chat via RS232\MainForm.cs:Zeile 35
bei System.Windows.Forms.Control.OnClick
bei System.Windows.Forms.Button.OnClick
bei System.Windows.Forms.Button.OnMouseUp
bei System.Windows.Forms.Control.WmMouseUp
bei System.Windows.Forms.Control.WndProc
bei System.Windows.Forms.ButtonBase.WndProc
bei System.Windows.Forms.Button.WndProc
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc
bei System.Windows.Forms.NativeWindow.DebuggableCallback
bei System.Windows.Forms.Application.ComponentManager.FPushMessageLoop
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop
bei System.Windows.Forms.Application.Run
bei Chat_via_RS232.Program.Main in c:\Users\admin\Documents\SharpDevelop Projects\Latias.eu IT\Chat via RS232\Program.cs:Zeile 24
有人可以帮我吗
此致
拉拉
错误在这一行:
serial.WriteLine(textBox1.Text)
您的异常报告显示 IOException
被引发,但是 WriteLine
的文档没有将 IOException
列为记录在案的异常:https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.writeline(v=vs.110).aspx - 可能是其他原因出问题了。
SerialPort.Open
的文档指出如果端口不可用,则会在那里抛出异常 (https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.open(v=vs.110).aspx),但这不会在您的程序中发生。我怀疑可能将无效值传递给 WriteLine
函数。如果将 Write( Byte[] )
调用移至 WriteLine
调用之前会发生什么情况?
如果我 运行 我使用 SharpDevelop 创建的以下代码:
SerialPort serial = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
void sendMsg_Click(object sender, EventArgs e)
{
serial.Open();
serial.WriteLine(textBox1.Text);
serial.Write(new byte[] {0x0A, 0xE2, 0xFF}, 0, 3);
serial.Close();
}
下面是执行代码时出现的异常:
异常如下:
System.IO.IOException: Falscher Parameter.
bei System.IO.Ports.InternalResources.WinIOError
bei System.IO.Ports.SerialStream.EndWrite
bei System.IO.Ports.SerialStream.Write
bei System.IO.Ports.SerialPort.Write
bei System.IO.Ports.SerialPort.WriteLine
bei Chat_via_RS232.MainForm.sendMsg_Click in c:\Users\admin\Documents\SharpDevelop Projects\Latias.eu IT\Chat via RS232\MainForm.cs:Zeile 35
bei System.Windows.Forms.Control.OnClick
bei System.Windows.Forms.Button.OnClick
bei System.Windows.Forms.Button.OnMouseUp
bei System.Windows.Forms.Control.WmMouseUp
bei System.Windows.Forms.Control.WndProc
bei System.Windows.Forms.ButtonBase.WndProc
bei System.Windows.Forms.Button.WndProc
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc
bei System.Windows.Forms.NativeWindow.DebuggableCallback
bei System.Windows.Forms.Application.ComponentManager.FPushMessageLoop
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop
bei System.Windows.Forms.Application.Run
bei Chat_via_RS232.Program.Main in c:\Users\admin\Documents\SharpDevelop Projects\Latias.eu IT\Chat via RS232\Program.cs:Zeile 24
有人可以帮我吗
此致
拉拉
错误在这一行:
serial.WriteLine(textBox1.Text)
您的异常报告显示 IOException
被引发,但是 WriteLine
的文档没有将 IOException
列为记录在案的异常:https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.writeline(v=vs.110).aspx - 可能是其他原因出问题了。
SerialPort.Open
的文档指出如果端口不可用,则会在那里抛出异常 (https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.open(v=vs.110).aspx),但这不会在您的程序中发生。我怀疑可能将无效值传递给 WriteLine
函数。如果将 Write( Byte[] )
调用移至 WriteLine
调用之前会发生什么情况?