ESP32使用TFT_eSPI库实现屏幕触摸

文章目录
软硬件:ESP-WROOM-32、、2.8寸240*320触摸屏(驱动)
以下是开发板和屏幕实物
软件准备
1、在中搜索安装库 。
2、找到的安装目录 , 个人根据电脑用户名、安装目录不同有所差异 , 可以参照我的路径寻找:C:\Users\ZJC\\\\ 。
3、打开.h文件 , 首先选择屏幕驱动 , 这里用的屏幕驱动为 , 那么将# 取消注释 。
往下找到以下行 , 这是默认针对的引脚定义 , 由于这里使用的是ESP32 , 将它们注释掉 。
再往下 , 找到以下代码 , 这是针对ESP32的引脚定义 , 将它们取消注释 。
最后记得保存 。
4、打开.h文件 , 根据注释找到合适的语句 , 取消其注释 , 比如这里屏幕使用的和ESP32开发板 , 则将# 这行取消注释即可 。
5、打开文件夹 , 打开上一步选择的.h文件 , 这里就是2.h文件 , 因为将要同时实现显示和触摸功能 , 将框中的代码取消注释 , 这个定义的是触摸SPI片选引脚 , 即将触摸的T_CS引脚连接ESP32的D5引脚 。
如果第5步没有完成 , 在编译时可能出现以下错误:'class ' has nonamed ''
引脚连接
上面第5步的截图中定义了屏幕与ESP32的引脚连接 , 为什么触摸部分只有一个呢?因为触摸和显示是分为两个模块 , 它们都使用SPI与ESP32进行通信 。
因为SPI通信的引脚在不同地方叫法比较多 , 在这里可按以下简单归为同一引脚:MISO(SDO)、MOSI(SDI)、SCLK(CLK)
因此触摸部分的T_CLK与连接 , 根据以上定义T_CS连接ESP32的D5 , T_DIN连接SDI(MOSI) , 根据定义T_DO连接ESP32的D19 , T_IRQ不连接 。
显示部分按照上图中的引脚定义接线即可 , 但是SDO(MISO)不接线 , 否则后面会导致异常 。
触摸和显示有两根线是共用的 , 这就是SPI中一个主设备对多个从设备 , ESP32是通过控制触摸和显示的CS来选择控制哪个设备 。
【ESP32使用TFT_eSPI库实现屏幕触摸】程序上传
打开示例程序—— , 编译上传 。
如果一切正常 , 会先出现屏幕校准(因为是电阻屏) , 如果跳过会导致触摸位置偏移 , 校准完后就可进行触摸了 。
代码中的x、y就是触摸的坐标 , 根据此坐标即可判断位置