备份:最原始arduino(esp32 ,esp8266)对st7789 屏幕的SPI操作

Arduino+esp8266+1.3寸TFT屏(st7789驱动)显示图片教程 使用nodemucu esp8266+1.3寸TFT(st7789驱动)显示单张图片 阅读详情

这是屏幕厂家提供的arduino 环境下对st7789的驱动代码,不同于使用tft_espi的驱动,这个代码就是最原始的操作,最高效的操作,也方便可以进行各种自定义扩展。

要知道tft_espi看起来很方便,其实很臃肿,稍微要做一点事情,编译后就很大,而且性能也很低。

这个代码的意义一定程度可以让人了解SPI的通信过程。

以前看着这种代码两眼一抹黑,看几排就看不下去了,现在就好很多了。

/********************金逸晨**************************
*****************2.0寸  7PIN SPI TFT FOR Arduino*************
*****3----3SCK,   4----4SDA,      5---5RST,
      6---6DC,      7----7CS
*********ST7789V2

从左往右,从上往下    240*320  18bit 6 6 6 RGB 模式  高位模式
********************************************************/
#define SPI_SCK_0 digitalWrite(3, LOW)
#define SPI_SCK_1 digitalWrite(3, HIGH)
#define SPI_SDA_0 digitalWrite(4, LOW)
#define SPI_SDA_1 digitalWrite(4, HIGH)
#define SPI_RST_0 digitalWrite(5, LOW)
#define SPI_RST_1 digitalWrite(5, HIGH)
#define SPI_DC_0 digitalWrite(6, LOW)
#define SPI_DC_1 digitalWrite(6, HIGH)
#define SPI_CS_0 digitalWrite(7, LOW)
#define SPI_CS_1 digitalWrite(7, HIGH)
void IO_init(void) {
  pinMode(3, OUTPUT);  //设置数字脚为输出
  pinMode(4, OUTPUT);  //设置数字脚为输出
  pinMode(5, OUTPUT);  //设置数字脚为输出
  pinMode(6, OUTPUT);  //设置数字脚为输出
  pinMode(7, OUTPUT);  //设置数字脚为输出
}
#define OLED_COLUMN_NUMBER 240
#define OLED_LINE_NUMBER 320
#define OLED_COLUMN_OFFSET 0

#define RED 0XFF0000
#define GREEN 0X00FF00
#define BLUE 0X0000FF

