极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 43714|回复: 20

发个2.4 TFT 模块的库 希望能帮到大家

[复制链接]
发表于 2013-8-7 14:40:16 | 显示全部楼层 |阅读模式
在某宝上买的  价格不怎么贵大概30多吧  做个菜单显示什么的还不错   自己带触摸的
这是库文件 分两个 显示和触摸
大家自己改下格式吧

还不会用它显示  

有大神帮忙给写个代码吧

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2013-8-7 16:03:17 | 显示全部楼层
沙发    支持!!
回复 支持 反对

使用道具 举报

发表于 2013-8-7 16:03:56 | 显示全部楼层
怎么用  这个库  能说明一下么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 18:04:20 | 显示全部楼层
软件-蹄飞 发表于 2013-8-7 16:03
怎么用  这个库  能说明一下么?

具体也没怎么试过   这是在网上查到的一段代码  选择颜色 并且写字
  1. #include "TFTLCD.h"
  2. #include "TouchScreen.h"


  3. //Duemilanove/Diecimila/UNO/etc ('168 and '328 chips) microcontoller:



  4. #define YP A1  // must be an analog pin, use "An" notation!
  5. #define XM A2  // must be an analog pin, use "An" notation!
  6. #define YM  7 // can be a digital pin
  7. #define XP  6  // can be a digital pin

  8. #define TS_MINX 150
  9. #define TS_MINY 120
  10. #define TS_MAXX 920
  11. #define TS_MAXY 940

  12. // For better pressure precision, we need to know the resistance
  13. // between X+ and X- Use any multimeter to read it
  14. // For the one we're using, its 300 ohms across the X plate
  15. TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

  16. #define LCD_CS A3
  17. #define LCD_CD A2
  18. #define LCD_WR A1
  19. #define LCD_RD A0
  20. // optional
  21. #define LCD_RESET A4

  22. // Color definitions
  23. #define        BLACK           0x0000
  24. #define        BLUE            0x001F
  25. #define        RED             0xF800
  26. #define        GREEN           0x07E0
  27. #define CYAN            0x07FF
  28. #define MAGENTA         0xF81F
  29. #define YELLOW          0xFFE0
  30. #define WHITE           0xFFFF



  31. TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

  32. #define BOXSIZE 40
  33. #define PENRADIUS 3
  34. int oldcolor, currentcolor;

  35. void setup(void) {
  36.   Serial.begin(9600);
  37.   Serial.println("Paint!");
  38.   
  39.   tft.reset();
  40.   
  41.   uint16_t identifier = tft.readRegister(0x0);


  42.   tft.initDisplay();
  43.   tft.fillScreen(BLACK);
  44.   
  45.   tft.fillRect(0, 320-BOXSIZE, BOXSIZE, 320,MAGENTA );
  46.   tft.fillRect(BOXSIZE, 320-BOXSIZE, BOXSIZE, 320,BLUE );
  47.   tft.fillRect(BOXSIZE*2, 320-BOXSIZE, BOXSIZE, 320,CYAN );
  48.   tft.fillRect(BOXSIZE*3, 320-BOXSIZE, BOXSIZE, 320, GREEN);
  49.   tft.fillRect(BOXSIZE*4, 320-BOXSIZE, BOXSIZE, 320, YELLOW);
  50.   tft.fillRect(BOXSIZE*5, 320-BOXSIZE, BOXSIZE, 320, RED);
  51. // tft.fillRect(BOXSIZE*6, 0, BOXSIZE, BOXSIZE, WHITE);

  52. // tft.drawRect(0, 0, BOXSIZE, BOXSIZE, WHITE);
  53. currentcolor = RED;

  54.   pinMode(13, OUTPUT);
  55. }



  56. #define MINPRESSURE 10
  57. #define MAXPRESSURE 1000



  58. void loop()
  59. {
  60.   digitalWrite(13, HIGH);
  61.   Point p = ts.getPoint();
  62.   digitalWrite(13, LOW);


  63.   pinMode(XM, OUTPUT);
  64.   pinMode(YP, OUTPUT);
  65.   //pinMode(YM, OUTPUT);

  66.   // we have some minimum pressure we consider 'valid'
  67.   // pressure of 0 means no pressing!

  68.   if (p.z > MINPRESSURE && p.z < MAXPRESSURE) {

  69.    
  70.     if (p.y < (TS_MINY-5)) {
  71.       Serial.println("erase");
  72.      // press the bottom of the screen to erase
  73.       tft.fillRect(0, BOXSIZE, tft.width(), tft.height()-BOXSIZE, BLACK);
  74.       
  75.     }
  76.     // turn from 0->1023 to tft.width
  77.     p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0);
  78.     p.y = map(p.y, TS_MINY, TS_MAXY, tft.height(), 0);

  79.     if (p.y < BOXSIZE) {
  80.        oldcolor = currentcolor;

  81.   
  82.        if (p.x < BOXSIZE) {
  83.          currentcolor = RED;
  84.       //   tft.drawRect(0, 0, BOXSIZE, BOXSIZE, WHITE);
  85.        }
  86.        else if (p.x < BOXSIZE*2) {
  87.          currentcolor = YELLOW;
  88.        //  tft.drawRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, WHITE);
  89.        }
  90.        else if (p.x < BOXSIZE*3) {
  91.          currentcolor = GREEN;
  92.        //  tft.drawRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, WHITE);
  93.        }
  94.        else if (p.x < BOXSIZE*4) {
  95.          currentcolor = CYAN;
  96.       //   tft.drawRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, WHITE);
  97.        }
  98.        else if (p.x < BOXSIZE*5) {
  99.          currentcolor = BLUE;
  100.    //      tft.drawRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, WHITE);
  101.        }
  102.        else if (p.x < BOXSIZE*6) {
  103.          currentcolor = MAGENTA;
  104.        //  tft.drawRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, WHITE);
  105.        }
  106.       
  107.       // if (oldcolor != currentcolor) {
  108.      //     if (oldcolor == RED) tft.fillRect(0, 0, BOXSIZE, BOXSIZE,MAGENTA );
  109.     //      if (oldcolor == YELLOW) tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE,BLUE );
  110.     //      if (oldcolor == GREEN) tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE,CYAN );
  111.     //      if (oldcolor == CYAN) tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, GREEN);
  112.     //      if (oldcolor == BLUE) tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, YELLOW);
  113.     //      if (oldcolor == MAGENTA) tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, RED);
  114.      //  }
  115.     }
  116.     if (((p.y-PENRADIUS) > BOXSIZE) && ((p.y+PENRADIUS) < tft.height())) {
  117.       tft.fillCircle(240-p.x, 320-p.y, PENRADIUS, currentcolor);
  118.     }
  119.   }
  120. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2013-8-12 00:46:23 | 显示全部楼层
