Ich schreibe etwas Code von einer seriellen Schnittstelle zu lesen und den ganzzahligen Wert der empfangenen Daten zurückzugeben.Konvertieren von Daten der seriellen Schnittstelle in Ganzzahl
Es scheint, dass ich die "\r\n"
daraus entfernen muss. Ich habe versucht zu splitten, aber es funktioniert nicht.
Hier ist mein Code:
import time
import serial
import string
ser = serial.Serial(
port='/dev/ttyACM1',
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
counter = 0
while 1:
x = ser.readline()
if "t" in x:
print x
x = int(x)
print x
print "temp"
elif "h" in x:
print "hum "
elif "g" in x:
print "gas "
else:
pass
time.sleep(1)
Dann habe ich diesen Fehler:
Traceback (most recent call last):
File "/home/pi/read.py", line 26, in <module>
x=int(x)
ValueError: invalid literal for int() with base 10: 't0\r\n'
Könnte mir jemand helfen?
Sie müssen die Buchstaben entfernen, das 't' ist, was Ihr Problem verursacht – Copperfield
Fehler ist klar - Eingabezeichenfolge kann nicht in int konvertiert werden (da gibt es" t "in Zeichenfolge, wie würden Sie es in int eindeutig konvertieren?) Sie müssen eine Vorverarbeitung für "t" durchführen, bevor Sie versuchen, sie zu konvertieren. Welche Art von Verarbeitung? Ich lass es dich selbst herausfinden. –