使用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
#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引脚号
显示屏共有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>文件可以知道有两种初始化引脚方式
一种是使用
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);//创建显示屏对象并初始化
这时候可以将SCL和SDA引脚连接到默认的D18和D23引脚
也可以使用
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI , TFT_SCLK , TFT_RST);//创建显示屏对象并初始化
来自定义使用的引脚

显示代码则使用下面的函数进行相关显示配置
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灯将会闪烁
pinMode(2, OUTPUT); // 将引脚2设置为输出模式digitalWrite(2, LOW); // 将引脚2设置为低电平delay(1000);digitalWrite(2, HIGH); // 将引脚2设置为高电平delay(1000);
完整代码
//引入显示屏库
#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);
}
显示测试

相关文章:
使用ESP32通过Arduino IDE点亮1.8寸TFT显示屏
开发板选择 本次使用开发板模块丝印为ESP32-WROOM-32E 开发板库选择 Arduino IDE上型号选择为ESP32-WROOM-DA Module 显示屏选择 使用显示屏为8针SPI接口显示屏 驱动IC为ST7735S 使用库 使用三个Arduino平台库 分别是 Adafruit_GFXAdafruit_ST7735SPI 代码详解 首…...
Spring Cloud Alibaba(六)
目录: 分布式链路追踪-SkyWalking为什么需要链路追踪什么是SkyWalkingSkyWalking核心概念什么是探针Java AgentJava探针日志监控实现之环境搭建Java探针日志监控实现之探针实现编写探针类TestAgent搭建 ElasticsearchSkyWalking服务环境搭建搭建微服务微服务接入Sky…...
【包教包会】CocosCreator3.x——重写Sprite,圆角、3D翻转、纹理循环、可合批调色板、不影响子节点的位移旋转缩放透明度
一、效果演示 重写Sprite组件,做了以下优化: 1、新增自变换,在不影响子节点的前提下位移、旋转、缩放、改变透明度 新增可合批调色板,支持色相、明暗调节 新增圆角矩形、3D透视旋转、纹理循环 所有功能均支持合批、原生平台&…...
jupyter-lab 环境构建
我平时用来调试各种代码的。 创建环境,安装库 conda create --name jupyterlab python3.12 -y conda activate jupyterlab conda install -c conda-forge jupyterlab nodejs之前用的是3.10的,但是最近安装的时候,发现3.10的python里面的jup…...
【C++】LeetCode:LCR 026. 重排链表
题干 LCR 026. 重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → … 不能只是单纯的改变节点内部的值,而是需要实…...
【Linux】vim编辑器
vim是什么? vim就是命令行模式下的文本编辑器,相当于windows中的记事本,可以用来进行文本编辑。 vim有三种运行模式,分别可以执行不同的操作: 普通模式(Normal Mode):用于浏览和编辑…...
delphi 12 idhttpsever(S)+idhttp(C) 实现简单的JSON API服务
这篇博客展示了如何使用Delphi创建一个简单的HTTP服务器,并处理GET和POST请求。服务器监听6600端口,响应JSON格式的数据。客户端通过IdHttp组件进行GET和POST请求,获取并显示服务器响应的内容。 http服务器测试代码 procedure TForm1.FormSh…...
JVM 主副内存 详解
在 JVM (Java Virtual Machine) 中,内存的设计主要分为主内存和工作内存(又称为线程内存)。这种设计是基于 Java 内存模型(Java Memory Model, JMM) 的规定,它确保了多线程环境下数据的一致性和线程间的通信…...
sscanf与sprintf函数
本期介绍🍖 主要介绍:sscanf()、sprintf()这对输入/输出函数,并详细讲解了这两个函数的应用场景。 概述🍖 在C语言的输出和输入库中,有三对及其相似的库函数:printf()、scanf()、fprintf()、fscanf()、spri…...
【k8s】创建基于sa的token的kubeconfig
需求 创建一个基于sa的token的kubeconfig文件,并用这个文件来访问集群。 具体创建sa 和sa的token请参考文章: 【k8s】给ServiceAccount 创建关联的 Secrets-CSDN博客 创建sa apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:namespace: jtkjdevnam…...
Gentoo Linux部署LNMP
一、安装nginx 1.gentoo-chxf ~ # emerge -av nginx 提示配置文件需更新 2.gentoo-chxf ~ # etc-update 3.gentoo-chxf ~ # emerge -av nginx 4.查看并启动nginx gentoo-chxf ~ # systemctl status nginx gentoo-chxf ~ # systemctl start nginx gentoo-chxf ~ # syst…...
2411C++,CXImage简单使用
介绍 CxImage是一个可非常简单快速的加载,保存,显示和转换图像的C类. 文件格式和链接的C库 Cximage对象基本上是加了一些成员变量来保存有用信息的一个位图: class CxImage{...protected:void* pDib; //包含标题,调色板,像素BITMAPINFOHEADER head; //标准头文件CXIMAGEINFO…...
什么是 Kubernetes(K8s)?
什么是 Kubernetes(K8s)? Kubernetes(简称 K8s) 是一个用来管理容器的开源工具,它可以自动化部署、扩展和管理容器化应用。简单来说,K8s 就是一个“容器管家”,负责确保你的应用程序…...
深入解析:TypeScript 与 Vue 的完美结合
文章目录 前言一、准备工作二、基本用法三、进阶主题结语 前言 Vue.js 是一款流行的渐进式 JavaScript 框架,它以易于学习和灵活的特性而闻名。TypeScript 则是 JavaScript 的一个超集,它引入了静态类型检查等高级功能,有助于构建更大型且复…...
机器学习周志华学习笔记-第13章<半监督学习>
机器学习周志华学习笔记-第13章<半监督学习> 卷王,请看目录 13半监督学习13.1 生成式方法13.2 半监督SVM13.3 基于分歧的方法13.4 半监督聚类 13半监督学习 前面我们一直围绕的都是监督学习与无监督学习,监督学习指的是训练样本包…...
软件工程——期末复习(1)
名词解释: 名词解释--人月 答案:人月是软件开发工作量的单位,1人月表示1个程序员1个月的工作时间所开发的代码量。 请解释软件缺陷、错误和失败,并简单举例说明。 答案:缺陷(defect)指系统代…...
【JavaEE初阶 — 网络编程】实现基于TCP协议的Echo服务
TCP流套接字编程 1. TCP & UDP 的区别 TCP 的核心特点是面向字节流,读写数据的基本单位是字节 byte 2 API介绍 2.1 ServerSocket 定义 ServerSocket 是创建 TCP 服务端 Socket 的API。 构造方法 方法签名 方法说明 ServerS…...
vue结合canvas动态生成水印效果
在 Vue 项目中添加水印可以通过以下几种方式实现: 方法一:使用 CSS 直接通过 CSS 的 background 属性实现水印: 实现步骤 在需要添加水印的容器中设置背景。使用 rgba 设置透明度,并通过 background-repeat 和 background-size…...
Qt 5 中的 QTextStream 使用指南
文章目录 Qt 5 中的 QTextStream 使用指南介绍基本概念读取文件注意事项结论 Qt 5 中的 QTextStream 使用指南 介绍 QTextStream 是 Qt 框架中用于处理文本数据的类。它提供了方便的接口来读写文本文件或字符串,支持多种编码格式,并且可以与 QIODevice…...
中安证件OCR识别技术助力鸿蒙生态:智能化证件识别新体验
在数字化和智能化的浪潮中,伴随国产化战略的深入推进,国产操作系统和软件生态的建设逐渐走向成熟。鸿蒙操作系统(HarmonyOS Next)作为华为推出的重要操作系统,凭借其开放、灵活和高效的特点,正在加速在多个…...
3步搞定黑苹果配置:让OpenCore管理变得轻松
3步搞定黑苹果配置:让OpenCore管理变得轻松 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore(OCAT) 项目地址: https://gitcode.com/gh_mirrors/oc/OCAuxiliaryTools 你是否曾经因为复杂的OpenCo…...
Edge浏览器+豆包插件:5分钟搞定Arxiv论文翻译与AI问答(保姆级教程)
Edge浏览器豆包插件:科研新手的Arxiv论文高效阅读指南 第一次打开Arxiv上那篇关键论文时,我盯着满屏的专业术语和复杂句式发呆了半小时——作为非英语母语的研究者,这场景太熟悉了。直到发现Edge浏览器上的豆包插件,才真正打开了…...
瓶颈注意力模块改进YOLOv26双路径特征校准与自适应加权能力提升
瓶颈注意力模块改进YOLOv26双路径特征校准与自适应加权能力提升 在目标检测任务中,如何让模型同时关注"什么"和"哪里"一直是研究的核心问题。传统的注意力机制往往只关注单一维度,要么是通道维度的特征重要性,要么是空间…...
告别重复造轮子:用快马AI一键生成开yun高效开发脚手架
最近在做一个开yun相关的项目,发现每次从零开始搭建项目框架特别费时间。各种依赖配置、部署脚本、服务注册,光是这些基础工作就要折腾好几天。后来发现了InsCode(快马)平台,用它来生成标准化的项目脚手架,效率提升了好几倍。 统一…...
突破限制的文档获取:kill-doc开源工具让信息获取效率提升70%的实战指南
突破限制的文档获取:kill-doc开源工具让信息获取效率提升70%的实战指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,…...
Winhance中文版:3大模块全面提升Windows使用体验
Winhance中文版:3大模块全面提升Windows使用体验 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-zh_CN …...
基于ComfyUI API的AIGC自动绘画系统架构设计与实现
1. ComfyUI API自动绘画系统架构设计 第一次接触ComfyUI API时,我被它独特的节点式工作流设计惊艳到了。与传统的Stable Diffusion WebUI不同,ComfyUI将整个AI绘画流程拆解成可自由组合的模块,这种设计理念让自动化系统开发变得异常清晰。下面…...
开发者效率提升:OpenClaw与Qwen3-32B镜像的代码审查自动化
开发者效率提升:OpenClaw与Qwen3-32B镜像的代码审查自动化 1. 为什么需要代码审查自动化? 作为独立开发者,我经常陷入一个困境:在快速迭代功能时,代码质量往往成为牺牲品。上周在修复一个紧急Bug时,我发现…...
TranslucentTB错误代码0x80070490:从现象到本质的解决之道
TranslucentTB错误代码0x80070490:从现象到本质的解决之道 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 问题定位 今天收到…...
终极指南:使用BetterJoy让Switch手柄变身全能PC游戏控制器
终极指南:使用BetterJoy让Switch手柄变身全能PC游戏控制器 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.…...
