我有一个 HD44780 LCD 屏幕,我一直在使用 Arduino 开发包提供的 LiquidCrystal 库。然而,这并不可靠。我注意到它的一些问题,它不是由中断驱动,而是只要开发人员认为芯片应该用来执行操作,它就会休眠。

从规范表中,BUSY 标志将在执行时设置,这意味着它可以被中断驱动。

有谁知道一个真正做到这一点的库,它是否需要连接所有 8 位,或者我可以将它保持在 4 个引脚?

最佳答案

我认为你不需要为此打断。查看 Arduino 发行版中的 LiquidCrystal.cpp,您只需要更改 LiquidCrystal::write4bitsLiquidCrystal::write8bitsLiquidCrystal::pulseEnable 代码。前两种方法应该从写数据前监听忙线(BD7)开始,修改最后一种,去掉100us的暂停。

我认为默认代码中没有这样做的原因是这些 LCD 的许多用户只是将 R/W 接地,因此显示器始终处于写入模式,从而无法读取 BUSY 信号。但是,这是通过将 _rw_pin 设置为 -1 来传递到库中的,因此脉冲和写入代码可以有条件地使用 r/w 引脚作为检测忙的一种方式来优化速度。

关于io - 用于 Arduino 的中断驱动 HD44780 库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1822571/

10-10 14:59