Hallo,
ich möchte mir ein VB.Net Programm schreiben wo ich über die Serielle
Schnittstelle mit einem uC kommunizieren kann. Wenn ich das RealTerm
nehme funktioniert das schon, ich kann Daten senden und komme sie auch
wider zurück, nur in VB funktioniert das noch nicht so.
Habe mir eine Windows Forms anwendung erstellt, wo ich den Com-Port
einstellen kann und habe 4 Text Felder wo ich Zahlen eintragen kann. Die
Übertragung soll gestartet werden wenn ich auf einen Button drücke.
Des weiteren habe ich ein TextBox wo ich mir das empfangen wider
anzeigen lassen kann.
Die Übertragung soll in Ascii erfolgen.
Hier mal mein Programm
1 | Private Sub btn_uebertragen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_uebertragen.Click
|
2 | box_uber.Text = txt_Rot.Text & "," & txt_Rot_Gelb.Text & "," & txt_min_Gruen.Text & "," & txt_Gelb.Text
|
3 |
|
4 | Dim sString As String = box_uber.Text 'String zusammensetzten
|
5 | Dim nLen As Integer = sString.Length 'Laenge ermitteln
|
6 |
|
7 | Dim msg As String = ""
|
8 |
|
9 | For a As Integer = 1 To nLen
|
10 | msg = msg & Asc(sString.Chars(a - 1))
|
11 | Next
|
12 | box_uber_2.Text = msg
|
13 | SerialPort1.Write(msg)
|
14 | SerialPort1.Write("\n")
|
15 | End Sub
|
16 |
|
17 | Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
|
18 | Dim x As String
|
19 | x = SerialPort1.ReadLine.ToString
|
20 | box_empfagne.Text = x
|
21 | End Sub
|
Damit meine gegenseite weiß das keine Daten mehr kommen, beende ich die
Kommunikation mit einem "\n".
Wenn ich Daten über VB sende mit \n funktioniert das nicht da wartet der
uC immer noch auf Daten.
Der Datenaufbau zur übertragung soll z.B. so 12,3,5,22 aussehen und
dann das \n noch hinten dran.
Wenn ich das alles so ins RealTerm eingebe funktioniert das.