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的组成。

从文件夹组成来看,并不算复杂,而我们只需要关注这几个就可以了,就算是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。

ESP32_Arduino_TFT_eSPI的使用记录相关推荐

  1. ESP32:使用TFT_eSPI库驱动TFT串口屏

    目录 实验条件 软件部分 TFT_eSPI库的安装 配置文件 硬件部分 esp32 LCD串口屏 接线方式 实验部分 参考文章 本文使用 esp32结合 TFT_eSPI库点亮了一块 ILI9341驱 ...

  2. mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引

    在项目中,常常要用到联合唯一   在一些配置表中,一些列的组合成为一条记录.   比如,在游戏中,游戏的分区和用户id会形成一条记录.(比如,一个qq用户可以在艾欧尼亚.德玛西亚创建两个账号) 添加联 ...

  3. 实现 连续15签到记录_MySQL和Redis实现用户签到,你喜欢怎么实现?

    现在的网站和app开发中,签到是一个很常见的功能 如微博签到送积分,签到排行榜 微博签到 如移动app ,签到送流量等活动, 移动app签到 用户签到是提高用户粘性的有效手段,用的好能事半功倍! 下面 ...

  4. 记录一次http请求失败的问题分析

    问题背景 当前我有一个基于Flask编写的Restful服务,由于业务的需求,我需要将该服务打包成docker 镜像进行离线部署,原始服务的端口是在6661端口进行开启,为了区分,在docker中启动 ...

  5. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  6. LeetCode简单题之学生出勤记录 I

    题目 给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':Pre ...

  7. 关于TVM的点滴记录

    关于TVM的点滴记录

  8. MySql数据库Update批量更新与批量更新多条记录的不同值实现方法

    批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...

  9. 记录篇,自己在项目中使用过的。

    图片选择器,6.0已经适配过,类似qq空间上传 点击打开链接_胡小牧记录 下面是效果图: PictureSelector PhotoPicker 类似qq空间发布心情. 点击打开链接 BubbleSe ...

最新文章

  1. 解决nginx 502 bad gateway--团队的力量
  2. Java堆内存分配与回收策略
  3. 「MTA」的「錯誤訊息代碼」
  4. LDD3源码分析之字符设备驱动程序
  5. JavaScript简明教程之快速入门
  6. Caffe cuDNN
  7. C语言 floor四舍五入,Math函數的四舍五入,Floor,Ceiling,Round的一些注意事項!...
  8. 【2021牛客暑期多校训练营5】Double Strings(二维字符串dp)
  9. linux下c++版本线程池的实现
  10. 转载 一堂价值39万元的课,把她看完,你一定会有所获!
  11. taobao.itemprops.get( 获取标准商品类目属性 )
  12. 想通过手机刷视频赚钱?这篇文章你有必要了解一下
  13. 2. 匈牙利命名法
  14. c#接口是什么,为什么要用接口
  15. 自动化测试在美团外卖的实践与落地
  16. linux学习笔记(十一)-----linux中的虚拟机管理
  17. 支持向量机_6:Duality
  18. ie浏览器的兼容性问题总结
  19. Java内存模型:线程并发下的对象逸出
  20. 手机如何连接无线打印服务器,手机如何设置打印服务器的无线WiFi参数?(适用于WPS系列V5 V6)...

热门文章

  1. 路西法及堕落天使相关资料
  2. 快递查询小程序的源码
  3. 【ucharts】超详细介绍使用ucharts图表
  4. 快手智能处理与编码算法产品化之路
  5. ISO 11898 CAN FD数据传输格式标准(初级)
  6. 内固定取出术后护理_骨折内固定取出术后注意事项
  7. sketch android 切图,Sketch如何快速切图?三分钟教你掌握切图方案
  8. Java快速入门第一节
  9. 克琳:http://liyu.eu5.org
  10. 知识小结------数据分析------Bonferroni correction(邦费罗尼校正)