Hallo,
ich lasse Daten eines AVR Prozessors über die serielle Schnittstelle einlesen.
Das Programm hierzu habe ich in VB6 geschrieben.
Nun kommt es aber leider immer mal wieder vor dass sich das Empfangen der Daten aus irgent einem Grund aufhängt.
Senden ist dann aber weiterhin möglich.
Hat jemand ne Erklärung dafür, bzw. wie kann ich den Com Port reseten ohne jedes mal das Programm neu starten zu müssen?
Hier mein Programmausschnitt:
ich lasse Daten eines AVR Prozessors über die serielle Schnittstelle einlesen.
Das Programm hierzu habe ich in VB6 geschrieben.
Nun kommt es aber leider immer mal wieder vor dass sich das Empfangen der Daten aus irgent einem Grund aufhängt.
Senden ist dann aber weiterhin möglich.
Hat jemand ne Erklärung dafür, bzw. wie kann ich den Com Port reseten ohne jedes mal das Programm neu starten zu müssen?
Hier mein Programmausschnitt:
Visual Basic-Quellcode
- Private Sub MSComm1_OnComm()
- On Error GoTo Fehlerliste
- Select Case MSComm1.CommEvent
- Case comOverrun: MsgBox "Datenverlust!"
- Case comRxOver: MsgBox "Datenverlust!"
- Case comEvReceive: Me.Text1 = Me.Text1 + MSComm1.Input
- Case comEventBreak: MsgBox " 1001 Es wurde ein Anhaltesignal (Break-Signal) empfangen."
- Case comEventFrame: MsgBox " 1004 Datenblockfehler (Framing Error). Die Hardware hat einen Datenblockfehler entdeckt."
- Case comEventRxParity: MsgBox " 1009 Paritätsfehler (Parity Error). Die Hardware hat einen Paritätsfehler entdeckt."
- Case comEventTxFull: MsgBox " 1010 Sendepuffer voll (Transmit Buffer Full). Bei dem Versuch, ein Zeichen in die Warteschlange aufzunehmen, wurde festgestellt, daß der Sendepuffer voll war."
- Case comEventDCB: MsgBox "1011 Unerwarteter Fehler beim Abrufen des Device Control Block (DCB) für den Anschluß. "
- End Select
- Debug.Print MSComm1.Input
- vari1ende = InStr(Me.Text1, "#")
- If vari1ende > 20 Then
- Haus.ComEingang = Me.Text2
- Me.Text2 = Left(Me.Text1, vari1ende)
- Me.Protokoll1 = Time & " - " & Me.Text2 & Me.Protokoll1