10043|21

2641

帖子

0

TA的资源

五彩晶圆(中级)

楼主
 

新年献礼:LM3S8962开发板+2.8寸TFT移植过程及源码工程 [复制链接]

答应大家的教程有好几个了,今天有点空先补上一个,希望大家感兴趣

 

一、准备工作

1、开发板为坛子里搞活动试用的LM3S8962开发板,图片坛子里很多就不发了

2、2.8寸TFT彩屏,淘宝上选购的48元2.8寸带触摸(无山寨图标) TFT 液晶屏,个人感觉还是比较超值,显示效果很细腻,说是SONY手机的屏

http://item.taobao.com/item.htm?id=4896524706

3、排线或者杜邦线,看大家自己的爱好了,我接9B92开发板是用的排线,接8962用的杜邦线

 

二、电路连接示意图

三、移植驱动

我是在rdk-idm的6918开发板的代码上移植的,只需要修改drivers目录下的formike240x320x16_ili9320.c文件中的对应GPIO口定义即可

#define LCD_DATAH_BASE          GPIO_PORTA_BASE
#define LCD_DATAL_BASE          GPIO_PORTB_BASE
#define LCD_RST_BASE            GPIO_PORTG_BASE
#define LCD_RST_PIN             GPIO_PIN_0
#define LCD_RS_BASE             GPIO_PORTC_BASE
#define LCD_RS_PIN              GPIO_PIN_4
#define LCD_RD_BASE             GPIO_PORTC_BASE
#define LCD_RD_PIN              GPIO_PIN_5
#define LCD_WR_BASE             GPIO_PORTC_BASE
#define LCD_WR_PIN              GPIO_PIN_6
#define LCD_BL_BASE             GPIO_PORTC_BASE
#define LCD_BL_PIN              GPIO_PIN_7

 

主函数如下:

int
main(void)
{
    tContext sContext;
    tRectangle sRect;
    unsigned long ulUser0, ulUser1, ulLastIPAddr, ulIPAddr;
    unsigned char pucMACAddr[6];
    char pcBuffer[32];

    //
    // 初始化时钟
    //
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
                   SYSCTL_XTAL_8MHZ);


    SysTickPeriodSet(SysCtlClockGet() / TICKS_PER_SECOND);
    SysTickEnable();
    SysTickIntEnable();

    IntMasterEnable();

    //FlashUserGet(&ulUser0, &ulUser1);

    pucMACAddr[0] = 0x01;
    pucMACAddr[1] = 0x23;
    pucMACAddr[2] = 0x45;
    pucMACAddr[3] = 0x67;
    pucMACAddr[4] = 0x89;
    pucMACAddr[5] = 0xab;

    //lwIPInit(pucMACAddr, 0, 0, 0, IPADDR_USE_DHCP);
    lwIPInit(pucMACAddr, 0xc0a8010b, 0xffffff00, 0x00000000, IPADDR_USE_STATIC);
    //LocatorInit();
    //LocatorMACAddrSet(pucMACAddr);
    //LocatorAppTitleSet("RDK-IDM hello");
    //SoftwareUpdateInit(SoftwareUpdateRequestCallback);

    //
    // 初始化显示器驱动
    //
    Formike240x320x16_ILI9320Init();

    //
    // 打开背光
    //
    Formike240x320x16_ILI9320BacklightOn();

    //
    // 初始化显示器上下文
    //
    GrContextInit(&sContext, &g_sFormike240x320x16_ILI9320);

    //
    //  填充24行为蓝色
    //
    sRect.sXMin = 0;
    sRect.sYMin = 0;
    sRect.sXMax = GrContextDpyWidthGet(&sContext) - 1;
    sRect.sYMax = 23;
    GrContextForegroundSet(&sContext, ClrDarkBlue);
    GrRectFill(&sContext, &sRect);

    //
    // 画白色边框
    //
    GrContextForegroundSet(&sContext, ClrWhite);
    GrRectDraw(&sContext, &sRect);

    //
    // 显示用应用程序名称
    //
    GrContextFontSet(&sContext, &g_sFontCm20);
    GrStringDrawCentered(&sContext, "hello", -1,
                         GrContextDpyWidthGet(&sContext) / 2, 11, 0);

    //
    // 显示 hello eeworld
    //
    GrContextFontSet(&sContext, &g_sFontCm40);
    GrStringDrawCentered(&sContext, "Hello EEWorld!", -1,
                         GrContextDpyWidthGet(&sContext) / 2,
                         ((GrContextDpyHeightGet(&sContext) - 24) / 2) + 24,
                         0);

    //
    // Display the MAC address (so that the user can perform a firmware update
    // if required).
    //
    usprintf(pcBuffer,
             "MAC: %02x-%02x-%02x-%02x-%02x-%02x",
             pucMACAddr[0], pucMACAddr[1], pucMACAddr[2], pucMACAddr[3],
             pucMACAddr[4], pucMACAddr[5]);
    GrContextFontSet(&sContext, &g_sFontCm20);
    GrStringDrawCentered(&sContext, pcBuffer, -1,
                         GrContextDpyWidthGet(&sContext) / 2,
                         GrContextDpyHeightGet(&sContext) - 20, 0);


    //
    // Flush any cached drawing operations.
    //
    GrFlush(&sContext);

    //
    // Assume we don't have an IP address yet.
    //
    ulLastIPAddr = 0;

    //
    // Loop until someone requests a remote firmware update.  Inside the loop,
    // we check the IP address and update the display.  This information is
    // needed to allow someone to configure the LMFlash application to update
    // the board but the IP address is likely not available by the time we
    // get here initially.
    //
    while(!g_bFirmwareUpdate)
    {
        //
        // What is our current IP address?
        //
        ulIPAddr = lwIPLocalIPAddrGet();

        //
        // If it changed, update the display.
        //
        if(ulIPAddr != ulLastIPAddr)
        {
            ulLastIPAddr = ulIPAddr;

            usprintf(pcBuffer, "IP: %d.%d.%d.%d",
                     ulIPAddr & 0xff, (ulIPAddr >> 8) & 0xff,
                     (ulIPAddr >> 16) & 0xff,  ulIPAddr >> 24);
            GrStringDrawCentered(&sContext, pcBuffer, -1,
                                 GrContextDpyWidthGet(&sContext) / 2,
                                 GrContextDpyHeightGet(&sContext) - 40, 0);
        }
    }

    //
    // If we drop out, a remote firmware update request has been received.
    //

    //
    // Tell the user what's up
    //
    GrContextFontSet(&sContext, &g_sFontCm40);
    GrStringDrawCentered(&sContext, "  Updating...  ", -1,
                         GrContextDpyWidthGet(&sContext) / 2,
                         ((GrContextDpyHeightGet(&sContext) - 24) / 2) + 24,
                         true);

    //
    // Transfer control to the bootloader.
    //
    //SoftwareUpdateBegin();

    //
    // The boot loader should take control, so this should never be reached.
    // Just in case, loop forever.
    //
    while(1)
    {
    }
}

