我创建这段代码是为了从ttyUSB0上的串行设备读取数据,然后将其打印在连接到pi的LCD显示器上。我让它在一定程度上工作,但在我的LCD显示器上,它正在打印字节符号“b”,然后是我的读数。它们是一种忽略“b”的方式吗
我的代码:
import time
import serial
import I2C_LCD_driver
mylcd = I2C_LCD_driver.lcd()
print ("Starting Program")
ser = serial.Serial("/dev/ttyUSB0", baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
time.sleep(1)
try:
ser.write("12345".encode('utf-8'))
print ("data echo mode enabled")
while True:
if ser.inWaiting() > 0:
data = ser.read(size=7)
print ("Weight", data, "kg")
mylcd.lcd_display_string("Weight" + str(data), 1)
except KeyboardInterrupt:
print ("Exiting Program")
except:
print ("Error Occurs, Exiting Program")
finally:
ser.close()
pass
对字节对象调用
str
将返回一个包含引号和b前缀的字符串,例如:相反,请尝试使用
decode
:因此,对于您的代码,这将是
mylcd.lcd_display_string("Weight" + data.decode(), 1)
相关问题 更多 >
编程相关推荐