通过串口向 LCD 发送控制字符

问题描述 投票:0回答:0

我有代码,我曾经在

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

知道我需要在这里更改什么吗?

python python-3.x serial-port lcd
© www.soinside.com 2019 - 2024. All rights reserved.