Mit pySerial mit Python 3.3
Ich habe viele code-Beispiele über den seriellen port und die Leute sagen, Sie arbeiten codes zu. Die Sache ist, wenn ich versuche, den code, es funktioniert nicht.
import serial
ser = serial.Serial(
port=0,
baudrate=9600
# parity=serial.PARITY_ODD,
# stopbits=serial.STOPBITS_TWO,
# bytesize=serial.SEVENBITS
)
ser.open()
ser.isOpen()
print(ser.write(0xAA))
Den Fehler, das es mir gibt ist : "SerialException: Port ist bereits geöffnet".
Ist es mir mit Python ist3.3 das problem oder ist es etwas zusätzliches, die ich brauche zu installieren ? Es ist eine andere Art der Verwendung von COM-ports mit Python ist3.3 ?
- Wenn jemand fragt, ich habe COM1. Ich benutze es eine Menge. Es war nicht geöffnet, die von einem anderen Programm auf die Zeit, die ich habe versucht, diesen code. Wenn er versucht wird, mit Docklite öffnet COM1 erfolgreich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also die moral von der Geschichte ist.. der port geöffnet wird, wenn die Initialisierung.
ser.open()
fehl, weil der serielle port ist bereits geöffnet, durch dieser = serial.Serial(.....)
. Und das ist eine Sache.Das andere problem gibt es
ser.write(0xAA)
- ich erwartete, diese zu verstehen, "senden ein byte 0xAA", was es eigentlich Tat, war senden 170(0xAA) Nullen. In der Funktionwrite
ich Folgendes sah :data = bytes(data)
wo Daten ist das argument Sie übergeben. es scheint die Funktion Byte() nicht nehmen, die Zeichenfolgen als Argumente, so kann man nicht senden, die Saiten direkt mit:serial.write()
, aberser.write(bytearray(TheString,'ascii'))
macht den job.Obwohl ich überlege, hinzufügen:
in
ser.write()
, obwohl, das würde mein code nicht funktionieren auf anderen PCs.