Forum: PC-Programmierung PySerial sendet nur Nullen


von PySerial (Gast)


Lesenswert?

Hallo, Ich habe hier einen China-UART-converter von dem Ich weiss dass 
er funktioniert (Controller flashen kann er). Jetzt wollte ich ihn mit 
PySerial Daten senden lassen aber leider funktioniert das nicht. Das 
Python-script:
1
import serial
2
3
ser = serial.Serial(
4
    port="COM20",
5
    baudrate=9600,
6
    parity=serial.PARITY_NONE,
7
    stopbits=serial.STOPBITS_ONE,
8
    bytesize=serial.EIGHTBITS
9
)
10
11
12
def sendMessage(msg):
13
    for x in msg:
14
        ser.write(ord(x))
15
    ser.close
16
17
18
sendMessage("Test")
Dass der UART-Converter an COM20 ist habe Ich mit der Arduino-IDE 
rausgefunden. Wenn Ich das ganze jetzt mit einem Logicanalyzer anschauen 
sieht der aber nur Nullen (Saleae Logic, "Async Serial" ausgewählt, 9600 
baud, 8 bits per transfer, 1 Stop Bit, No Parity Bit, Least Significant 
Bit First, Not Inverted). Ich habe auch schon ein bisschen rumprobiert 
aber da der Verlauf nur wie ein PWM-Signal aussieht scheinen es wirklich 
nullen zu sein die rauskommen und der Decoder ist nicht das Problem. Hat 
jemand Erfahrung mit der Lib und weiss was Ich noch probieren kann?
Danke schonmal!

von Dumdi D. (dumdidum)


Lesenswert?

Kommt denn die richtige Anzahl von Signalen heraus?

von ew0 (Gast)


Lesenswert?

Python 3, Unicode String?

von F. F. (foldi)


Lesenswert?

PySerial schrieb:
> an COM20

Wie ist denn der eingestellt?

von mmm (Gast)


Lesenswert?

Du solltest dem write geben, was es will:
"This should be of type bytes (or compatible such as bytearray or 
memoryview). Unicode strings must be encoded (e.g. 
'hello'.encode('utf-8')."

Du gibst ihm einen integer...

von mmm (Gast)


Lesenswert?

Und warum schließt Du den Port nachdem Du eine Message geschickt hast? 
Willst Du nur die eine einzige Nachricht schicken und keine Antwort 
darauf erhalten?

von Sheeva P. (sheevaplug)


Lesenswert?

mmm schrieb:
> Und warum schließt Du den Port nachdem Du eine Message geschickt hast?
> Willst Du nur die eine einzige Nachricht schicken und keine Antwort
> darauf erhalten?

Dazu müßte man die Methode allerdings aufrufen. Das ist ja kein Ruby. 
;-)

von mmm (Gast)


Lesenswert?

Stimmt, ich hätte schreiben sollen: "Warum willst Du den Port 
schließen..."

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.