我有代码,我曾经在
Python 2
中写入 LCD 屏幕,它运行良好。我可以控制诸如光标、颜色、亮度之类的东西,显示我需要的文本并更新它。从那以后,我将我的代码转换为python 3
,这已经破坏了一些东西,屏幕上有正确的文本,但现在有很多乱码。它也没有改变到正确的颜色,在错误的地方写东西等等。我可以手动写文本,这样就可以了,看来问题出在写控制字符上。
工作于
Python 2
:
def __write(self, value):
self.__serial.write(str(value))
# for commands that need control characters, start with 0xfe etc
def __write_array(self, array_values):
array_values.insert(0, 0xfe)
for item in array_values:
self.__write(chr(item))
对于
Python 3
我已经改变了写函数来发送字节:
def __write(self, value):
self.__serial.write(str(value).encode())
这工作正常,写入屏幕:
self.__serial.write("test".encode())
这里是其中一个函数的示例,它改变了 LCD 颜色(例如
0xd0, 0, 255, 0
将是绿色)并且 __write_array() 的数组是 [254, 208, 0, 255, 0]
:
def set_background_color(self, value):
_check_color(value)
self.__state.background_color = value
red = value[0]
green = value[1]
blue = value[2]
self.__write_array([0xd0, red, green, blue])
self.__state.background_color = value
time.sleep(0.01)
一些数据以字符串形式写入文件的示例:
�þ�~Q^P^B�þT�þK�þ�~Y�~H�¾P�~H�þ@System Booting �þ�~P^@^@�ÿ þX�þH�þH�þH �þ�~P^@^@�ÿ�þ�~Y�~H�¾P�~H�þH�þH �þ�~P^@^@�ÿ�þ�~Y�~H�¾P�~H�þ�~P^@�ÿ^@�þH�þHa
知道我需要在这里更改什么吗?