Forum: Mikrocontroller und Digitale Elektronik RS232 nicht syncron C#


von Florian S. (didi34)


Lesenswert?

Ich sende von meinem µC alle Millisekunden einen wert zwischen 0-1023 
(ADC-Wert). und als Trennzeichen ein 'a'. Wenn ich in C# mit
1
 
2
byte[] M_byte_Buffer_01 = new byte[5];
3
serialPort1.Read(M_byte_Buffer_01, 0, 5);
5 Zeichen einlese kommt entweder 1023a oder 23a10 oder 3a102 usw. Wie 
werde ich synchron?

von Achim M. (minifloat)


Lesenswert?

1
byte[] M_byte_Buffer_01 = new byte[5];
2
do
3
{
4
   serialPort1.Read(M_byte_Buffer_01, 0, 1);
5
}
6
while(M_byte_Buffer_01[0] != 'a');
7
8
serialPort1.Read(M_byte_Buffer_01, 0, 4);
mfg mf

von Florian S. (didi34)


Lesenswert?

Danke für deine Antwort. Diese Lösung funktioniert, doch ich übertrage 
Messdaten um am PC einen Graph zu zeichnen. Gehen da nicht Daten 
verloren?

von EinHardwareNeuling (Gast)


Lesenswert?

Nur diejenigen bis er das erste "a" empfängt. Danach sollte alles 
laufen. Vorausgesetzt, dass jedes Mal, wenn Daten anliegen, ein 
Empfangsereignis ausgelöst wird.

Gruß

Neuling

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.