开发板选择
本次使用开发板模块丝印为ESP32-WROOM-32E
开发板库选择
Arduino IDE上型号选择为ESP32-WROOM-DA Module
显示屏选择
使用显示屏为8针SPI接口显示屏
驱动IC为ST7735S
使用库
使用三个Arduino平台库
分别是
- Adafruit_GFX
- Adafruit_ST7735
- SPI
代码详解
首先引入使用的三个库
- Adafruit_GFX
- Adafruit_ST7735
- SPI
c
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
然后定义连接显示屏的引脚
c
#define TFT_CS 14 // 请替换为您的CS引脚号
#define TFT_DC 27 // 请替换为您的DC引脚号
#define TFT_RST 5 // 请替换为您的RST引脚号
//#define TFT_SCK 18 // 请替换为您的SCK引脚号
//#define TFT_MOSI 23 // 请替换为您的MOSI引脚号
显示屏共有8个引脚
功能如下所示:
- BLK :背光控制引脚 低电平关闭背光 悬空或高电平为开启背光
- CS :(Chip Select,片选引脚) SPI通信中用于选择特定的芯片或设备
- DC :(Data/Command,数据 / 命令引脚) 显示屏驱动通过该引脚来识别接受的数据为数据或命令
- RST:(Reset,复位引脚) 用于将设备恢复到初始状态。
- SCL:(Serial Clock,串行时钟引脚) SPI协议中的CLK引脚
- SDA :(Serial Data,串行数据引脚) SPI协议中的MOSI引脚
- VDD:(Power Supply Voltage,电源引脚)
- GND:(Ground,接地引脚)
通过查看<Adafruit_ST7735.h>文件可以知道有两种初始化引脚方式
一种是使用
c
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);//创建显示屏对象并初始化
这时候可以将SCL和SDA引脚连接到默认的D18和D23引脚
也可以使用
c
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI , TFT_SCLK , TFT_RST);//创建显示屏对象并初始化
来自定义使用的引脚
显示代码则使用下面的函数进行相关显示配置
c
tft.initR(INITR_BLACKTAB); //使用适当的初始化参数
tft.setRotation(1); //设置显示方向,1表示顺时针旋转90度
tft.fillScreen(ST7735_BLACK); //设置背景颜色
tft.setTextColor(ST7735_WHITE); //设置文字颜色
tft.setTextSize(2); //设置字体大小
tft.setCursor(10, 10); //设置起始位置
tft.println("Hello, ST7735!"); //输出显示的文本信息
下面代码则用来测试程序是否正确运行
正常运行时板载的LED灯将会闪烁
c
pinMode(2, OUTPUT); // 将引脚2设置为输出模式
digitalWrite(2, LOW); // 将引脚2设置为低电平
delay(1000);
digitalWrite(2, HIGH); // 将引脚2设置为高电平
delay(1000);
完整代码
c
//引入显示屏库
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#define TFT_CS 14 // 请替换为您的CS引脚号
#define TFT_DC 27 // 请替换为您的DC引脚号
#define TFT_RST 5 // 请替换为您的RST引脚号
//#define TFT_SCK 18 // 请替换为您的SCK引脚号
//#define TFT_MOSI 23 // 请替换为您的MOSI引脚号
//已经默认配置
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);//创建显示屏对象并初始化
void setup() {
pinMode(2, OUTPUT); // 将引脚2设置为输出模式
tft.initR(INITR_BLACKTAB); // 使用适当的初始化参数
tft.setRotation(1); // 设置显示方向,1表示顺时针旋转90度
tft.fillScreen(ST7735_BLACK);//设置背景颜色
tft.setTextColor(ST7735_WHITE);//设置文字颜色
tft.setTextSize(2);//设置字体大小
tft.setCursor(10, 10);//设置起始位置
tft.println("Hello, ST7735!");
}
void loop() {
digitalWrite(2, LOW); // 将引脚2设置为低电平
delay(1000);
digitalWrite(2, HIGH); // 将引脚2设置为高电平
delay(1000);
}