Ohne Buffer mit timeout ein Auszug was läuft:

Code:
 
Dim Char_vergleich(20) As Byte
Dim Char_da(20) As Byte
Const Timeoutfaktor=100            '100mSek



 Charzaehler = 0                       'Prüfen auf Startstring und IO / Startstring einlesen
  Timeout = 0
  Do
    Hole_char = Ischarwaiting()                             'RS232 Port auf Daten abfragen
    If Hole_char = 0 Then                                   'keine Daten da
                       Waitms 1
                       Incr Timeout
                     Else                                   'Daten da
                       Timeout = 0
                       Hole_char = Inkey()                  'Byte auslesen
                       Incr Charzaehler                     'Feldzähler hoch
                       Char_da(charzaehler) = Hole_char
                       If Char_da(charzaehler) <> Char_vergleich(charzaehler) Then Charzaehler = 100       'Vergleiche Byte im Startsting
   End If
   If Timeout > Timeoutfaktor Then Exit Do                  'Timeout abfragen
 Loop Until Charzaehler > 8                'Schleife bis alle 8 Byte vom Startstring ausgelesen oder Timeout
 If Charzaehler <> 9 Then
                      Datenuebergabe_rs232 = Fehler_im_startstring       '10
                      Exit Sub
                     End If
Gento