da ich ja der neue bin, kurz zu mir. Ich versuche seit gestern mich intensiev in python einzufinden, bisher betriebe ich nur rudimentäres C auf microcontrollern. Nun würde ich aber das ganze anders als mit nem Terminal an einen PC anbinden.
bisherige "Erfolge": Python 3.1 installiert, PySerial installiert. als lektüre hangle ich mich an galileo openbock "einstieg in Python 2.6" , diesem Forum und wiki.python-forum.de entlang.
so nun aber wollte ich simpler weise folgendes schreiben:
Code: Alles auswählen
import serial
print ("hallo welt")
ser = serial.Serial(0, 115200, timeout=20)
x = ser.read() # read one byte
print (x)
s = ser.read(10) # read up to ten bytes (timeout)
print (s)
line=ser.readline() # read a '\n' terminated line
print (line)
ser.close()
TypeError: Can't convert 'bytes' object to str implicitlclsy
Soweit ich mittlerweile verstehe, liefert er mir einen byte string zurück aus ascii zeichen, python 3.n hat einen neuen datentyp bytes eingeführt und betrachtet aber alles als strings in unicode. So, in C würde ich sagen casten, aber wie geht das hier??
mit lesen und suchen habe ich den gestrigen abend zu gebracht
auch der versuch, das so zu lösen:
Code: Alles auswählen
import serial
ser = serial.Serial(0, 115200, timeout=20)
x = ser.read() # read one byte
s = ser.read(10) # read up to ten bytes (timeout)
while s != '\n':
s = ser.read()
x = s + x
print(s)
print (x)
print (x)
ser.close()
Ich hab wohl ein grundproblem damit, das python automatisch den wertetyp zuweist.
bis denn
Mischa