Hallo Marius,

ich habe etwas ähnliches auch schon gemacht.
Dazu musst du aber Hardware UART benutzen.
Mit einem geeigneten Quarz, kannst du die Baudrate
dann auch auf 115200 setzen.

Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 38400                                               '0,16% Fehlerrate bei 8 MHz

On Urxc Empfang                                             'ISR Empfangsroutine
Enable Urxc
Enable Interrupts

Dim Befehl As String * 15 , Para As String * 4 , Parameter As Integer
Dim E_byte As Byte , E_flag As Byte

Do
If E_flag = 3 Then                                          'Empfangsstring komplett
  Parameter = Val(para)                                     'aus String Integer machen
  Print "Befehl: " ; Befehl ; " - " ; "Parameter: " ; Parameter
  Befehl = ""                                               'Befehl löschen
  Para = ""                                                 'Parameter löschen
  E_flag = 0                                                'Empfang neu setzen
End If
Loop

End

Empfang:
E_byte = Udr
Select Case E_byte
  Case 35 : E_flag = 1                                      '"#" = Befehl kommt
  Case 44 : E_flag = 2                                      '"," = Parameter kommt
  Case 13 : E_flag = 3                                      '"ENTER" = Empfang komplett
  Case Else:If E_flag = 1 Then Befehl = Befehl + Chr(e_byte)
             If E_flag = 2 Then Para = Para + Chr(e_byte)
End Select
Return
Damit kannst du den kompletten String vom PC an den Controller schicken, ohne das etwas verloren geht.