新手求助:恩孚TFT01 2.4 触摸屏驱动问题
本帖最后由 迷你强 于 2013-8-24 13:12 编辑使用恩孚2.4"TFT带触摸LCD屏,恩孚TFT shield V1.4,Zaduino MEGA 2560 R3实验LCD显示与触摸屏,用的是UTFT、UTouch库,LCD显示没有问题,可触摸屏一直搞不定,请高手给以指点。
UTFT、UTouch库下载地址:http://www.henningkarlsen.com/electronics/library.php?id=51
恩孚电子 TFT01 2.4'' 触摸 LCD:http://item.taobao.com/item.htm?spm=a1z10.3.w1017-2312220997.20.OxNK4L&id=15532076064&
恩孚电子 TFT01 2.4'' 触摸 LCD 扩展板(该链接为新版,本人使用的是旧版):http://item.taobao.com/item.htm?spm=2013.1.0.0.4CnFhj&id=14479230266
恩孚电子 TFT01 2.4'' 触摸 LCD资料包下载:http://pan.baidu.com/share/link?shareid=7325&uk=2099480123
现象是,触摸屏工作时获取的坐标永远都是(319,239),orientation参数换做PORTRAIT后为(319,0)。
注意:为了让扩展版在MEGA上运行,去掉D:\Program Files\Arduino\libraries\UTFT\hardware\avr\HW_AVR_defines.h文件#define USE_UNO_SHIELD_ON_MEGA 1前的注释。
代码如下:
// UTouch_QuickDraw (C)2010-2012 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a quick demo of how to use the library.
//
// This program requires the UTFT library.
//
// It is assumed that the display module is connected to an
// appropriate shield or that you know how to change the pin
// numbers in the setup.
//
#include <UTFT.h>
#include <UTouch.h>
// Uncomment the next two lines for the Arduino 2009/UNO
UTFT myGLCD(ITDB24E_8,A5,A4,A3,A2); // Remember to change the model parameter to suit your display module!
UTouch myTouch(15,10,14,9,8);
extern uint8_t SmallFont[];
void setup()
{
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);
}
void loop()
{
long x, y;
while (myTouch.dataAvailable() == true)
{
myTouch.read();
x = myTouch.getX();
y = myTouch.getY();
if ((x!=-1) and (y!=-1))
{
myGLCD.drawPixel (x, y);
}
myGLCD.fillScr(0, 0, 255);
myGLCD.setColor(255, 0, 0);
myGLCD.fillRoundRect(80, 70, 239, 169);
myGLCD.setColor(255, 255, 255);
myGLCD.setBackColor(255, 0, 0);
myGLCD.print("That's it!", CENTER, 93);
myGLCD.print("Restarting in a", CENTER, 119);
myGLCD.print("few seconds...", CENTER, 132);
myGLCD.setColor(0, 255, 0);
myGLCD.setBackColor(0, 0, 255);
myGLCD.printNumI(x, CENTER, 210);
myGLCD.printNumI(y, CENTER, 225);
}
}
效果图如下: 触摸屏不是都需要校准下的么? 我最近也在弄触摸也是巨坑有一点你注意下
用串口监视器看下坐标值是不是大量出现坐标值一样 压力为0的数据
在图片上看来似乎你没摁它他就显示了坐标(不知道是记忆显示?) 反正我的是很多压力为0的数据
看见论坛上有个人自己买的裸电阻屏做触摸 问他也没见回 似乎他的没问题:( 理科生 发表于 2013-8-24 14:03 static/image/common/back.gif
我最近也在弄触摸也是巨坑有一点你注意下
用串口监视器看下坐标值是不是大量出现坐标值一样 压力为 ...
谢谢!
图片显示是按了以后的效果。
图中的319,239,是x,y坐标,通过同样的方式我也是看到的TP_X=65535,TP_Y=65535,UTouch::touch_ReadData()返回的是0。触摸屏貌似在工作,就是不知道数据为什么不对。
UTouchCD.h中说要校正,但不知道怎么个弄! 迷你强 发表于 2013-8-24 13:13 static/image/common/back.gif
触摸屏不是都需要校准下的么?
使用驱动程序带的例程UTouch_Calibration进行校正,因为TP_X和TP_Y等于65535,所以无法正常校正。就是说获取的数据应该是有问题的。
页:
[1]