3263|4

97

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

(2)液晶显示模块LM6059驱动 [复制链接]

本帖最后由 lbbook 于 2022-3-1 00:49 编辑

 

1、液晶显示模块简介

LM6059BCW图形显示模块

主要参数如下

分辨率:128 x 64

接口:并口/串口

电压:3.3V

工作温度:-20°C70°C

外形尺寸:50.9mm x 40.9mm x 8.7mm

视窗:37.0mm x 28.0mm

官方显示效果如下:

  实物正反面如下图(旧实验板上拆下来的):

   

2、液晶显示模块接线

由于之前在STM32F103平台上已经移植过GPIO模拟串口驱动LM6059,因此这里也采用了IO模拟串口的方法。首先将LCD模块和开发板连接起来。

序号

GD32L233C

LM6059

功能

1

PB4

CS

片选

2

PB5

RES

复位

3

PB6

A0

区分显示数据和控制命令

4

PB7

SCL

串口时钟

5

PB8

SI

串口数据

6

3V3

VDD

模块电源正极3.3V

7

GND

VSS

模块电源地

  3、液晶显示模块程序

3.1 初始化GPIO

     /* enable the GPIO clock */

    rcu_periph_clock_enable(RCU_GPIOB);

    /* configure GPIO pin */

    gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8);

    gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8);

    /* reset GPIO pin */

    gpio_bit_reset(GPIOB, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8);

3.2 初始化IO状态

        SET_LCD_CS();

        SET_LCD_A0();

        SET_LCD_CLK();

SET_LCD_MOSI();

3.3 复位

SET_LCD_RST();

CLR_LCD_RST();

        delay_1ms(1);  //保持低电平至少2.5uS

        SET_LCD_RST();

        delay_1ms(1);  //重启后最多2.5uS就可以正常工作

3.4 初始化

         SdCmd(0xab);                     //new

         SdCmd(0xaf);            // display on

         SdCmd(0x40);            // display start line=0

         SdCmd(0xc8);            // Common output mode select= reverse

         SdCmd(0xa6);            // normal display

         SdCmd(0xa4);            // Duisplay all point = off

         SdCmd(0xa3);            // LCD bias = 1/9   a2

         SdCmd(0x2f);            // Power control = all on

         SdCmd(0x25);            // Rab Ratio     26

         SdCmd(0x81);            // E-Vol setting

         SdCmd(0x1A);            // (2byte command)Parameter.ContrastLevel

3.5 显示Hello World

    initLCDM();

    LCD_Display_12_12(0,16,(unsigned char *)"Hello World!");

    LCD_DrawLine(8,4,59,4);  //Y

    LCD_DrawLine(57,2,57,124);  //X

    LCD_Display_4_5(59,6,"0");  //0

    WriteScreen(DisplayBuffer);

 

3.6 移植要点

主要就是5GPIO的初始化,以及注意复位的延时时间。时序一般没有问题,也可对照下图检查一遍。

 

另外还有一个就是一般都是修改一个显示数组,但是如果没有将显示数组上传到模块的话是不会显示出来的。这个要注意,否则像我一样改了半天都没显示出来,还以为自己移植错误或者液晶模块损坏了,毕竟是拆机件。

 

附上部分程序:

LCD.c (10.63 KB, 下载次数: 21)

LCD.h (4.11 KB, 下载次数: 20)

font12x12.c (7.09 KB, 下载次数: 17)

font12x12.h (404 Bytes, 下载次数: 16)

font4x5.c (1 KB, 下载次数: 16)

font4x5.h (201 Bytes, 下载次数: 15)

此帖出自GD32 MCU论坛

最新回复

您好~显示汉字部分程序缺失,新手这部分看不是很懂,可以一起交流交流吗?或者给份文件或者函数~先行谢过了   详情 回复 发表于 2023-1-3 21:02
点赞(2) 关注(1)
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

如果没有将显示数组上传到模块的话是不会显示出来的。这是经验啊,谢谢提醒

此帖出自GD32 MCU论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
您好~看了您的例程,部分函数不是很明白~部分函数有缺失,麻烦问下您:能否发个完整的函数过程或者项目文件,谢过(抱拳)
此帖出自GD32 MCU论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

4
 
Mr.豪 发表于 2023-1-3 10:52 您好~看了您的例程,部分函数不是很明白~部分函数有缺失,麻烦问下您:能否发个完整的函数过程或者项目文件 ...

忘了留下联系方式:

2529986447@qq.com

先行谢过

此帖出自GD32 MCU论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

5
 
Jacktang 发表于 2022-3-4 07:31 如果没有将显示数组上传到模块的话是不会显示出来的。这是经验啊,谢谢提醒

您好~显示汉字部分程序缺失,新手这部分看不是很懂,可以一起交流交流吗?或者给份文件或者函数~先行谢过了

此帖出自GD32 MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表