ESP32_Arduino_TFT_eSPI的使用记录

ESP32_Arduino_TFT_eSPI

  • 前言
  • 关于TFT_eSPI
    • User_Setup_Select.h
    • User_Setup.h

前言

貌似在国内,使用Arduino的框架方式去开发某个项目并不流行,看起来在使用单片机开发的时候,都是自己从底层开始。很巧的是,最近使用ESP32开发的某个项目的基础原型,用的是Arduino框架,这个项目的原作者是一位外国人,与他聊天表示十分友好hhhhh。这里可以重新说明一下关于这个项目的开发框架。ESP32的开发方式有两种:

  • 一种是基于乐鑫官方提供的ESP-IDF的方式,使用ESP32-SDK进行开发。
  • 另一种是基于Arduino框架的方式进行开发。

然而事实是这样的,不管是使用IDF还是Arduino,都是基于原始的SDK进行的,而Arduino只是对SDK再进行了一次接口封装而已。

关于TFT_eSPI

对于Arduino来说,现成库是很多很多的,就像人家搭好的梯子你直接拿来用。而TFT_eSPI就是一个很现成的例子。项目中由于需要驱动一个LCD+Touch,LCD使用的是ST7796S,touch芯片使用的是XPT2046。这看起来就是很经典、淘宝上很常见的LCD模块。遇见这样的,当然首先很开心,因为有很多代码可以用,因此通过查阅资料,果断使用TFT_eSPI这个库,github地址如下:
https://github.com/Bodmer/TFT_eSPI
将它放入工程的位置之后,就可以用了。但事情并没有想象中顺利:
1)由于自己使用的屏幕是480320,而TFT_eSPI提供的ST7796驱动用的是320240,因此是不能直接驱动使用的。
2)由于屏幕、触控的电路是自己设计的,与别的配置不一样,也是不能直接使用的。
因此万事还是要有底层的认识。先来看看TFT_eSPI的组成。
ESP32_Arduino_TFT_eSPI的使用记录_第1张图片
从文件夹组成来看,并不算复杂,而我们只需要关注这几个就可以了,就算是TFT_eSPI,再牛逼的库,底子都应该是用SPI或其它所驱动,这个是核心,因此引脚的定义是首要的。

User_Setup_Select.h

可以从这个文件中找到定义,事实上如果是用淘宝上买的通用的模块的话,直接用一下的宏就可以了,看看哪个适合自己用哪个
在这里插入图片描述
直接开启就可以了。然后在里面配置引脚号。
ESP32_Arduino_TFT_eSPI的使用记录_第2张图片
但前面也说了,并不是通用型的,所以这里就选用自定义的:
在这里插入图片描述
在这里,其实包含了所有驱动在里面自己定义来选,这里就示范一次怎么定义一个属于自己的LCD驱动。

User_Setup.h

1)选择自己的LCD型号
ESP32_Arduino_TFT_eSPI的使用记录_第3张图片
2)先屏蔽一些默认开启的引脚
ESP32_Arduino_TFT_eSPI的使用记录_第4张图片
3)找到适合芯片使用的引脚配置的地方(事实上不一定要在这里,其实别的地方也行,因为名字是一样的),如果有触控就把Touch也配置好。
ESP32_Arduino_TFT_eSPI的使用记录_第5张图片
4)屏蔽原有的字库(看自己需求,TFT_eSPI是自带有一个UI界面的)
ESP32_Arduino_TFT_eSPI的使用记录_第6张图片
5)配置SPI的速度
ESP32_Arduino_TFT_eSPI的使用记录_第7张图片
如果使用淘宝的模块,现在直接初始化基本上可以用了,但自己的,还需要修改,
6)修改初始化配置
先找到这里,进入这头文件里面,
在这里插入图片描述
参考现成的,直接修改成自己的参数配置
ESP32_Arduino_TFT_eSPI的使用记录_第8张图片
至此,已经修改完成了。剩下的直接参考demo那样初始化就可以了,触控也是可以直接用的,但是只适用于XPT2046。

你可能感兴趣的:(ESP32,ESP32,TFT_eSPI)