我尝试在我的树莓派上的2004液晶屏上定义一个新字符(一个大写德语umlaut "Ä"),使用wiringPi的
这是我的代码。
当我运行这段代码时,我得到了以下错误:
在代码的另一个部分,我使用
如何将数组强制转换/转换为可以接受的类型?
附言(请注意(据我所了解),Python wiringPi库仅包装了wiringPi的C函数) [编辑]
我在github上提出了一个问题:https://github.com/WiringPi/WiringPi2-Python/issues/20
lcdCharDef()
。这是我的代码。
import wiringpi2 as wiringpi
# Ä
cap_umlaut_a = [
int('0b01010', 2),
int('0b00100', 2),
int('0b01010', 2),
int('0b10001', 2),
int('0b11111', 2),
int('0b10001', 2),
int('0b10001', 2),
int('0b00000', 2)
]
print(cap_umlaut_a) # [10, 4, 10, 17, 31, 17, 17, 0]
wiringpi.lcdCharDef(lcd_handle, 0, cap_umlaut_a)
当我运行这段代码时,我得到了以下错误:
我期望这些整数与无符号字符相同。 [编辑]TypeError: 在方法'lcdCharDef'中,第3个参数的类型为'unsigned char [8]'
在代码的另一个部分,我使用
ord(char)
将只有一个字符转换为无符号整数。这会导致正确的答案吗?如何将数组强制转换/转换为可以接受的类型?
附言(请注意(据我所了解),Python wiringPi库仅包装了wiringPi的C函数) [编辑]
我在github上提出了一个问题:https://github.com/WiringPi/WiringPi2-Python/issues/20
chr()
不起作用,而byte()
在 Python 中不是内置类型。 - speendocap_umlaut_a = ''.join(chr(x) for x in cap_umlaut_a)
。看看这是否有效。 - Patrick Maupin