完整工程代码如下: hello.rar (928.02 KB, 下载次数: 295)

 

显示效果如下:

[ 本帖最后由 fengzhang2002 于 2011-1-9 15:07 编辑 ]

最新回复

为啥我的下载都一半就未响应,是因为太大了么?  详情 回复 发表于 2012-4-28 13:57
 
点赞 关注

回复
举报

849

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
顶。。。。
 
个人签名只有想不到,没有做不到。
 

回复

918

帖子

0

TA的资源

纯净的硅(中级)

板凳
 

回复 楼主 fengzhang2002 的帖子

:D 顶,学习了。
 
 
 

回复

210

帖子

0

TA的资源

一粒金砂(高级)

4
 
哈哈,斑竹,终于看到了。我想问个问题,ti的那个9b92驱动lcd是不是直接连接到EPI了?速度有好快?
 
 
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

5
 

回复 4楼 zhengjiewen 的帖子

9B92我移植9320没有用EPI,ssd2119驱动用的EPI,感觉速度差不多
 
 
 

回复

545

帖子

0

TA的资源

一粒金砂(高级)

6
 
很不错啊。支持
 
 
 

回复

1万

帖子

16

TA的资源

版主

7
 

不错顶下

 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

8
 
我的神哪,飞线帝~
 
 
 

回复

2734

帖子

0

TA的资源

裸片初长成(初级)

9
 
楼主好强大啊,顶你,绝对的牛人
 
个人签名我爱电子!
 
 

回复

70

帖子

0

TA的资源

一粒金砂(中级)

10
 
你这例程不就是TI提供的么?
 
 
 

回复

154

帖子

0

TA的资源

纯净的硅(初级)

11
 
cs信号,直接接地和接15k电阻接地有什么区别呢?
 
 
 

回复

431

帖子

0

TA的资源

一粒金砂(高级)

12
 
一定要顶
 
 
 

回复

431

帖子

0

TA的资源

一粒金砂(高级)

13
 
工程包里面有几个文件没有,LZ重发一次
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(高级)

14
 
和楼主在同一家店铺买液晶,说时候这一家店铺卖的液晶很不错,尤其是3。5寸 320x480点阵的。
 
 
 

回复

546

帖子

0

TA的资源

一粒金砂(高级)

15
 
好啊!很精彩
 
 
 

回复

179

帖子

0

TA的资源

一粒金砂(中级)

16
 

回复 楼主 fengzhang2002 的帖子

楼主,请问你做没做过用EPI挂载TFT液晶屏的实验呢,如果有这方面的经验还请不吝赐教。谢谢
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

17
 

学习了,感谢楼主分享
 
个人签名hj
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

18
 

学习了,感谢楼主分享
 
个人签名hj
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

19
 
真的可以吗,为什么我的不成功啊。我是用的LMS811 加TFT 做的,我的是ILI9335的,可以移植你的这个程序吗。

[ 本帖最后由 zhang1234bbcc 于 2012-4-13 13:45 编辑 ]
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

20
 
可以搞个视频看下嘛版主
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表