美文网首页
TFTLCD显示

TFTLCD显示

作者: 简小黑 | 来源:发表于2019-06-05 15:27 被阅读0次

    TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。


    模块使用流程.PNG

    步骤:
    1 ) 设置 STM32 与 与 TFTLCD 模块相连接的 IO 。
    这一步,先将我们与 TFTLCD 模块相连的 IO 口进行初始化,以便驱动 LCD。这里需要根据连接电路以及 TFTLCD 模块的设置来确定。
    2 ) 初始化 TFTLCD 模块。
    即图 16.1.4 的初始化序列,这里我们没有硬复位 LCD,因为 MiniSTM32 开发板的 LCD 接口,将 TFTLCD 的 RST 同 STM32 的 RESET 连接在一起了,只要按下开发板的 RESET 键,就会对 LCD 进行硬复位。初始化序列,就是向 LCD 控制器写入一系列的设置值(比如伽马校准),这些初始化序列一般 LCD 供应商会提供给客户,我们直接使用这些序列即可,不需要深入研究。在初始化之后,LCD 才可以正常使用。
    3 ) 通过函数将字符和数字显示到 TFTLCD 模块上。
    这一步则通过图 16.1.4 左侧的流程,即:设置坐标写 GRAM 指令写 GRAM 来实现,但是这个步骤,只是一个点的处理,我们要显示字符/数字,就必须要多次使用这个步骤,从而达到显示字符/数字的目标,所以需要设计一个函数来实现数字/字符的显示,之后调用该函数,就可以实现数字/字符的显示了。

    可以修改LCD长宽型号等参数便于移植。
    封装的主要函数有:
    void LCD_Init(void); //初始化
    void LCD_DisplayOn(void); //开显示
    void LCD_DisplayOff(void); //关显示
    void LCD_Clear(u16 Color); //清屏
    void LCD_SetCursor(u16 Xpos, u16 Ypos); //设置光标
    void LCD_DrawPoint(u16 x,u16 y); //画点
    void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color); //快速画点
    u16 LCD_ReadPoint(u16 x,u16 y); //读点
    void LCD_Draw_Circle(u16 x0,u16 y0,u8 r); //画圆
    void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2); //画线
    void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2); //画矩形
    void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color); //填充单色
    void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color); //填充指定颜色
    void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode); //显示一个字符
    void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size); //显示一个数字
    void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode); //显示 数字
    void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p); //显示一个字符串,12/16字体

    void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue);
    u16 LCD_ReadReg(u16 LCD_Reg);
    void LCD_WriteRAM_Prepare(void);
    void LCD_WriteRAM(u16 RGB_Code);
    void LCD_Scan_Dir(u8 dir); //设置屏扫描方向
    void LCD_Display_Dir(u8 dir); //设置屏幕显示方向
    void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height); //设置窗口
    STM32Cube移植
    (1)分析
    硬件用开发板已经连接好,主要是软件对端口的一些初始化配置。还有驱动的移植。
    (2)TFTLCD模块接口

    TFTLCD模块接口.PNG
    CS:TFTLCD 片选信号。
    WR:向 TFTLCD 写入数据。
    RD:从 TFTLCD 读取数据。
    D[15:0]:16 位双向数据线。
    RST:硬复位 TFTLCD。
    RS:命令/数据标志(0,读写命令;1,读写数据)。
    (3)移植
    直接将lcd.c delay.c移植到程序中,并移植delay.h,sys.h,lcd.h,font.h到Inc文件夹中。几乎不用做修改就可以使用。delay.c中的delay_init可以删除(时钟频率已经配置好)。使用时,在主程序中直接先LCD初始化,再直接使用lcd函数即可。

    相关文章

      网友评论

          本文标题:TFTLCD显示

          本文链接:https://www.haomeiwen.com/subject/rucrxctx.html