www.mikrocontroller.net

Forum: PC-Programmierung immer 3Fh auf dem COM-Port, beim senden von Werten > 127d


Autor: Enrico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin gerade dabei ein kleines Progromm zu schreiben, um mit einem C zu 
kommunizieren. Die Materie ist noch völlig neu für mich.
Bin soweit, dass ich Daten über den COM-Port senden kann. Ist ja kein 
Kunststück. Das ganze klappt auch ganz gut. Nur wenn ich Werte über 127d 
zeigt mir der Portmon immer 3Fh, also 63d an.
(Die Ähnlichkeit zum Standartwert der Eigenschaft "ParityReplace" des 
SerialPort-Objektes ist rein "zufällig".)
Baudrate = 11520k, Datenwortlänge = 8 Bit, keine Parity, ein Stopbit

Vielen Dank für Anregungen zur Fehlersuche im Voraus.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entwicklungsumgebung?
Programmiersprache?
Da das Progromm anscheinend klein ist, könntest Du es ja posten. 
Vielleicht hat jemand Lust, es auszuprobieren.

Autor: Enrico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, sorry... programmiere mit ms visualbasic 2008 Express

die routine, die die daten sendet sieht so aus:


        Dim h_str As String
        Dim h_asc As Char
        Dim h_dec As Char
        Dim h_hex As Char

        h_str = TextBox.Text
        Select Case ComboBox_Format.SelectedIndex
            Case 0 /'ASCII-Zeichen senden/
                For i As Byte = 0 To h_str.Length - 1
                    h_asc = h_str.Substring(i, 1)
                    Try
                        SerialPort1.Write(h_asc)
                    Catch ex As TimeoutException
                    End Try
                Next
            Case 1 /'Dezimalzahl senden/
               h_dec = Chr(Byte.Parse(h_str, 
Globalization.NumberStyles.Number))
               Try
                    SerialPort1.Write(h_dec)
               Catch ex As TimeoutException
               End Try
            Case 2 /'Hex-Zhal senden/
               h_hex = Chr(Byte.Parse(h_str, 
Globalization.NumberStyles.HexNumber))
               Try
                    SerialPort1.Write(h_hex)
               Catch ex As TimeoutException
               End Try
        End Select


Der Fehler tritt in allen drei Cases auf.
Alles was die gesendeten Daten nicht beeinflusst, habe ich 
rausgeschmissen.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch's mal mit:

SerialPort1.Encoding = System.Text.Encoding.Default

Autor: Enrico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cool... das hat geholfen.

Vielen Dank

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.