玩转物联网人工智能小车:使用TFT_eSPI库的1.3寸SPI彩色显示屏(ST7789)

摘要: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. 初始化和全局设置方法

(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在液晶屏幕中显示中文。

物联沃分享整理
物联沃-IOTWORD物联网 » 玩转物联网人工智能小车:使用TFT_eSPI库的1.3寸SPI彩色显示屏(ST7789)

发表评论