Hallo,
bei meinem Testprogramm beobachte ich einen Datenverlust, bzw. Falschdarstellung beim Empfang von Daten über den Com-Port.
Zur Situation: Ein externes Programm gibt über den Com-Port Werte für eine einzustellende Frequenz heraus. Jede Zahle / Zeile wird mit LF abgeschlossen.
Verwendet werden zwei USB-Seriell-Wandler die überkreuz geschaltet sind, so dass ich die Daten wieder empfangen kann.
Mit einem Terminal-Programm können alle Zahlen fehlerfrei empfangen werden in der Form:
1000000
2000000
3000000
10000000
Ich möchte mir nun ein Programm schreiben, welches die Frequenzangaben auswertet und dann meinen Frequenzgenerator ansteuert.
Wenn ich mir nun ein eigenes Programm schreibe, welches die Zahlen lesen soll, werden die Werte manchmal falsch gelesen und fehlerhaft ein Zeilenumbruch eingefügt, bzw. eine Zahl zerteilt.
Einen Reim kann ich mir nicht daraus machen. Vielleicht könnt ihr mir weiterhelfen.
Ist immer ein CR und LF notwendig oder reicht ein LF?
*Topic verschoben*
bei meinem Testprogramm beobachte ich einen Datenverlust, bzw. Falschdarstellung beim Empfang von Daten über den Com-Port.
Zur Situation: Ein externes Programm gibt über den Com-Port Werte für eine einzustellende Frequenz heraus. Jede Zahle / Zeile wird mit LF abgeschlossen.
Verwendet werden zwei USB-Seriell-Wandler die überkreuz geschaltet sind, so dass ich die Daten wieder empfangen kann.
Mit einem Terminal-Programm können alle Zahlen fehlerfrei empfangen werden in der Form:
1000000
2000000
3000000
10000000
Ich möchte mir nun ein Programm schreiben, welches die Frequenzangaben auswertet und dann meinen Frequenzgenerator ansteuert.
Wenn ich mir nun ein eigenes Programm schreibe, welches die Zahlen lesen soll, werden die Werte manchmal falsch gelesen und fehlerhaft ein Zeilenumbruch eingefügt, bzw. eine Zahl zerteilt.
Einen Reim kann ich mir nicht daraus machen. Vielleicht könnt ihr mir weiterhelfen.
Ist immer ein CR und LF notwendig oder reicht ein LF?
Quellcode
- Public Class Form1
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- SerialPort_20.Open()
- End Sub
- Private Sub SerialPort_20_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort_20.DataReceived
- Dim txt = SerialPort_20.ReadExisting
- Me.Invoke(Sub() Label3.Text = txt)
- Me.Invoke(Sub() ListBox2.Items.Add(txt))
- 'entnommen aus: https://www.vb-paradise.de/index.php/Thread/111205-Probleme-beim-auslesen-und-verwerten-von-werten-Com-Port-Ardurino-Mega/?postID=964894#post964894
- End Sub
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()