php_serial.class sendet beim init 7 x unerwünscht 0xFF über die serielle Schnitstelle

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi all,

    ich kopple RPi und AVR µController über die serielle Schnittstelle. Alles ok, nur sendet die Library php_serial.class beim Initialisieren in jeder Zeile das HEX-Byte FF.

    Der Output dieses Codes, mit putty mitgeschnitten und im Hexeditor angesehen:

    FFFFFFFFFFFFFF 6D 79 5F 74 65 78 74

    FFFFFFFFFFFFFF m y _ t e x t

    Ich habe jede Zeile einzeln mit Pausen umrahmt, und kann sehen, dass je Zeile einmal ein Byte FF gesendet wird (bzw. die Leitung einmal kurz auf Null geht = Startbit)

    Ich habe überprüft, ob das Startbit vielleicht nur ein Glitch (eine kurze 0 auf der seriellen Leitung) ist, der den nachfolgenden Ruhepegel als FF erscheinen lässt, aber das Oszi sagt, dass die Bitdauer der Null (25µs) zur Baudrate passt.

    Hat jemand eine Idee, woher die FFs kommen?

    Herzlichen Dank für die Mühe!
    Snafu.

  • php_serial.class sendet beim init 7 x unerwünscht 0xFF über die serielle Schnitstelle? Schau mal ob du hier fündig wirst!

  • Du benutzt die Funktion serialflush() aber in dem verlinkten Code von dir ist diese nicht vorhanden. Benutzt du eine andere Library?

    Ansonsten zeig uns mal, was in der Variable $_buffer vor und nach dem Benutzen der Funktion sendMessage() steht. Kann ja sein, dass dort etwas drin steht, was du gar nicht haben möchtest.

  • Hallo Zaziki, danke für die Antwort und deine Mühe!

    > Du benutzt die Funktion serialflush() aber in dem verlinkten Code von dir ist diese nicht vorhanden.
    > Benutzt du eine andere Library?

    Entschuldigung, die Lib. kursiert in mehreren nicht durch Versionsnummern unterscheidbaren Versionen, der Fehler tritt mit allen auf, die ich hier habe, mit und ohne serialflush().

    > Ansonsten zeig uns mal, was in der Variable $_buffer vor und nach dem Benutzen der Funktion
    > sendMessage() steht. Kann ja sein, dass dort etwas drin steht, was du gar nicht haben möchtest.

    Vor der Benutzung:<br/>string(0) ""
    Nacher:<br/>string(0) ""

    Ist beide Male leer.

    Die unerwünschten FF-Bytes treten schon früher auf, in jeder Zeile, die ich mit "// sends 0xff to serial" kommentiert habe, selbst wenn ich dann nichts sende.

    Schönen Gruss
    snafu

  • Hallo,
    ich habe das gleiche Problem aber mit Python.
    Am Raspi habe ich einen Pegelwandler mit max2322
    Auf dem Raspi benutze ich folgende Kommandos
    import serial
    port = serial.Serial(port='/dev/ttyAMA0', baudrate=19200)
    port.write('hallo welt')

    Auf meinem Linux-PC folgende
    import serial
    port = serial.Serial(port='/dev/ttyS0', baudrate=19200)
    while True:
    write port.read(10)

    Die Ausgabe ist dann \xffhallo wel

    Hat jemand eine Idee woran das liegen kann

    schon mal danke Tux

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!