自己手里有几块STM32的开发板,一直想用来作为家用控制系统的主控板。作为主控板,没有显示部分,是很不方便进行调试和控制的,虽然有调试时有串口可供使用,但是实际工作时,是不可能一直连着电脑的。所以追加显示部分,就变得很紧要了。于是上网买了两种显示用的液晶,一个是0.96英寸的OLED,一个是基于PCF8574控制的IIC方式的LCD602。之所以选择这两种,一个原因是因为自己不想在这方面花太多的钱,一个是考虑工作电压的匹配。这两样拿到手以后,马上就进行了测试,OLED的那个,无论是用51系列单片机控制,还是ESP8266开发板控制,都没有问题。唯独LCD602不行,即使是使用网店提供的例程,两种开发板的驱动都没有成功。为了确认到底是程序不对,还是显示板本身的故障,开始上网查找解决方案。花了几个小时,最终找到了一个解决方案,并且通过实机验证,确认没有问题。以下是解决过程,使用的是Arduino程序,外加第三方开发包:
启动Arduino
启动管理库
在管理库的窗口中,在检索栏,输入“LiquidCrystal_PCF8574”
选择安装LiquidCrystal_PCF8574开发包。安装完成后,重新启动Arduino,打开示例工程“LiquidCrystal_PCF8574”
注1:LiquidCrystal_PCF8574开发包安装成功后,在
C:\Users\xxx\Documents\Arduino\net\libraries\目录下会出现LiquidCrystal_PCF8574目录,子目录中会有名为LiquidCrystal_PCF8574_Test的测试工程
注2:有关的资料,详见https://www.mathertel.de/Arduino/LiquidCrystal_PCF8574.aspx这个网站
将ESP8266开发板和IIC LCD602开发板连接好,如下图:
因为是要联机调试,所以那个额外的+5电源直接使用USB口提供的5V电源。确认连接无误,通过USB连结线连接到电脑上。在Arduino中,选择“Gedneric ESP8266 Module”这个开发板,通过菜单“工具”—>“端口”,选择ESP8266开发板所在的串行端口,修改程序中涉及IIC端口地址的代码(第四行),和你的PCF8574所在的端口匹配一致,
然后执行编译下载。编译过程会花点时间,高低忍耐一会儿,直到你的LCD1602液晶出现“Hello LCD”,这就OK了。
通过这个测试,说明了显示板是没有问题的。那么下一步,就是如何调整IIC的51驱动,来完成显示驱动了。
一个题外话哈,因为前几天自己手贱,重新安装了一个64位的MinGW,替代老早以前安装的32位MinGW,结果导致整个Arduino的编译出了问题,任何以前测试过没有问题的程序,都编译不过去,卡在一个名为“C++congfig.h”的头文件,检查MinGW安装目录,确实不存在这个文件。实在没办法,卸载这个64位的MinGW,重新安装了32位的,然后为了保险,又重新安装了一个最新版本的Arduino。之后Arduino的程序开发终于又恢复了正常。