使用ESP32通过Arduino IDE点亮1.8寸TFT显示屏

开发板选择

本次使用开发板模块丝印为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个引脚

功能如下所示:

  1. BLK :背光控制引脚 低电平关闭背光 悬空或高电平为开启背光
  2. CS :(Chip Select,片选引脚) SPI通信中用于选择特定的芯片或设备
  3. DC :(Data/Command,数据 / 命令引脚) 显示屏驱动通过该引脚来识别接受的数据为数据或命令
  4. RST:(Reset,复位引脚) 用于将设备恢复到初始状态。
  5. SCL:(Serial Clock,串行时钟引脚) SPI协议中的CLK引脚
  6. SDA :(Serial Data,串行数据引脚) SPI协议中的MOSI引脚
  7. VDD:(Power Supply Voltage,电源引脚)
  8. 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);
}

显示测试

相关推荐
腾飞的信仰5 小时前
单片机,主循环和中断资源访问冲突的案例
单片机·嵌入式硬件
猿来不是梦7 小时前
RT_Thread内核源码分析(五)——内存管理@小堆内存管理算法
stm32·单片机·算法·系统架构·rt_thread操作系统
aerror13 小时前
使用mpu6500/6050, PID,互补滤波实现一个简单的飞行自稳控制系统
单片机·飞控
tyl211018 小时前
凌科芯安国产安全MCU简介
单片机·嵌入式硬件·安全
郦77718 小时前
国产入门级32位单片机PY32F002A开发板
单片机·嵌入式硬件
passer__jw7671 天前
【51单片机】6. 定时器、按键切换流水灯&时钟Demo
单片机·51单片机
Wendy_robot1 天前
【零基础勇闯嵌入式岗】从单片机低功耗中获得的启发
c++·单片机·嵌入式硬件
学习噢学个屁1 天前
基于STM32汽车温度空调控制系统
c语言·stm32·单片机·嵌入式硬件·汽车
郦7771 天前
价格性价比高系列的高性能单片机MS32C001-C
单片机·嵌入式硬件
iCxhust1 天前
汇编字符串比较函数
c语言·开发语言·汇编·单片机·嵌入式硬件