LM4F120XL开发板不愧是基于32位ARM Cortex-M4内核的开发板,单就程序空间来讲就达256KB FLASH,这就为图像显示提供了基本的条件。因为在程序存储空间比较小的情况下,如不使用SD卡类的大容量存储装置是无法解决图像存储问题的。有了大的程序空间,则可以将这些数据放到程序中,图1就是这样处理的效果。
图1 图像显示效果
至于硬件的构成也十分简单,就是一块LM4F120XL开发板外加一块串口TFT显示屏,其实物构成如图2所示。此处使用串口屏的好处就在它可以有效地节省GPIO资源,尤其是对于一些引脚资源本身就不很多的MCU。
图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位色生肖图像为例,其显示函数为: - void show_image(unsigned int x,unsigned int y) //200*200
- {
- unsigned int i,j,k;
- unsigned int da;
- k=0;
- for(i=0;i<200;i++)
- {
- LCD_SetCursor(x,y+i);
- LCD_WriteRAM_Prepare(); //????GRAM
- for(j=0;j<200;j++)
- {
- da=gImage_sh[k*2];
- da<<=8;
- da|=gImage_sh[k*2+1];
- LCD_WR_DATA(da);
- k++;
- }
- }
- }
复制代码当然从广义上讲,文字也是一种图像,在配置自定义小字库的情况下,就能轻松地产生出图3的界面效果。总之,为LM4F120XL开发板配上图像显示功能能把我们带入一个更丰富多彩的世界。 图3 文字显示效果
|