查看: 2135|回复: 3

[原创] 基于LM4F120XL开发板的串口TFT屏图像显示

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2016-11-17 10:14:04 | 显示全部楼层 |阅读模式
    分享到:
    LM4F120XL开发板不愧是基于32ARM Cortex-M4内核的开发板,单就程序空间来讲就达256KB FLASH,这就为图像显示提供了基本的条件。因为在程序存储空间比较小的情况下,如不使用SD卡类的大容量存储装置是无法解决图像存储问题的。有了大的程序空间,则可以将这些数据放到程序中,图1就是这样处理的效果。
    a.jpg
               图1 图像显示效果

    至于硬件的构成也十分简单,就是一块LM4F120XL开发板外加一块串口TFT显示屏,其实物构成如图2所示。此处使用串口屏的好处就在它可以有效地节省GPIO资源,尤其是对于一些引脚资源本身就不很多的MCU
    图片1.png
                图2 硬件构成

    要实现串口屏的显示,首先要确定串口屏与开发板的连接关系,其连接情况如下:
    REST --PD.0    DC --PD.1   CS --PD.2   SDI --PD.3   SCK --PD.6
        为此,相应引脚输出高低电平的定义语句如下:
    #define LCD_SCK_High()        GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_6, GPIO_PIN_6)
    #define LCD_SCK_Low()              GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_6, 0)
    #define LCD_SDI_High()         GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_3, GPIO_PIN_3)
    #define LCD_SDI_Low()              GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_3, 0)
    #define LCD_CS_High()         GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_2, GPIO_PIN_2)
    #define LCD_CS_Low()              GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_2, 0)
    #define LCD_DC_High()                 GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_1, GPIO_PIN_1)
    #define LCD_DC_Low()                GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_1, 0)
    #define LCD_REST_High()               GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_0, GPIO_PIN_0)
    #define LCD_REST_Low()            GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_0, 0)
    图像被存放在sh.h的文件中,其存储结构如下:
    const unsigned char gImage_sh[80000] =
    { /* 0X10,0X10,0X00,0XC8,0X00,0XC8,0X01,0X1B, */
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
    .........
    }

    以显示一幅200*200像素的16位色生肖图像为例,其显示函数为:
    1. void show_image(unsigned int x,unsigned int y) //200*200
    2. {  
    3.         unsigned int i,j,k;
    4.         unsigned int da;
    5.         k=0;
    6.         for(i=0;i<200;i++)
    7.         {       
    8.                 LCD_SetCursor(x,y+i);
    9.                 LCD_WriteRAM_Prepare();                             //????GRAM       
    10.                 for(j=0;j<200;j++)
    11.                 {
    12.                         da=gImage_sh[k*2];
    13.                         da<<=8;
    14.                         da|=gImage_sh[k*2+1];
    15.                         LCD_WR_DATA(da);                                       
    16.                         k++;  
    17.                 }
    18.         }
    19. }
    复制代码
    当然从广义上讲,文字也是一种图像,在配置自定义小字库的情况下,就能轻松地产生出图3的界面效果。总之,为LM4F120XL开发板配上图像显示功能能把我们带入一个更丰富多彩的世界。
    图片2.png
               图3 文字显示效果

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-7-30 11:40
  • 签到天数: 1792 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2016-11-17 10:25:20 | 显示全部楼层
    ti的板子不错,顶一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 15:56
  • 签到天数: 2675 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2016-11-17 10:56:52 | 显示全部楼层
    板子不错,屏也不错,感谢分享。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2016-11-18 08:09:51 | 显示全部楼层
    多谢了!!!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2025-1-12 10:45 , Processed in 0.129543 second(s), 21 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.