带IIC模块的LCD1602显示屏使用遇到的问题

        最近采用LCD1602模块做了一个简单项目,把STM32F103采集的信号显示出来,由于电路板采用现成的,只能使用IIC接口,因此直接采购了带IIC模块的LCD1602显示屏。期间遇到了一些问题,把它整理出来,供有缘人参考。

         程序参照了wx1458084829发布的LCD1602模块-带IIC转接板文章,只不过改成了标准库,感谢原作者。

        显示屏用5V供电,STM32F103接口电平是3.3V,注意初始化IIC时采用开漏输出。另外,使用SWD接口仿真器时,仿真器跟电路板之间不要连接3.3V,只连接JTCK、JTMS、GND3根线,否则调试时会碰到让人困惑的问题。

        仿真时第一次运行显示正常,LCD初始化程序如下:  

     IIC_Init();
    //设置4bit模式
    delay_ms(50);                                   
    WriteHalfCommand(0x20);
    delay_ms(10);                                   
    WriteFullCommand(0x28);    //0x28  4线操作模式   0x38 8线模式 
    delay_ms(10);                                   
    WriteFullCommand(0x28);    
    WriteFullCommand(0x08);
    WriteFullCommand(0x0C);    //开启显示、不显示光标、不闪烁光标
    WriteFullCommand(0x06);    //文字不动,地址自动加1
    WriteFullCommand(0x01);    //清屏
    delay_ms(1);    

遇到的最大问题是STM32F103复位时显示屏显示不正常,此时LCD1602没有复位,再按上述程序对显示屏初始化,引起显示异常。经测试,改进程序如下:

    IIC_Init();
    //设置4bit模式
    delay_ms(50);                                   
    WriteFullCommand(0x02);    
    delay_ms(10);                                   
    WriteFullCommand(0x28);    //0x28  4线操作模式   0x38 8线模式 
    delay_ms(10);                                   
    WriteFullCommand(0x28);   
    WriteFullCommand(0x08);
    WriteFullCommand(0x0C);   //开启显示、不显示光标、不闪烁光标
    WriteFullCommand(0x06);    //文字不动,地址自动加1
    WriteFullCommand(0x01);    //清屏
    delay_ms(1);    

     显示屏显示正常。

     希望遇到此现象的朋友参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值