极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26802|回复: 2

【教程】ITead TFT-LCD触摸显示屏现成驱动库使用方法

[复制链接]
发表于 2014-7-31 17:55:50 | 显示全部楼层 |阅读模式
本帖最后由 ITEAD创易工作室 于 2014-12-2 17:39 编辑

Itead studio主营两种TFT-LCD。一种是带有arduino标准接口的扩展板,而另一种是模块。有些客户在买了TFT-LCD和主板回去组合安装,烧程序进去之后发现显示屏还是一片空白,无法显示东西。我们梳理了一下客户的反馈意见,发现主要有两个原因:一是配件没有买齐全,二是没有将程序中的model参数修改正确。


由于ITDB02系列的LCD模块只能在3V电流下工作,并且不能直接叠加到Arduino UNO/MEGA主板上,所以在使用这一系列模块的时候必须添加一个Arduin UNO/MEGA专用扩展板。其组合为ITDB02 LCD模块+Arduino UNO/MEGA专用扩展板+Arduino UNO/MEGA主板。除此之外,专用扩展板同时支持3V和5V的主板,所以它能兼容多种Arduino MEGA主板,例如DUE。

以下是两种TFT LCD搭配UNO/MEGA的配件组装图:

下图是**ITEAD 3.2 TFT LCD扩展板 +Arduino MEGA**(2.4寸和2.8寸的TFT LCD扩展板也是同样直接叠加使用)

  

下图是**ITDB02-2.8 + ITDB02专用MEGA扩展板 + Arduino MEGA**

  

下图是**ITDB02-2.8 + ITDB02专用UNO扩展板 + Arduino UNO**

  

具体搭配组合使用请参照下面参数表:

  

确定自己所需的配件后,接下来我们将会简单介绍如何正确使用UTFT程序驱动TFT LCD的技巧。

下载UTFT库http://henningkarlsen.com/electronics/library.php?id=51,然后将压缩包解压到你的arduino安装目录下的**libraries**文件夹。

解压之后,你必须根据自己TFT-LCD的分辨率来打开相应的UTFT_Demo。例如ITEAD 3.2寸 TFT LCD扩展板,其分辨率为320x240,则可以打开名为UTFT_Demo_320x240的程式。

打开demo后的下一步就是修改model参数。

对应“√”使用2009Duemilanove/UNO/Leonardo开发板的TFT  LCD引脚定义使用以下这行代码:

    UTFTmyGLCD(<model>,19,18,17,16);

其中的model请依据表格里的对应参数填入。例如ITDB02-2.8-8bits,其代码为

    UTFTmyGLCD(ITDB28,19,18,17,16);

对应“√”使用MEGA/DUE开发板的TFT  LCD引脚定义使用以下这行代码:

    UTFTmyGLCD(<model>,38,39,40,41);

Model也是依据表格里的对应参数填入。例如ITDB02 2.8-16bits,其代码为

    UTFT myGLCD(TFT01_24_16,38,39,40,41);


以下是UTFT代码upload步骤:关键就是根据自己的TFT LCD类型选择填写正确的<model>

  

以下是烧程序进去之后TFT-LCD显示的画图效果。



以上是UTFT的画图功能,下面介绍的是屏幕的触摸功能,使用的是UTouch库文件。

注意:目前由于UTouch的demo版本更新,暂不支持使用2009Duemilanove /UNO/Leonardo开发板的测试,这个问题将尽快解决。以下使用的是MEGA/DUE开发板为例。

UTouch库文件下载地址: http://henningkarlsen.com/electronics/library.php?id=55  解压**UTouch.rar**这个安装包到libraries文件夹里。

接下来的首要工作是对屏幕校对。使用UTouch demos里的**UTouch_Calibration**

  

有两处地方是需要做参数修改的。第一处同样是修改model参数。修改方式与UTFT demo的修改方式相同。都是将模块对应的model参数填入以下代码中。

    UTFT    myGLCD(<model>,38,39,40,41);

例如ITDB02-2.8-8bits,其代码为:

    UTFTmyGLCD(ITDB28,38,39,40,41);

第二处需要修改的地方就是选择正确的主板类型相对应的引脚:

    // StandardArduino Uno/2009 Shield            :15,10,14, 9, 8
    // StandardArduino Mega/Due shield            :  6, 5, 4, 3, 2
    // CTE TFTLCD/SD Shield for Arduino Due      :  6, 5, 4, 3, 2
    // Teensy 3.xTFT Test Board                   : 26,31,27,28,29
    // ElecHouseTFT LCD/SD Shield for Arduino Due : 25,26,27,29,30

因为我们使用的是MEGA/DUE主板的标准专用扩展板,所以使用以下对应代码:   

UTouch  myTouch(6, 5, 4, 3, 2);

下一步,你可以将程序烧进主板。当频幕出现一个图标的时候,你必须用一只触摸笔点击图标。尽量不要使用手指去碰触,使用手指得到的校对值是很不准确的。当最后屏幕出现三个校对值的时候,你可以将这三个值拿到以下网址去检验。

     http://henningkarlsen.com/electronics/t_cal_verify.php

如果在尝试多次之后,检验结果都显示不合格,你可以在下方的按钮里获取参考值。

最后就是将你的测试值或者获取的参考值复制进**UtouchCD.h**文档里,然后保存。

  
完成了校对之后,你就可以在TFT-LCD模块上运行UTouch其他的demos或者你自己写的demos。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-1-8 14:27:57 | 显示全部楼层
http://yuntv.letv.com/bcloud.html?uu=7ddc155d09&amp;vu=41de4d5166&amp;auto_play=1   

刷161帧(20个循环,每次循环刷了8个颜色(红白橙黄绿蓝靛紫),由于拍摄的色差问题,看上去不清楚,,加上最后一帧格子颜色,20*8+1=161)用时96.72秒,刷一帧就是0.600745,这个单片机的频率是16M/s,spi的速度(2分频)就是8M/s,因为这个是转16bit数据传输,每传一个像素spi就需要传(1个字节的cmd+2字节的data+1字节的cmd)=4个字节,总共就320*240个像素;spi就需要传320*240*5=307200字节=2.34375Mbit,spi传输的时间就是2.34375/8=0.292969秒,代码执行的时间就是0.307776秒;
相关信息
http://item.taobao.com/item.htm?id=43365578074
回复 支持 反对

使用道具 举报

发表于 2015-1-8 14:32:35 | 显示全部楼层
http://yuntv.letv.com/bcloud.html?uu=7ddc155d09&amp;vu=41de4d5166&amp;auto_play=1   

spi lcd  每秒刷2帧 适合arduino uno r3
刷161帧(20个循环,每次循环刷了8个颜色(红白橙黄绿蓝靛紫),由于拍摄的色差问题,看上去不清楚,,加上最后一帧格子颜色,20*8+1=161)用时96.72秒,刷一帧就是0.600745,这个单片机的频率是16M/s,spi的速度(2分频)就是8M/s,因为这个是转16bit数据传输,每传一个像素spi就需要传(1个字节的cmd+2字节的data+1字节的cmd)=4个字节,总共就320*240个像素;spi就需要传320*240*5=307200字节=2.34375Mbit,spi传输的时间就是2.34375/8=0.292969秒,代码执行的时间就是0.307776秒;
相关信息
http://item.taobao.com/item.htm?id=43365578074
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-7 03:55 , Processed in 0.047333 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表