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

本文详细介绍了在Arduino环境中对ST7789屏幕的原始驱动代码,对比了与TFT_ESPI的差异,强调了该代码的高效性和灵活性,以及学习SPI通信的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是屏幕厂家提供的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,
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值