06_【正点原子】DNESP32S3开发板使用TFT_eSPI 库(arduino)
·
开发板 【正点原子】DNESP32S3开发板
本文将通过一个完整的 TFT 液晶屏驱动示例,展示如何在该开发板上使用 TFT_eSPI 库进行屏幕初始化、硬件复位控制以及基本图形绘制。
#include <SPI.h>
#include <TFT_eSPI.h>
#include "xl9555.h"
#include <Wire.h>
#define LCD_PWR(x) xl9555_pin_set(SLCD_PWR, (x) ? IO_SET_HIGH : IO_SET_LOW)
#define LCD_RST(x) xl9555_pin_set(SLCD_RST, (x) ? IO_SET_HIGH : IO_SET_LOW)
TFT_eSPI tft = TFT_eSPI();
// 完全对齐原厂复位时序
void lcd_hard_reset(void) {
LCD_RST(1);
delay(10);
LCD_RST(0);
delay(10);
LCD_RST(1);
delay(120);
}
void setup() {
Serial.begin(115200);
// 1. 初始化XL9555(I2C映射到41/42引脚)
xl9555_init();
// 2. 配置复位、背光引脚为输出,默认高电平
xl9555_io_config(SLCD_RST, IO_SET_OUTPUT);
xl9555_io_config(SLCD_PWR, IO_SET_OUTPUT);
xl9555_pin_set(SLCD_RST, IO_SET_HIGH);
xl9555_pin_set(SLCD_PWR, IO_SET_HIGH);
// 3. 初始化前先关闭背光,避免花屏
LCD_PWR(0);
// 4. 硬件复位
lcd_hard_reset();
// 5. 初始化TFT_eSPI
tft.init();
tft.setRotation(0);
// 7. 填充红色后开启背光,上电无闪屏
tft.fillScreen(TFT_RED);
delay(3000);
LCD_PWR(1);
}
void loop() {
// tft.fillScreen(TFT_GREEN);
// delay(500);
// tft.fillScreen(TFT_BLUE);
// delay(500);
// tft.fillScreen(TFT_RED);
// delay(500);
// tft.fillScreen(TFT_WHITE);
// delay(500);
// tft.fillScreen(TFT_BLACK);
// delay(500);
// tft.fillScreen(TFT_YELLOW);
// delay(500);
}
更多推荐
所有评论(0)