摘要:TFT_eSPI库的基本介绍
前边介绍了TFT_eSPI库的基本情况,下面就来看一下怎样使用TFT_eSPI库来驱动ST7789驱动芯片的1.3寸彩色液晶屏幕。
在Arduino IDE中安装了TFT_eSPI库以后,首先需要找到TFT_eSPI的安装位置。因为关于液晶屏幕的配置信息是在TFT_eSPI的库文件夹中进行配置的。这样做的好处是,配置一次,可以在多个项目中使用这个配置信息,只要不更换屏幕,都不需要再进行配置信息的设置和修改。如果这个配置信息,是配置在每个项目中的,那么就需要在每个项目中都维护一套液晶屏幕模块的配置信息。
找到TFT_eSPI的安装路径之后,首先打开User_Setup_Select.h文件,该文件用于指定一个液晶屏幕模块的配置信息文件。在文件中首先找到如下图所示的代码:
在这里可以看到,下边罗列了一系列配置文件,在这些文件最上边提示:在下边这些行中,只能保留一行是非注释状态。那么,就在下边这些行中,搜索一下自己的驱动芯片,看看有没有合适的配置文件。在文件中搜索“7789”后,发现有十几个关于ST7789的配置文件,这个时候,要看后边的注释,找到处理器芯片和分辨率都与自己相符的配置文件,去掉文件前边的注释,如下图所示:
最后,再确认一下这一端配置文件列表中,是否还有没注释的行,如果有,将其注释掉,因为只能保留一行起作用。然后打开刚才取消注释的那行所包含的头文件,在我这里是“Setup24_ST7789.h”,该文件位于User_Setups目录中。
打开Setup24_ST7789.h文件后,找到引脚配置的几行,将其前面的注释去掉,并把后边所使用的引脚号码,改成将要使用的引脚号码。如下图所示:
好了,到这里,TFT_eSPI的配置工作就完成了。接下来就把液晶屏幕和ESP32开发板连接到一起吧,具体的连接方法如下:
序号 | TFT液晶屏模块 | ESP32扩展板 | 说明 |
1 | GND | GND | 电源地 |
2 | VCC | +5V | 电源正极(3.3V~5V) |
3 | SCL(SCK) | P18 | SPI时钟线 |
4 | SDA | P23 | SPI数据线 |
5 | RES | P4 | 重启接口 |
6 | DC | P2 | SPI数据/命令选择 |
7 | BLK | P32 | 背光控制 |
接好导线之后,上一篇文章中的示例程序,去掉中文字库头文件和将显示的信息改成英文字符后,该程序应该就可以正常运行了。
如果在User_Setup_Select.h文件中没有找到合适的预定义的配置文件,那么就需要将首个配置文件User_Setup.h文件前的注释去掉,使用User_Setup.h来进行配置。如下图所示:
接下来打开User_Setup.h文件,在这个文件中来定义相应的配置信息。首先选择的是液晶屏幕模块的驱动芯片,在这里找到你的液晶屏幕所使用的驱动芯片,然后去掉改行前面的注释,并确保其他驱动芯片行都是注释状态,如下图所示:
接下来是配置液晶屏幕的分辨率,这个也不是所有的驱动芯片都需要配置,只有使用ST7789,ST7735,ILI9163和GC9A01为驱动的芯片才需要配置。
再往下是背光控制引脚和有效电平的配置,如果需要通过程序控制背光,那么就需要在这里进行背光引脚的配置,要确保TFT_eSPI在显示时将屏幕背光打开。另外提示一下,如果在程序中需要关闭或者打开背光,可以通过调用digitalWrite()方法来实现。如果背光的亮度是通过PWM来控制的,这就需要开发者自己写代码来实现对背光的控制。具体的配置方法如下,在这里指定了背光的引脚和高电平打开背光。
沿着文件再往下,就是引脚配置了。这个要在下面的代码中,找到你的处理器类型,根据处理器类型来进行配置。在这里还是以ESP32为例,配置方法根前面的一样,如下所示:
这里列举的是使用串行SPI通信的引脚配置方法,如果是使用并行接口驱动液晶屏幕,则在下边有相应的示例,在这里我就不再举例了。最后是关于初始装在字体的配置,如下所示:
不需要使用的字体可以注释掉,因为这些字体都会占用存储空间。需要提醒的是,这都是英文的字体,有些字体只有数字。需要使用中文字体,则需要自行处理并生成中文字库文件才行,这将在下一篇文章中进行介绍。
TFT_eSPI提供了丰富的函数来方便的实现在液晶屏幕上显示各种内容。简单概括起来,TFT_eSPI库包含了以下这些类别的方法:
- 初始化和全局设置方法
(1)初始化方法:begin()和init(),这两者是一样的。
(2)填充屏幕方法:fillScreen(uint32_t color),参数为使用的颜色
(3)设置屏幕朝向:setRotation(uint8_t r),参数0,1,2,3分别代表了4个不同的朝向
(4)设置屏幕坐标原点:setOrigin(int32_t x, int32_t y),默认的原点位于左上角
(5)设置所有的颜色反转显示:invertDisplay(bool i)
2. 字符显示方法
(1)设置字符颜色:setTextColor(uint16_t color)
(2)设置输出字符的位置:setCursor(int16_t x, int16_t y)
(3)设置自动换行:setTextWrap(bool wrapX, bool wrapY = false);
(4)设置字符布局定位:setTextDatum(uint8_t datum),默认靠左
(5)设置字体的大小:setTextSize(uint8_t size)
(6)显示字符:print()和println()
3. 绘制文字方法
这是一系列以draw开头的函数,这些函数可以指定的字体来绘制字符串、字符、浮点数和数字等。在绘制字符串时,还可以选择对其方式,包括居左,居中和居右。
4. 绘制几何图形方法
这其中包括了绘制点、线、横线(快速)、竖线(快速)等简单图形,也包括了圆、椭圆、矩形、圆角矩形、三角形等,并且都支持实心和空心两种模式。
5. 图形显示
TFT_eSPI提供了显示Bitmap和XBitmap格式图形的方法。
好了,TFT_eSPI的基本情况就介绍到这里了。下一篇将介绍如何使用TFT_eSPI在液晶屏幕中显示中文。