EK-LM3S8962扩展TFT之GRLIB图形界面心得

shilaike   2011-3-2 10:59 楼主

       本人将申请到的EK-LM3S8962扩展了一块TFT(ST7781R),然后利用grlib库做界面。

         由于IO口不够用,本人使用的是SSI模块进行数据的传输,可想而知,速度跟不上。但还将就了,主要是分享心得了。

以后用EPI加AMD做,速度自然上去了。

 

      下面给出主函数。

      如果哪位使用的TFT的控制器与本人相同,可以向本人要底层驱动,这些驱动完全自己所写。

一个一个实验过的。

    关于全用GRLIB的操作,在这个word中有详细说明。不懂的同志可以问我。

 

    这里就不贴图了。。。。。

   /********************************************************************
程序名称:工程模板
硬件环境:EK-LM3S8962学习板
软件环境:keil 4.12   DRL:6734 GRL:6734
创建日期:2011.1.7
修改日期:2011.1.7
使用者  :史莱克 QQ:1005450581 Email:lchhzjx32226@qq.com
版   本:R1.0
程序说明:

********************************************************************/

#include "config.h"
#include "InitSystem.h"


//定义一个矩形框结构体
tRectangle ul_shilaike_Rect;

 

const tDisplay ul_shilaike_Dis={
 sizeof(tDisplay),
  0,
  240,       // LCD width
  320,       // LCD height
  PixelDraw,
 //(void*)0,
 PixelDrawMultiple ,
 LineDraw_H,
 LineDraw_V,
 RectFill,
 ul_Color_Translate,
 ul_Flush};

 

tContext ul_shilaike_Context;

/********************************************************************
函数名称:main()
函数入口:无
函数出口:无
函数说明:系统主函数
********************************************************************/
int main(void)
{
 //u32 count;
 InitClock();
 //InitUART0(38400);
 Lcd_Init();
 
 ClearScreen(C_black);

 GrContextInit(&ul_shilaike_Context, &ul_shilaike_Dis);

 //GrCircleDraw(&ul_shilaike_Context, 100,100, 50) ;

 ul_shilaike_Rect.sXMin=0;
 ul_shilaike_Rect.sYMin=0;
 ul_shilaike_Rect.sXMax=GrContextDpyWidthGet(&ul_shilaike_Context) - 1;
 ul_shilaike_Rect.sYMax=320;

/* GrContextForegroundSet(&ul_shilaike_Context, ClrMediumBlue);
 GrRectFill(&ul_shilaike_Context, &ul_shilaike_Rect);

    GrContextForegroundSet(&ul_shilaike_Context, ClrLime);   
    GrContextFontSet(&ul_shilaike_Context, &g_sFontCm20);   
    GrStringDrawCentered(&ul_shilaike_Context, "Hello eeworld !", -1,
                         GrContextDpyWidthGet(&ul_shilaike_Context) / 2, 120, 0);*/

 //TiLogDraw();
 //DispNum(&ul_shilaike_Context,12.021,100,50);
 /*GrContextForegroundSet(&ul_shilaike_Context, ClrLime);
 GrContextFontSet(&ul_shilaike_Context,&g_sFontAlger50);
 GrStringDraw(&ul_shilaike_Context,"CORTEX!",-1,5,200 ,true);*/
 
 GrImageDraw(&ul_shilaike_Context,g_pucImage,100,100);
 GrImageDraw(&ul_shilaike_Context,g_pucImage1,40,100);
 GrImageDraw(&ul_shilaike_Context,g_pucImage1,90,160);
 GrContextForegroundSet(&ul_shilaike_Context, ClrLightSteelBlue);
 GrContextFontSet(&ul_shilaike_Context, &g_sFontAlger40);   
    GrStringDrawCentered(&ul_shilaike_Context, "CORTEX!", -1,
                         GrContextDpyWidthGet(&ul_shilaike_Context) / 2, 250, 0);


 

 while (1)
 {
   WidgetMessageQueueProcess(); 
 }
}

 

  g_sFontAlger40这是一个字体数组结构,是本人利用TI提供的工具软件将xp系统的一块TTF字体转换而成的。效果与在电脑上面的效果一样。


 

只有想不到,没有做不到。

回复评论 (9)

不错哦

就是好难写哦    牛人啊..
点赞  2011-3-2 12:37
贴个图多好 呵呵
点赞  2011-3-2 14:13
SPI方式操作TFT还没有用过,学习了
点赞  2011-3-2 16:26
楼主是否用按键控制屏幕上显示的东西呢,比如说菜单?
点赞  2011-3-3 14:09
差不多,不过不是用key控制,而是touch来实现的。
只有想不到,没有做不到。
点赞  2011-3-3 18:58
好久不搞这个了,后来发现,ti这个库做复杂的界面还是力不从心。。。
点赞  2011-3-5 23:34

回复 7楼 zhengjiewen 的帖子

呵呵。用UCGUI吧。或者MINIGUI。我在LINUX下用的就是MINIGUI的。
        很明显强大很多了。
只有想不到,没有做不到。
点赞  2011-3-6 09:50

回复 8楼 shilaike 的帖子

嗯,现在就是用的UCGUI,感觉也很好用。我正在把uCGUI向电视上移植。。。。
点赞  2011-3-6 13:48

回复 9楼 zhengjiewen 的帖子

呵呵。。。厉害。。。。。顶。。。
只有想不到,没有做不到。
点赞  2011-3-6 18:05
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复