极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12783|回复: 4

新手求助:恩孚TFT01 2.4 触摸屏驱动问题

[复制链接]
发表于 2013-8-24 11:01:30 | 显示全部楼层 |阅读模式
本帖最后由 迷你强 于 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? ... id=15532076064&

恩孚电子 TFT01 2.4'' 触摸 LCD 扩展板(该链接为新版,本人使用的是旧版):http://item.taobao.com/item.htm? ... &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前的注释。

代码如下:

  1. // UTouch_QuickDraw (C)2010-2012 Henning Karlsen
  2. // web: [url]http://www.henningkarlsen.com/electronics[/url]
  3. //
  4. // This program is a quick demo of how to use the library.
  5. //
  6. // This program requires the UTFT library.
  7. //
  8. // It is assumed that the display module is connected to an
  9. // appropriate shield or that you know how to change the pin
  10. // numbers in the setup.
  11. //

  12. #include <UTFT.h>
  13. #include <UTouch.h>

  14. // Uncomment the next two lines for the Arduino 2009/UNO
  15. UTFT        myGLCD(ITDB24E_8,A5,A4,A3,A2);   // Remember to change the model parameter to suit your display module!
  16. UTouch      myTouch(15,10,14,9,8);
  17. extern uint8_t SmallFont[];

  18. void setup()
  19. {
  20.   myGLCD.InitLCD();
  21.   myGLCD.clrScr();
  22.   myGLCD.setFont(SmallFont);
  23.   myTouch.InitTouch();
  24.   myTouch.setPrecision(PREC_MEDIUM);
  25. }

  26. void loop()
  27. {
  28.   long x, y;
  29.   
  30.   while (myTouch.dataAvailable() == true)
  31.   {
  32.     myTouch.read();
  33.     x = myTouch.getX();
  34.     y = myTouch.getY();
  35.     if ((x!=-1) and (y!=-1))
  36.     {
  37.       myGLCD.drawPixel (x, y);
  38.     }
  39.     myGLCD.fillScr(0, 0, 255);
  40.     myGLCD.setColor(255, 0, 0);
  41.     myGLCD.fillRoundRect(80, 70, 239, 169);
  42.    
  43.     myGLCD.setColor(255, 255, 255);
  44.     myGLCD.setBackColor(255, 0, 0);
  45.     myGLCD.print("That's it!", CENTER, 93);
  46.     myGLCD.print("Restarting in a", CENTER, 119);
  47.     myGLCD.print("few seconds...", CENTER, 132);
  48.    
  49.     myGLCD.setColor(0, 255, 0);
  50.     myGLCD.setBackColor(0, 0, 255);
  51.     myGLCD.printNumI(x, CENTER, 210);
  52.     myGLCD.printNumI(y, CENTER, 225);
  53.   }
  54. }
复制代码


效果图如下:

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2013-8-24 13:13:06 | 显示全部楼层
触摸屏不是都需要校准下的么?
回复 支持 反对

使用道具 举报

发表于 2013-8-24 14:03:27 | 显示全部楼层
我最近也在弄触摸  也是巨坑  有一点你注意下  
用串口监视器看下坐标值  是不是大量出现坐标值一样 压力为0的数据
在图片上看来似乎你没摁它他就显示了坐标(不知道是记忆显示?)   反正我的是很多压力为0的数据
看见论坛上有个人自己买的裸电阻屏做触摸 问他也没见回 似乎他的没问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-24 17:16:43 | 显示全部楼层
理科生 发表于 2013-8-24 14:03
我最近也在弄触摸  也是巨坑  有一点你注意下  
用串口监视器看下坐标值  是不是大量出现坐标值一样 压力为 ...

谢谢!
图片显示是按了以后的效果。
图中的319,239,是x,y坐标,通过同样的方式我也是看到的TP_X=65535,TP_Y=65535,UTouch::touch_ReadData()返回的是0。触摸屏貌似在工作,就是不知道数据为什么不对。
UTouchCD.h中说要校正,但不知道怎么个弄!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-24 18:02:55 | 显示全部楼层
迷你强 发表于 2013-8-24 13:13
触摸屏不是都需要校准下的么?

使用驱动程序带的例程UTouch_Calibration进行校正,因为TP_X和TP_Y等于65535,所以无法正常校正。就是说获取的数据应该是有问题的。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 15:35 , Processed in 0.051677 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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