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


von Enrico (Gast)


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.

von Severino R. (severino)


Lesenswert?

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

von Enrico (Gast)


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.

von Severino R. (severino)


Lesenswert?

Versuch's mal mit:

SerialPort1.Encoding = System.Text.Encoding.Default

von Enrico (Gast)


Lesenswert?

cool... das hat geholfen.

Vielen Dank

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.