const unsigned char china_char[][32] =  //
  {
    { 0x00, 0x00, 0xE4, 0x3F, 0x28, 0x20, 0x28, 0x25, 0x81, 0x08, 0x42, 0x10, 0x02, 0x02, 0x08, 0x02,
      0xE8, 0x3F, 0x04, 0x02, 0x07, 0x07, 0x84, 0x0A, 0x44, 0x12, 0x34, 0x62, 0x04, 0x02, 0x00, 0x02 }, /*"深",0*/
    { 0x88, 0x20, 0x88, 0x24, 0x88, 0x24, 0x88, 0x24, 0x88, 0x24, 0xBF, 0x24, 0x88, 0x24, 0x88, 0x24,
      0x88, 0x24, 0x88, 0x24, 0x88, 0x24, 0xB8, 0x24, 0x87, 0x24, 0x42, 0x24, 0x40, 0x20, 0x20, 0x20 }, /*"圳",1*/
    { 0x80, 0x00, 0x80, 0x00, 0x40, 0x01, 0x20, 0x02, 0x10, 0x04, 0x08, 0x08, 0xF4, 0x17, 0x83, 0x60,
      0x80, 0x00, 0xFC, 0x1F, 0x80, 0x00, 0x88, 0x08, 0x90, 0x08, 0x90, 0x04, 0xFF, 0x7F, 0x00, 0x00 }, /*"金",2*/
    { 0x80, 0x00, 0x82, 0x00, 0x84, 0x0F, 0x44, 0x08, 0x20, 0x04, 0xF0, 0x3F, 0x27, 0x22, 0x24, 0x22,
      0xE4, 0x3F, 0x04, 0x05, 0x84, 0x0C,
ST7789上手实践:在Arduino平台实现屏幕点亮 手把手教你如何在Arduino平台上驱动ST7789屏幕,完成从接线到显示的完整流程。通过实际操作掌握ST7789的初始化与基本绘图功能,让屏幕迅速亮起来,是嵌入式显示开发的实用入门指南。 阅读详情

相关推荐

Arduino平台ST7789驱动:SPI通信新手教程

详解Arduino平台下ST7789显示屏的SPI通信配置与驱动实现,适合初学者快速上手。通过实际接线与代码演示,掌握ST7789的核心控制逻辑与常见问题解决方法。

weixin_30765637的博客 1084

Arduino驱动TFT屏幕:从SPI通信到TFT_eSPI库配置实战

SPI(串行外设接口)是一种广泛应用于嵌入式系统的同步串行通信协议,以其接线简单、占用引脚少的优势,成为驱动TFT液晶屏等外设的主流方式。其工作原理基于主从设备间的时钟同步与全双工数据传输,通过数据/命令选择引脚(DC)高效控制屏幕寄存器。在Arduino生态中,TFT_eSPI库通过高度优化的硬件抽象层,将SPI通信、颜色格式转换(如RGB565)和图形绘制功能封装,极大提升了开发效率与显示性能。该库支持帧缓冲与Sprite(精灵)等高级特性,有效解决了动态画面闪烁问题,其可配置的驱动芯片适配与引脚定义,

weixin_34248705的博客 412

2.8寸屏+米思齐:图形化编程快速构建嵌入式GUI应用

嵌入式图形用户界面(GUI)开发是连接硬件与用户交互的关键技术,其核心原理在于通过驱动芯片控制像素显示与触摸输入。传统开发需深入底层驱动与图形库,门槛较高。而图形化编程工具通过封装复杂性,将代码逻辑转化为直观的积木块,大幅降低了开发难度,提升了原型构建效率。这种技术价值在快速原型验证、创客教育及物联网设备界面开发等场景中尤为突出。本文聚焦于利用2.8寸TFT触摸屏与米思齐(Mixly)工具的组合,通过SPI通信与预置积木,实现从显示到触摸交互的完整流程,为嵌入式GUI开发提供了一条高效实践路径。

weixin_34184561的博客 342

ST7789V2液晶屏驱动8080并行通信接口英文手册

个人存放的芯片手册,避免以后要用找不到,不喜请不要随便下载。

Arduino_ST7789_Fast:ST7789 IPS显示器的快速SPI库

Arduino_ST7789_Fast ST7789 240x240 IPS显示器的快速SPI库 针对16MHz AVR Arduino板进行了显着优化(比其他库快2.5-5倍)。 达到6.9Mbps的SPI传输速率(在DIV2 / 16MHz时钟下) 在兼容模式下,它可以与其他MCU一起使用,但是我没有对其进行测试。 对于STM32(BluePill),这里有单独的优化版本: : YouTube视频: YouTube播放列表,其中包含与ST7789相关的所有视频: 最近的优化 经过最近的优化(更多的AVR汇编程序),所有填充和复制操作在16MHz Arduino上的最大速度约为7.1Mbps,并且库闪存使用量减少了约800-900字节 配置 使用“ define COMPATIBILITY_MODE”-该库应在所有Arduino兼容板上均可使用 删除上面的内容以获得16MH

基于wxWidgets框架,使用DialogBlocks建立OpenGL界面

前言 之前公司要求使用wxWidgets做GUI,基于OpenGL图形内核,开发三维可视化工具。目前初步开发工作基本已经完成,剩下都是完善了。这里记录一下最开始的框架搭建过程(当然是简化版啦)。wxWidgets结合OpenGL开发可以实现跨平台应用,再结合CMake和VS Code,整体开发工具用习惯了会感觉非常顺手。 界面编辑 首先,使用DialogBlocks新建一个工程,这里工程目录...

cyberobot的博客 2750

FileZilla Server目录显示失败的处理方法

这两天河南大暴雨挺严重导致多处停电,我远在郑州机房的服务器也断网连不上了。一直到今天下午才恢复,影响较大,有些客户要数据,可是数据因为断网拿不到。于是我想,要是能把服务器的数据备份到其他地方,比如我的本机或者另外一台电脑该多好。 于是今天一整天我都在找远程备份数据的方法,把一台服务器上的数据实时同步到另外一台上。或者两台服务器互相同步。 找了半天发现了FreeFileSync这个宝藏软件,它的原理很简单是通过ftp传输数据。 我得先在服务器上安装个ftp服务,首选filezilla server,安..

两天打鱼三天晒网 4453

Vcenter安全加固-防火墙-只允许特定的IP地址访问Vcenter

3、此时除了被允许的IP地址可以访问之外,其余地址均被防火墙阻挡。2、再进行0.0.0.0/0匹配所有其他IP地址进行拒绝访问。1、只需要关注接受和拒绝即可。2、其余选择不是这个场景使用的。1.只允许特定的IP地址访问Vcenter。1、登录Vcenter管理界面。2、点击防火墙-添加。

博然的宝藏库 7280

智驾系统分层架构:从传感器到执行器的全链路解析

本文深入解析了智能驾驶系统的分层架构,从传感器数据采集融合、应用层决策到车辆管理层执行,完整呈现了从感知到控制的全链路工作流程。文章重点阐述了架构设计的核心优势在于接口标准化与模块解耦,以ACC和LKA协同场景为例,说明了各层级如何通过清晰分工与高效协作,实现复杂系统的可靠、灵活与易于升级。

weixin_29219189的博客 399

CircuitBreaker Resilience4J 介绍

在分布式环境中,我们的应用可能会面临着各种各样的可恢复的异常(比如超时,网络环境异常),此时我们可以利用不断重试的方式来从异常中恢复(Retry Pattern),使整个集群正常运行。然而,也有一些异常比较顽固,突然发生,无法预测,而且很难恢复,并且还会导致级联失败(举个例子,假设一个服务集群的负载非常高,如果这时候集群的一部分挂掉了,还占了很大一部分资源,整个集群都有可能遭殃)。如果我们这时还是不断进行重试的话,结果大多都是失败的。

zzhongcy的专栏 3540

奥比中光Gemini335L SDK实战:从标定参数到3D点云转换

本文详细介绍了奥比中光Gemini 335L深度相机的SDK实战应用,重点讲解如何跳过繁琐的棋盘格标定,直接调用出厂预标定参数实现高效的3D点云转换。通过解析内参、外参获取及四种核心坐标转换模式,并结合OpenCV等工具,指导开发者快速将相机集成到机器人抓取、三维测量等项目中,实现开箱即用的3D视觉解决方案。

raspberrypi5的博客 639

使用JAVA 的 POI 库 将DOC文件转为DOCX文件

java使用POI库,将doc文件转为docx文件

qq_45808266的博客 5706

知识图谱:综述

第一种理解:知识图谱本质上是语义网络。本体论是语义网络中最重要的一个要素。第二种理解:知识图谱也叫做多关系图,由多种类型的节点和多种类型的边组成。课程以第二种理解为主。

u013250861的博客 479

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: GBK字符集汇总
下一篇: Arduino,esp8266,esp32 处理String 类型的暗伤
platform
博客等级 码龄26年 1117粉丝 351原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值