1. 硬件配置
1.1 ESP32 + TFT 彩屏
-
本篇中的 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