尝试使LCD 20x4工作。但我得到了一个错误:
错误消息="无法将序列乘以'float'类型的非int。">
这是抛出错误的行:
string = " " * (LCD_WIDTH / 2 - len(string) / 2) + string + " " * ((LCD_WIDTH - 1) / 2 - len(string) / 2)
它应该将文本居中显示在LCD上。这是完整的代码:
def lcd_display_string(self, string, line, mode = 1):
if line == 1:
self.lcd_write(0x80)
if line == 2:
self.lcd_write(0xC0)
if line == 3:
self.lcd_write(0x94)
if line == 4:
self.lcd_write(0xD4)
if mode == 0: # left alignment
string = string + " " * (LCD_WIDTH - len(string))
if mode == 1: # centered
string = " " * (LCD_WIDTH / 2 - len(string) / 2) + string + " " * ((LCD_WIDTH - 1) / 2 - len(string) / 2)
if mode == 2: # right alignment
string = " " * (LCD_WIDTH - len(string)) + string
for char in string:
self.lcd_write(ord(char), Rs)
模式0和2正常
您的问题已正确识别:表达式
" " * ((LCD_WIDTH - 1) / 2 - len(string) / 2)
无效,因为右边的数字是浮点值。只需使用整数运算。
" " * ((LCD_WIDTH - 1) // 2 - len(string) // 2)