Klärung der Bitwellenform

7

Ich habe versucht, mehr über die Bitübertragung über das Uart zu erfahren, und ich habe den folgenden Code in Python, um Informationen zu übertragen:

import serial

ser = serial.Serial(

    port='/dev/ttyAMA0',
    baudrate = 1000000,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1
)

b=1

ser.write(b)

Ich habe dann ein Oszilloskop an die Tx-Leitung angeschlossen. Ich erhalte die folgende Wellenform:

Welches 1us = 1bit. Ich kann deutlich sehen, dass das niedrigstwertige Bit an erster Stelle steht, und ich kann die Start- und Stoppbits sehen. Warum befinden sich jedoch zwei Einsen in der Mitte der Sequenz? Sollte es nicht 00000001 sein?

Danke im Voraus.

Berd
quelle

Antworten:

11

Für mich sieht es so aus, als hätte ser.write (1) eine implizite Konvertierung in einen String. So wird Ihre 1 zu einer "1", die 00110001 ist und perfekt zu Ihrer Beobachtung passt.

kwasmich
quelle
Oh Danke. Ich dachte nicht, dass es eine Zeichenfolge "1" war.
Berd