请问你实验过了吗?

这个触摸屏要占用几个pin?

看代码,需要占用5个。

TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-16 21:47:42 | 显示全部楼层
StrongZhu 发表于 2013-8-12 00:46
请问你实验过了吗?

这个触摸屏要占用几个pin?

我试过了  UNO的模拟 数字口基本全部占了  主要是他带了SD查扣  占了几个  触摸屏貌似是四个
回复 支持 反对

使用道具 举报

发表于 2013-9-4 17:39:43 | 显示全部楼层
TFT的主控芯片是哪个?不然怎么使用呢?
回复 支持 反对

使用道具 举报

发表于 2013-9-4 23:00:12 来自手机 | 显示全部楼层
表示有一个更强大的TFT库:utft  度娘一下即可!
回复 支持 反对

使用道具 举报

发表于 2013-9-4 23:01:52 来自手机 | 显示全部楼层
表示有一个更强大的TFT库:utft  带触摸:utouch
度娘一下即可!
回复 支持 反对

使用道具 举报

发表于 2014-5-18 21:18:08 | 显示全部楼层
貌似不知道主控芯片,没法用啊!
回复 支持 反对

使用道具 举报

发表于 2014-6-30 11:26:59 | 显示全部楼层
也有这个屏,哪位大虾能给个程序啊
回复 支持 反对

使用道具 举报

发表于 2014-6-30 12:10:01 | 显示全部楼层
貌似用的pin有点多
回复 支持 反对

使用道具 举报

发表于 2014-10-31 10:04:34 | 显示全部楼层
有结果了么
回复 支持 反对

使用道具 举报

发表于 2014-10-31 20:09:26 | 显示全部楼层
tft上显示用传感器显示汉字真坑爹,R3的内存都不够
回复 支持 反对

使用道具 举报

发表于 2015-1-25 12:58:38 | 显示全部楼层
继续求这个屏使用
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 15:25 , Processed in 0.044447 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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