Code:
   
 private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)         //Button zum Empfangen
        {
            try
            {              //Globale Variable
                bool PaketStart = false;
                List<byte> meineListe = new List<byte>();

                //Event

                byte temp =0;
                while (temp != -1)   //So lange die Variable temp ungleich -1 ist, also so lange Daten vorhanden sind mache:
                {
                    temp = (byte)serialPort1.ReadByte();   //Lese ein byte
                    if (PaketStart)    //Sind wir bereits in einem Datenpaket drin ?
                    {
                        if (temp == 66)   //Ist das byte die Endbedingung ?
                        {
                       
                                //Geschwindigkeit
                                richTextBox1.Text =  meineListe[5].ToString() + meineListe[6].ToString() + meineListe[7].ToString() + meineListe[8].ToString() +    meineListe[9].ToString();     // Ausgabe Geschwindigkeit
                                //Rundenzeit
                                //richTextBox2.Text = char10.ToString() + char11.ToString() + char12.ToString() + char13.ToString() + char14.ToString();    //Ausgabe Rundenzeit
                                //Runde
                                label12.Text = meineListe[3].ToString() + meineListe[4].ToString();
                            //Rufe eine Prozedur auf die die Daten in der Liste verarbeitet (Nur eine Kopie der Datenübergeben und die ursprüngliche liste leeren), das Datenverarbeiten macht    man aus Timinggründen wohl am besten aus einem anderen Thread
                                meineListe.Clear();
                        }     

                        }
                        else
                        {
                            meineListe.Add(temp);  //Ansonsten füge das byte der Liste hinzu
                        }
                    }
                    if (temp == 56)  //Wir sind in keinem Datenpaket drin, ist das gerade gelesene Byte die Startbedingung ?
                    {
                        PaketStart = true;   //Ja also setzten wie die Variable PaketStart auf true so dass wir bei dem nächsten Schleifendurchlauf in if-Bedingung weiter oben springen
                    }

                }
       catch { ;}
}
Hab das jetzt so geschrieben und unterstreicht mir while (temp != -1) grün mit der Meldung "Warnung 1 Der Vergleich mit einer ganzzahligen Konstante ist nutzlos. Die Konstante befindet sich außerhalb des Bereichs vom Typ "byte".".


kann ich dieses Temp auch direkt in Char umwandeln, da ich gerne den If(temp == startbedinung) und If(temp == Endbedinung) mit einem Char vergleich will und direk auf den rich text box als Char ausgeben will. wie sieht das dann aus ?

mfg