ESP32_Arduino_TFT_eSPI的使用记录

前言

貌似在国内,使用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的组成。
在这里插入图片描述
从文件夹组成来看,并不算复杂,而我们只需要关注这几个就可以了,就算是TFT_eSPI,再牛逼的库,底子都应该是用SPI或其它所驱动,这个是核心,因此引脚的定义是首要的。

User_Setup_Select.h

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

User_Setup.h

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值