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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.