VB-Com Kommunikation

Gast #4329523
Lesenswert?

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.
Gast #4330240
Lesenswert?

Peter II schrieb:
> seppel schrieb:
>> Wenn ich das alles so ins RealTerm eingebe funktioniert das.
>
> kann es sein das RealTerm  \r\n sendet?

Habe das mal Testweise ausprobiert.
Ich frage in meinem uC auch nur nach dem endzeichen "\n" ab.

Wenn ich das so schreibe
SerialPort1.Write(CStr(Asc("\n")))
sende ich doch mein "\n" als Ascii zeichen über den SerielPort oder?
Persönliche Seite #4330280
Lesenswert?

seppel schrieb:
> Wenn ich das so schreibe
> SerialPort1.Write(CStr(Asc("\n")))
> sende ich doch mein "\n" als Ascii zeichen über den SerielPort oder?

Ja, aber das sind zwei Zeichen.

Tatsächlich willst du aber das Steuerzeichen versenden; die Schreibweise 
\n ist eine in C-artigen Programmiersprachen übliche.

In VB dürfte das die Konstante vbLF sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren