【物联网初探】- 03 - ESP32 结合 TFT_eSPI 库标定 TFT 触摸屏 (Arduino IDE)

1. 硬件配置

1.1 ESP32 + TFT 彩屏

2. 触摸屏的参数标定

触摸屏在初始化时需要传入一组标定参数,利用 TFT_eSPI 库中的例子可以进行标定。

2.1 例程编译烧录
  • 打开 File - Examples - TFT_eSPI - Generic 中的 Touch_calibrate例程,编译并烧录至 ESP32。
2.2 屏幕四角标定
  • 按屏幕上的提示依次触摸四个角,在串口监视器中输出如下信息。

    19:09:50.647 -> // Use this calibration code in setup():
    19:09:50.647 ->   uint16_t calData[5] = { 255, 3591, 315, 3457, 5 };
    19:09:50.647 ->   tft.setTouch(calData);
    
  • 完成后,屏幕上提示绿色字样 Touch screen to test !,此时触摸屏幕会产生白色小点,触屏功能正常。

3. 触屏例程测试标定参数

3.1 例程编译烧录
  • File - Examples - TFT_eSPI - 480x320 中打开 Keypad_480x320 这个例子,代码较多,仅截取关键部分如下:

    #include "FS.h"
    #include <SPI.h>
    #include <TFT_eSPI.h>
    
    TFT_eSPI tft = TFT_eSPI(); 
    // 省略中间部分
    
    uint16_t calData[5] = { 255, 3591, 315, 3457, 5 };//定义标定参数
    
    void setup() 
    {
      Serial.begin(9600);
      tft.init();
      tft.setRotation(1);
      touch_calibrate(); // 标定参数读取
      tft.fillScreen(TFT_BLACK);
      tft.fillRect(0, 0, 240, 320, TFT_DARKGREY);
      tft.fillRect(DISP_X, DISP_Y, DISP_W, DISP_H, TFT_BLACK);
      tft.drawRect(DISP_X, DISP_Y, DISP_W, DISP_H, TFT_WHITE);
      drawKeypad();
    }
    
    void touch_calibrate() //利用标定后的参数
    {
      tft.setTouch(calData);
    }
    
  • 简单说明,将自行标定的参数放入有关触摸屏程序的 setup() 函数中,在 setup() 函数前定义标定参数 calData[5] ,在 setup() 函数中利用函数 tft.setTouch(calData); 来传入标定参数。

  • 这里我将原有例程中 touch_calibrate() 函数内全部删去,仅使用了 tft.setTouch(calData);

  • 编译并烧录,记得赋予串口权限,板子显示如下:

esp32 上 TFT

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值