ESP32使用TFT_eSPI库实现屏幕触摸

news/2025/2/19 5:53:03/

文章目录

  • 软件准备
  • 引脚连接
  • 程序上传

软硬件:ESP-WROOM-32、Arduino、2.8寸240*320触摸屏(ILI9341驱动)
以下是开发板和屏幕实物
在这里插入图片描述
在这里插入图片描述

软件准备

1、在Arduino中搜索安装TFT_eSPI库。
2、找到TFT_eSPI的安装目录,个人根据电脑用户名、安装目录不同有所差异,可以参照我的路径寻找:C:\Users\ZJC\Documents\Arduino\libraries\TFT_eSPI。
3、打开User_Setup.h文件,首先选择屏幕驱动,这里用的屏幕驱动为ILI9341,那么将#define ILI9341_DRIVER取消注释。
在这里插入图片描述往下找到以下行,这是默认针对ESP8266的引脚定义,由于这里使用的是ESP32,将它们注释掉。
在这里插入图片描述
再往下,找到以下代码,这是针对ESP32的引脚定义,将它们取消注释。
在这里插入图片描述
最后记得保存。
4、打开User_Setup_Select.h文件,根据注释找到合适的include语句,取消其注释,比如这里屏幕使用的ILI9341和ESP32开发板,则将#include <User_Setups/Setup42_ILI9341_ESP32.h>这行取消注释即可。
在这里插入图片描述
5、打开User_Setups文件夹,打开上一步选择的.h文件,这里就是Setup42_ILI9341_ESP32.h文件,因为将要同时实现显示和触摸功能,将框中的代码取消注释,这个定义的是触摸SPI片选引脚,即将触摸的T_CS引脚连接ESP32的D5引脚。
在这里插入图片描述
如果第5步没有完成,在Arduino编译时可能出现以下错误:'class TFT_eSPI' has no member named 'getTouch'
在这里插入图片描述

引脚连接

上面第5步的截图中定义了屏幕与ESP32的引脚连接,为什么触摸部分只有一个TOUCH_CS呢?因为触摸和显示是分为两个模块,它们都使用SPI与ESP32进行通信。

因为SPI通信的引脚在不同地方叫法比较多,在这里可按以下简单归为同一引脚:MISO(SDO)、MOSI(SDI)、SCLK(CLK)

因此触摸部分的T_CLK与TFT_SCKL连接,根据以上定义T_CS连接ESP32的D5,T_DIN连接SDI(MOSI),根据定义T_DO连接ESP32的D19,T_IRQ不连接。

显示部分按照上图中的引脚定义接线即可,但是SDO(MISO)不接线,否则后面会导致异常。

触摸和显示有两根线是共用的,这就是SPI中一个主设备对多个从设备,ESP32是通过控制触摸和显示的CS来选择控制哪个设备。

程序上传

打开示例程序TFT_eSPI—Generic—Touch_calibrate,编译上传。
在这里插入图片描述
如果一切正常,会先出现屏幕校准(因为是电阻屏),如果跳过会导致触摸位置偏移,校准完后就可进行触摸了。
在这里插入图片描述
在这里插入图片描述
代码中的x、y就是触摸的坐标,根据此坐标即可判断位置
在这里插入图片描述


http://www.ppmy.cn/news/905194.html

相关文章

TFT 屏幕的使用——ESP32学习笔记(番外)

零、前言 最近在搞tft屏幕&#xff0c;遇到了非常多的困难&#xff0c;这个笔记主要帮助的是和我一样比较小白的单片机初学者&#xff0c;在这里我用到的板子是ESP32&#xff0c;用的屏幕是单工SPI通信协议的一块屏幕。 一、准备工作 在这里我们准备写入驱动程序&#xff0c;这…

嵌入式Linux驱动笔记(二十四)------framebuffer之使用spi-tft屏幕(上)

你好&#xff01;这里是风筝的博客&#xff0c; 欢迎和我一起交流。 最近入手了一块spi接口的tft彩屏&#xff0c;想着在我的h3板子上使用framebuffer驱动起来。 我们知道&#xff1a; Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功…

[个人笔记] WinSrv批量添加DNS记录和条件转发器记录

Windows Server - 运维篇 第三章 WinSrv批量添加DNS记录和条件转发器记录 Windows Server - 运维篇系列文章回顾WinSrv批量添加DNS记录和条件转发器记录单条记录添加DNS条件转发器记录批量新增DNS条件转发器记录批量导出DNS条件转发器 参考来源 系列文章回顾 第一章 域控使用C…

Arduino UNO驱动合宙1.8‘TFT SPI屏幕示例演示(含资料包)

Arduino UNO驱动合宙1.8"TFT SPI屏幕示例演示 效果展示 驱动参考资料包 来源于&#xff1a;http://www.lcdwiki.com/zh/1.8inch_Arduino_SPI_Module_ST7735S_SKU:MAR1801资料包中2种驱动方式&#xff1a;模拟SPI和硬件SPI驱动方式 1.8inch Arduino SPI Module ST7735S…

linux驱动tft屏幕,Linux2.6.26.5加入TFT-LCD驱动

首先下载内核源码&#xff0c;我这里用的是linux-2.6.26.5的内核源码。本文引用地址&#xff1a;http://www.eepw.com.cn/article/148334.htm (1) 在arch/arm/mach-s3c2410/mach-smdk2410.c里添加头文件&#xff1a; #include (2) 在arch/arm/ plat-s3c24xx / commON-smdk.c文件…

microPython驱动tft屏幕显示中文终极解决方案

microPython驱动tft屏幕显示中文终极解决方案 一、运行效果 二、实现原理 原理同上篇文章一样&#xff0c;用在线汉字取模工具获取点阵的字节信息&#xff0c;通过st7789py.py驱动程序显示出来。 上次的程序只能显示部分汉字&#xff0c;需要显示哪些字自己去在线网站取模&a…

STM32驱动ST7789V2 tft屏幕

一 . 简介 本次教程使用的是1.54寸240*240像素的tft屏幕&#xff0c;其接口协议为SPI协议。在使用的过程中仅需要四根数据即可驱动点亮屏幕。然后硬件使用的是STM32F103C8T6核心板&#xff0c;用的是SPI2。一般购买屏幕的话它们会提供对应的例程&#xff0c;直接拿过来修改即可…

TFT屏幕使用(CUBEMX+SPI)

目 录 1.SPI 2.SPIDMA 1.SPI 使用SPI通信协议的器件有很多&#xff0c;这里以TFT屏驱动为ST7735为例。 设置SPI&#xff0c;因为我使用的是STM32F107ZGT的板子所以我的SPI 速度能达到 42M&#xff0c;还需要设置其它的控制引脚。 引脚设置如下所示。 /*GPIO的宏定义…