TFT_eSPI库学习
文章目录
TFT_eSPI库是通过SPI方式驱动LCD屏幕的一个Arduino库,并且支持PlatformIOIDE一键下载使用。对于Arduino模式开发的屏幕开发既便捷又稳定。
同时LVGLGUI开发的底层驱动接口也是使用TFT_eSPI库的API。
TFT_eSPI库安装以及配置
基于PlatformIO IDE 讲解。
首先在Libraries里面搜索安装TFT_eSPI库到你的工程文件里面。
TFT_eSPI库文件目录

- TFT_Drivers
- User_Setups
- User_Setup_Select.h
- User_Setup_.h
这几个文件是最基本的配置文件(夹),因为不同的LCD屏幕所用的驱动芯片型号和RGB调色模式是不同的。所以在安装完库后,我们第一步就需要根据自己LCD屏幕的具体参数在配置文件里面进行相应的修改
配置文件
有两种方法,一种就是通过
User_Setup_.h
进行配置,可以配置驱动型号以及所有需要修改的信息。
另一种就是在User_Setup_Select.h
中先选择驱动芯片型号,然后在TFT_Driver
文件夹中的驱动配置文件中配置各种信息。
1.User_Setup_.h
-
首先选择驱动型号 如:
#define ST7789_2_DRIVER
,将注释去掉即可。 -
配置屏幕大小
-
设置GBR显示的LCD屏幕的显示转换
-
配置引脚
文件中已经定义好了可以使用的引脚,如果需要修改的话,取消注释后修改相应引脚的值即可 -
配置SPI速率
设置SPI的通信速率,根据硬件芯片的性能设置(一般保持默认即可)
2. User_Setup_Select.h
对于学习,小作品开发不推荐,最好在
User_Setup.h
中进行配置,便于修改和查找。
- 直接在文件中取消LCD驱动芯片的头文件注释即可。引脚定义按照默认,或者在文件中进行修改(没有使用过)。
3. Rotation.h- 镜像设置
//屏幕选择函数
TFT_eSPI tft = TFT_eSPI();
tft.setRotation(4);//1-3是90度到270度旋转
/*
要实现镜像的话
需要在驱动的Rotation.h里面进行设置
在switch语句中添加case 4选项
代码如下
*/
case 4: // Inverter portrait & Mirror Y
#ifdef CGRAM_OFFSET
if (_init_width == 135)
{
colstart = 53;
rowstart = 40;
}
else
{
colstart = 0;
rowstart = 0;
}
#endif
writedata(TFT_MAD_MX | TFT_MAD_COLOR_ORDER);
_width = _init_width;
_height = _init_height;
break;
/*
然后使用函数tft.setRotation(4);即可。
*/
TFT_eSPI库常用API
初始化
- 屏幕对象实例化
TFT_eSPI::TFT_eSPI(int16_t w, int16_t h)
//设定屏幕大小
TFT_eSPI tft = TFT_eSPI(240, 240);
参数:宽度和高度
- 初始化
tft.init();
- 设置屏幕方向
tft.serRotation(3);
参数为:0, 1, 2, 3 分别代表 0°、90°、180°、270°,可设置4为镜像。
- RGB颜色转GBR565
uint16_t TFT_eSPI::color565(uint8_t r, uint8_t g, uint8_t b)
// 颜色转换
uint16_t yellow = tft.color565(255, 255, 0);
tft.setTextColor(yellow); //
- 清屏函数
void TFT_eSPI::fillScreen(uint32_t color)
//清理屏幕 默认颜色,可以设置不同的颜色
tft.fillScreen(TFT_BLACK);
常用函数
1. eSPI类
文字
void TFT_eSPI::setTextSize(uint8_t s)
//设置字体大小为2
tft.setTextSize(2);
void TFT_eSPI::setTextColor(uint16_t c)
//字体颜色 绿色
tft.setTextColor(TFT_GREEN);
void TFT_eSPI::setCursor