2017-01-30 5 views
0

Wenn ich folgenden Code ausführen, die ich mit SharpDevelop erstellt:Was kann ich tun gegen die # Serialport-Fehler folgende C

 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(); 
     } 

Im Folgenden ist die Ausnahme erscheinen, während der Ausführung des Codes:

Die Ausnahme ist, Folgendes:

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 

Kann mir bitte jemand helfen.

Grüße

Lala

+0

Was ist der genaue tatsächliche Wert von 'textBox1.Text', wenn der Fehler auftritt? – Dai

+0

Welches ist "MainForm.cs: Zeile 35"? – Fildor

+0

Es sagt Ihnen bereits: "Falscher Parameter". Wenn du die Zeilennummern hinzugefügt hättest oder uns sagen würdest, wo es abgestürzt ist (es steht Zeile 35 - aber wir wissen nicht, welches das ist), könntest du mehr Hilfe bekommen. Aber Sie sollten in der Lage sein, es selbst mit dieser Information zu lösen. – Matthias247

Antwort

0

Der Fehler in dieser Zeile ist:

serial.WriteLine(textBox1.Text) 

Ihr Ausnahmebericht zeigt ein IOException angehoben wird, aber die Dokumentation für WriteLine nicht aufgeführt IOException als dokumentierte Ausnahme : https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.writeline(v=vs.110).aspx - es ist möglich, dass etwas anderes schief geht.

Die Dokumentation für SerialPort.Open zeigt an, wenn der Port nicht verfügbar ist, wird dort eine Ausnahme ausgelöst (https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.open(v=vs.110).aspx), aber das ist nicht in Ihrem Programm passiert. Ich vermute, dass möglicherweise ungültige Werte in die WriteLine Funktion übergeben werden. Was passiert, wenn Sie den Anruf Write(Byte[]) vor den Anruf WriteLine verschieben?

+0

der gleiche Fehler erscheint, wenn ich es verschieben oder entfernen –

+0

Wenn ich nur das Schreibbyte hinzufügen und Schreibleiste entfernen, wird der gleiche Fehler beim Schreiben angezeigt –

Verwandte Themen