Hallo, Habe ein Problem bei C# beim einlesen eines vom Mikrocontroller gesendeten Strings. Habe als Endzeichen vom Mikrocontroller '\n' am Ende vom String angehangen. private void COMPORT_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { /* try { Einlesen = COMPORT.ReadLine(); } catch { ; } */ } Also ich kann keine Daten empfangen und muss es wie oben ausklammern sonst bekomm ich einen Blue-Screen. Kann mir jemand helfen? MFG Peter
Peter schrieb: > private void COMPORT_DataReceived(object sender, > System.IO.Ports.SerialDataReceivedEventArgs e) > { > /* try > { > Einlesen = COMPORT.ReadLine(); > } > catch > { > ; > } */ > } > Also ich kann keine Daten empfangen und muss es wie oben ausklammern > sonst bekomm ich einen Blue-Screen. > > Kann mir jemand helfen? > > MFG Peter Bluescreen? Prolific? Ist COMPORT.NewLine ist auf "\n" gesetzt http://msdn.microsoft.com/de-de/library/system.io.ports.serialport.newline(v=VS.80).aspx
Bluescreen deutet eher auf ein Treiberproblem hin. Newline ist normalerweise \r\n.
Also gerade mal Newline probiert, ändert auch nicht. Also das Programm hängt sich sofort auf sobald ich in den Datenmodus gehe (den Port öffne zur Datenübertragung.
Treiberprobleme kann ich eigentlich ausschließen da ich in HTerm die Daten des Mikrocontrollers ohne probleme empfangen bekomm.
Ich wüsste nicht was sonst ab Win2000 (.NET) einen Bluescreen verursachen könnte außer Treiber und Hardware. Versuche mal die Daten per Event zu empfangen.
Empfange es doch schon im SerialDataReceivedEvent. Oder meinst du was anderes?
Benutzt du einen USB-Adapter? Ich halte es für eine schlechte Idee sowohl DataReceived zu verwenden als auch außerhalb von DataReceived (z.B. im Button-Click-Handler) Read/ReadLine aufzurufen
Hallo Ja benutzte dieses Board mit dem Mk2 Programmieradapter. http://shop.myavr.de/Systemboards/myAVR%20Board%20MK2,%20best%C3%BCckt.htm?sp=article.sp.php&artID=40 Da geht es drum von Programmiermodus auf Datenmodus umzuschalten und die Readline Funktion ist zur abfrage ob der Adapter auch im Datenmodus ist. Wenn dieser umgeschaltet wurde, ist der Port ja mit 9600 Baud geöffnet und es findet außer in der DataReceived keine abfrage mehr statt.
dazu gab es doch schon mal zwei threads: Beitrag "C#:Wie Nachricht vom Mikrocontroller über dem Com-Port empfangen" Beitrag "Daten von C# über USB/COM3 zum Mikrocontroller schicken" Gruß ;-)
So vielen Dank für die Hilfreichen Tips. Habs jetzt endlich zum laufen gebracht. Lg Peter
An dieser Stellen wäre es dann sinnvoll zu erwähnen woran es lag...
N. Müller schrieb: > An dieser Stellen wäre es dann sinnvoll zu erwähnen woran es lag... Hatte es oben auch übersehen... Im DataReceivedEvent wird nochmals mit ReadLine auf die Daten gewartet...d.h. beim zweiten Zeichen/Paket knallt's da ReadLine blockiert. Abstürzen dürfte das trotzdem nicht, außer es ist wie oben schon gesagt, Prolific http://stackoverflow.com/questions/256893/serialport-and-the-bsod
Also hab mein Programm komplett neu aufgesetzt, um alle Fehler von Anfang an nachvollziehen zu können. Hier in dem Programm werden die Comport-Namen abgefragt, dann muss der Comport des USB-MK2 Board ausgewählt werden und dann wird in den Datenmodus umgeschaltet. Woran es bei den anderen Programm gehangen hat weiß ich noch nicht genau. Muss ich mir noch angucken.
Der Blue-Screen kam scheinbar erst als das Programm sich aufgehangen hat und man den Comport-Adapter abgezogen hat. Denke das ist dadurch gekommen das der Comport da noch geöffnet war.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.