ESP32_驱动TFT彩屏_Arduino
一、我们用到的库
1、库的简单介绍
库下载链接(github)
TFT_eSPI
TFT_eSPI
支持各种常用的驱动芯片,比如 ST7735
、ST7789
、ILI9341
等,兼容性较好
2、关于库的安装
第一种方式就是在Arduino的库管理器中, 搜索TFT_eSPI
,然后点击安装即可
第二种方式就是通过GIT直接从github
上下载, 库的下载链接放到了最上面。下载之后是ZIP文件,由于我使用的是VScode的PlatformIO的编译环境,所以是使用的添加路径的形式。
关于这部分的操作请参考,PlatformIO自定义库设置
二、修改自定义库驱动文件
1、找到库的安装路径
由于TFT_eSPI库包含了不同的彩屏驱动,所以我们需要进行一定的配置。
我们找到我们的库安装路径,如果你是使用GIT通过clone
方式克隆的库,那么路径肯定是已经知道的, 如果是通过Arudino
的库管理器下载的,那么可以通过以下方式找到自己的库下载路径
文件——首选项
进入这个文件路径后,可以找到自己的库下载路径。
找到自己的路径以后,我们直接找到 User_Setuo.h
这个文件,根据自己的使用的TFT彩屏的类型进行选择
2、设置彩屏的驱动芯片类型
3、设置屏幕的宽高
4、设置彩屏的IO引脚
5、字库配置,如果内存足够,就无需修改
6、SPI的频率配置,默认即可
7、在User_Setup_Select.h中选择用户自定义配置
这一部分,库文件默认已经注释,如果出现自定义配置无法生效的问题, 可以看一下是不是这里没有注释的原因
到这里就完成了TFT_eSPI库的配置。
三、颜色和字体
1、颜色
对于彩屏来讲,显示颜色的原理同彩色RGBLED灯原理一致,在TFT中一般使用16位的RGB565
颜色。
在TFT_eSPI.h
中,已经将典型的颜色定义好了
/***************************************************************************************
** Section 6: Colour enumeration
***************************************************************************************/
// Default color definitions
#define TFT_BLACK 0x0000 /* 0, 0, 0 */
#define TFT_NAVY 0x000F /* 0, 0, 128 */
#define TFT_DARKGREEN 0x03E0 /* 0, 128, 0 */
#define TFT_DARKCYAN 0x03EF /* 0, 128, 128 */
#define TFT_MAROON 0x7800 /* 128, 0, 0 */
#define TFT_PURPLE 0x780F /* 128, 0, 128 */
#define TFT_OLIVE 0x7BE0 /* 128, 128, 0 */
#define TFT_LIGHTGREY 0xD69A /* 211, 211, 211 */
#define TFT_DARKGREY 0x7BEF /* 128, 128, 128 */
#define TFT_BLUE 0x001F /* 0, 0, 255 */
#define TFT_GREEN 0x07E0 /* 0, 255, 0 */
#define TFT_CYAN 0x07FF /* 0, 255, 255 */
#define TFT_RED 0xF800 /* 255, 0, 0 */
#define TFT_MAGENTA 0xF81F /* 255, 0, 255 */
#define TFT_YELLOW 0xFFE0 /* 255, 255, 0 */
#define TFT_WHITE 0xFFFF /* 255, 255, 255 */
#define TFT_ORANGE 0xFDA0 /* 255, 180, 0 */
#define TFT_GREENYELLOW 0xB7E0 /* 180, 255, 0 */
#define TFT_PINK 0xFE19 /* 255, 192, 203 */ //Lighter pink, was 0xFC9F
#define TFT_BROWN 0x9A60 /* 150, 75, 0 */
#define TFT_GOLD 0xFEA0 /* 255, 215, 0 */
#define TFT_SILVER 0xC618 /* 192, 192, 192 */
#define TFT_SKYBLUE