ich versuche gerade an meinen Microcontroller per pyserial 1 Byte an Daten zu schicken.
Das Problem ist, es kommt einfach nicht an.
Zum Aufbau:
Der Microcontroller zieht beim ersten eintrudelnden einen Interupt.
Sobald der Interupt da ist schaltet er LED 1 ein (um zu signalisieren das er in de Interupt Routine ist)
und geht dann über eine switch case anweisung alle vordefinierten befehle durch.
Wurde der Befehl "o" (0x6f) gesendet wird auch LED2 eingeschaltet.
Mit Putty geht das auch ohne Probleme.
Nun will ich das ganze aber über Python lösen und da das ganze sowohl unter Windows als
auch Linux laufen soll, nehme ich pyserial.
Ich dachte nun, gut, kann ja nciht schwer sein, machen wir mal ein
Code: Alles auswählen
import serial
ser = serial.Serial(3, 14400) #in putty nehme ich 115200 also 8*14400
ser.write("o")
Okay, erstmal etwas mit encoing rumprobiert, putty hat hier latin-1
Code: Alles auswählen
import serial
ser = serial.Serial(3, 14400) #in putty nehme ich 115200 also 8*14400
ser.write("o".encode("latin-1"))
Okay, dann Brutforce ich halt eine Reaktion!
Code: Alles auswählen
import serial
import time
ser = serial.Serial(3, 14400)
for i in xrange(255):
ser.write(chr(i))
a = ser.read(1)
time.sleep(1)
if not a == "\xff":
print i
Sollte ich hier den nicht alle Bit Kominationen durchgegangen sein??
Hätte LED2 nicht irgendeinmal ansprechen müssen?
Wäre super wenn ihr mir einen Tipp geben würdet.
Schöne grüße,
p91