Senden von byte-strings auf der seriellen Geräte
Ich bin mit Python ist3 läuft auf einem Raspberry. Ich habe ein serielles Gerät (max232/PiC16F84) in Verbindung mit dem Raspberry via USB-zu-Seriell-adapter.
Ich versuche zu senden, zwei bytes an das Gerät (e.g 0000 0011), die dann interpretiert werden als ein Befehl von dem PIC.
Der USB - Seriell-adapter ordnungsgemäß konfiguriert ist und die parameter wie bauderate sollte ok sein. Ich denke, dass mein code nicht senden die richtigen bytes an den seriellen port.
import serial
ser = serial.Serial(
port='/dev/ttyUSB0',
baudrate=1200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
xonxoff=serial.XOFF,
rtscts=False,
dsrdtr=False
)
ser.open()
ser.isOpen()
print("Initializing the device ..")
ser.write(bytes(0x00))
print("Write command")
ser.write (bytes(0x04))
print('Done')
Welche Beschwerden führen Sie zu glauben, dass es nicht senden die richtigen bytes? Was sind die richtigen bytes (wo ist der Protokoll-definition)?
InformationsquelleAutor joebee | 2014-10-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie mit der
bytes
Konstruktor falsch. Beim Aufruf mit einemint
als argument, erhalten Sie:So
bytes(0x00)
(das ist nurbytes(0)
) ist der leere string, undbytes(0x04)
vier null-bytes:Was Sie wollen, ist
bytes([ 0x00 ])
etc., oder einfach ein array mit all deinen byte-Werte:Wenn die Schnur kurz ist, Sie können einfach schreiben Sie es als eine Konstante:
b'\x00\x04'
zum Beispiel. Finden Sie in der Dokumentation vonbytes()
weitere Optionen.InformationsquelleAutor alexis
Verwenden:
Byte[0x00]+bytes([0x04])
InformationsquelleAutor CARLOS DAVID PINTO SOTELO