问题总结:set_cursor(0,0) 将文本带到 (2,1) 和 set_cursor(0,1) 将文本带到 (3,1),文本在第 2 行之前转到虚构的第 3 行,就像 20x4 显示器一样。
我修改了 Python 代码以使用 Raspberry Pi Pico。
- 将“import sys,wiringpi”替换为“from machine import Pin,I2C”
- 用 I2C.writeto_mem() 替换了 Wiringpi.wiringPiI2CWriteReg8()
- 添加了用于故障排除的 set_cursor_custom 方法(无济于事)
- 用 I2C 替换了 Wiringpi.wiringPiI2CSetup()
- 为自定义引脚号添加了 sda、scl 和 i2cn 关键字到init
当我使用以下脚本运行它时(完全包含在 zip 中):
import RGB1602
import time
from machine import Pin, I2C
lcd=RGB1602.RGB1602(16,2, sda=Pin(14), scl=Pin(15), i2cn=1)
#set the cursor to column 0, line 1
lcd.set_cursor(0, 0)
lcd.print_out("abcdefgh")
lcd.set_cursor(0, 1)
lcd.print_out("ABCDEFG")
以下文本打印到屏幕上:(破折号表示空格,便于计数)
-- |
--aABCDEFG |
这不是预期的行为。预期的行为是:
abcdefgh |
ABCDEFG |
另一个不满是文本没有正确转到下一行。当我运行以下脚本(也在 zip 中)时:
import RGB1602
import time
from machine import Pin, I2C
lcd=RGB1602.RGB1602(16,2, sda=Pin(14), scl=Pin(15), i2cn=1)
lcd.print_out("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz")
它打印:
stuvwxyzijklmnop|
OPQRSTUVWXYZ1234|
而不是预期的:
abcdefghijklmnop|
qrstuvwxyzABCDEF|
请解决这个问题。谢谢你。
下面是测试文件的压缩包(修改后的lib和测试脚本 test&lib.zip
(改编自 GitHub 问题)
编辑:我想问题是:如何正确编辑库文件以实现预期的行为?