树莓派3运行RPLCD代码遇TypeError报错的解决方法
解决RPLCD CharLCD构造函数报错:TypeError: this constructor takes no arguments
这个报错是因为你用的RPLCD库版本(v0.4及以上)已经更新了API,原来直接通过CharLCD()传引脚参数的方式已经被废弃,现在需要用类方法来创建实例。
修正后的代码
直接改用CharLCD.from_pins()方法初始化LCD即可:
from RPLCD import CharLCD # 使用from_pins类方法替代直接实例化 lcd = CharLCD.from_pins(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23]) lcd.write_string(u'Hello world!')
额外说明
如果你的树莓派引脚模式不是默认的BOARD(比如用BCM编号),可以在参数里指定pin_mode:
lcd = CharLCD.from_pins( cols=16, rows=2, pin_rs=26, pin_e=24, pins_data=[22, 18, 16, 12], pin_mode='BCM' )
为什么原来的代码会报错?
在RPLCD v0.4之后的版本中,官方重构了类的结构:CharLCD的构造函数不再直接接收引脚相关参数,而是把硬件初始化的逻辑拆分到了from_pins(GPIO引脚连接)、from_i2c(I2C连接)等类方法中,直接调用CharLCD()自然会提示“构造函数不接受参数”。
内容的提问来源于stack exchange,提问作者Vikash Sharma
相关产品推荐
相关产品推荐

