2010-12-15 7 views
1

Ok, also ich bin ein komplettes noob zu pySerial. Ich versuche, mit einem Laborgerät zu kommunizieren, habe aber Probleme beim Senden des Befehls STX (Start of Text). Bisher mein Grund Code wie folgt aussehen:PySerial - kann STX nicht senden

ser = serial.Serial(0, 19200, timeout=1,parity=serial.PARITY_ODD, rtscts=0) 
ser.write(0x02) #ASCII STX is 0x2 in hex 

Aber wenn ich die 232 Daten auf meinem Umfang sehen, die STX Ich versuche, senden sieht nicht so etwas wie ein STX-Befehl in Hperterminal gesendet.

Irgendwelche Ideen? Ich bin sicher, das ist unglaublich einfach und ich übersehe nur etwas Triviales.

Danke!

Antwort

0

Sind Sie sicher, dass die gleiche Konfiguration für HyperTerminal und PySerial verwendet wird. Sie sollten sicherstellen, dass die folgenden sind die gleichen:

  • Baudraten
  • Parität (Sie 19200 verwenden) (Sie verwenden PARITY_ODD)
  • Anzahl der Datenbits (pyserial Standard 8)
  • Stoppbits (pySerial default 1)
+0

Ich habe zu überprüfen, und die Einstellungen sind die gleichen. – KMB

4

Die Schreibfunktion in der seriellen Klasse akzeptiert Bytes oder Zeichenfolgen. Sie übergeben eine Ganzzahl, so dass das Ergebnis unbekannt ist. Vielleicht wird es in str umgewandelt, sodass Sie das Zeichen "2" senden.

Der richtige Weg, es zu tun ist:

ser = serial.Serial(0, 19200, timeout=1,parity=serial.PARITY_ODD, rtscts=0) 
ser.write(chr(0x02)) #ASCII STX is 0x2 in hex 
+0

Ahh, ja, das hat den Trick gemacht! Vielen Dank! Ich hatte versucht, ein Byte zu senden, aber noch nicht als chr übergeben. – KMB

Verwandte Themen