Ich habe viele Code-Beispiele mit dem seriellen Port gesehen und Leute sagen, dass sie auch Codes arbeiten. Die Sache ist, wenn ich den Code versuche, funktioniert es nicht.
%Vor%Der Fehler, den es mir gibt ist: "SerialException: Port ist bereits geöffnet". Ist es mir python3.3 das Problem zu benutzen oder muss ich etwas zusätzlich installieren? Gibt es eine andere Möglichkeit, COM-Ports mit Python3.3 zu verwenden?
Die Moral der Geschichte ist also ... der Port wird geöffnet, wenn er initialisiert wird. ser.open()
schlägt fehl, da der serielle Port bereits von ser = serial.Serial(.....)
geöffnet wurde. Und das ist eine Sache.
Das andere Problem dort ist ser.write(0xAA)
- Ich erwartete, dass dies bedeutet "sende ein Byte 0xAA", was es wirklich tat, war 170 (0xAA) Nullen zu senden. In der Funktion write
habe ich Folgendes gesehen:
data = bytes(data)
wobei Daten das übergebene Argument sind. Es scheint, dass die Funktion bytes () keine Strings als Argumente verwendet, so dass man Strings nicht direkt mit serial.write()
senden kann, aber ser.write(bytearray(TheString,'ascii'))
erledigt den Job.
Obwohl ich darüber nachdenke:
%Vor% in ser.write()
, obwohl das meinen Code auf anderen PCs nicht funktionieren lässt.
Tags und Links python python-3.3 pyserial