1.硬件连接接触不良、虚焊。
2.LCD初始化函数写的不好,偶尔上电后初始化失败,就不能显示。建议上电延时一段时间,待LCD稳定后在执行初始化函数。
3.程序上要注意读写时序,加入适当的延时时间。
4.调节LCD第三脚V0的电压,调节到一个合适的值才可以显示。
先查硬件,确定没问题再在软件上找原因,只要细心,没有什么解决不了!祝你好运!
物理上的可靠连接,不表示线路中的信号就是理想状态,有时候要考虑到彼此之间的干扰,以及线路上的电感电容带来的影响.
此外,有时候可以有时候不行,也不能表示程序没有问题,而只能说你的程序在时序逻辑上问题不大,但在具体的信号处理方面,有可能是因为速度太快,超过了LCM的反应速度,造成偶尔的错误状态,也可能导致不显示.
从你所说的现象来看,估计是你的程序在时间上恰好处于某一个门槛值,因此在一定的条件下,LCM能够正确地响应和显示,而其它的时间则不能正确地响应和显示.
因此,你可以先尝试着将每一个操作之间加一点延时试试,比如说,切换读和写之后,延时几条指令,再进行实际的读和写,以及在两次写入之间,也加一些类似的延时,等等.
有时可以有时不可以显示证明程序没有问题,那么肯定是硬件电路的问题了,看看是否有虚焊,接插是否牢靠,电源电压是否偏低,基本如此。
延长LCM复位时间