Dobrý den,
potřebuji poradit s posíláním dat z PC. Používám Python 3.8.0. a modul pyserial-3.5.
Data posílám z PC přes USB BT modul do mikrokontroléu Picaxe, tam si je uložím a pošlu zase zpátky. V počítači je načtu a zjišťuji jestli jsem dostal to samé co jsem odeslal. Když jsem používal Python 2 ( a k němu příslušný modul pyserial) zapisoval jsem data na USB příkazem:
com.write(chr(i))
A vše fungovalo bez problému. V Pythonu 3 musím připsat kódování proměnné:
com.write(chr(i).encode("utf-8"))
Když zkouším následující program:
import serial
cislo_portu ='COM6'
com = serial.Serial(cislo_portu, 9600, timeout=2)
for i in range(0, 255, 50):
com.write(chr(i).encode("utf-8"))
x=com.readline()
if int(x) == i:
print(i, " - OK.")
else:
print(i, " ≠ ", int(x))
com.close()
Pak po spuštění dostávám ty hodnoty které odešlu. Při odeslání hodnoty i = 128 se mi vrátí hodnota 194, hodnota 194 se mi vrací až do odeslání hodnoty i = 191, od i = 192 se mi vrací hodnota 195 a ta mi chodí až do konce, tj. do hodnoty i = 254.
Umí mi někdo poradit jak odeslat hodnoty větší než 127? Tak aby mi zpět do PC přicházely ty hodnoty které jsem odelal?