硬件

ESP32 C3

  • 一款BLE&WIFI物联网芯片
  • 400k大内存 内置4Mflash(部分型号)

屏幕

  • 驱动芯片 ST7735
  • 驱动接口 SPI
  • 屏幕尺寸 0.96寸 彩屏
  • 分辨率 80*160

软件

开发框架

  • 基于platformIO下的arudino框架
  • ESP32C3具体如何用pio的arduino见博客另一篇文章

屏幕驱动库

  • tft_espi最新版
  • 截至这篇文章发布前,release版本还不能支持C3
  • 需要下载master分支的最新代码

驱动过程

编写/修改屏幕配置文件

  • 以ST7735为例,其他大同小异
  1. 进入tft_espi--User_Setups文件夹
  2. 复制一份Setup43_ST7735.h
  3. 打开文件,删掉#ifdef ESP32#enddef部分
  4. 添加如下代码,后方数字改为自己实际的IO口
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS    15  // Chip select control pin
#define TFT_DC    2  // Data Command control pin
#define TFT_RST   4  // Reset pin (could connect to RST pin)
  1. 在上方添加如下define。设置色彩BRG并关闭颜色翻转
#define TFT_RGB_ORDER TFT_BGR
#define TFT_INVERSION_OFF
  1. #define ST7735_GREENTAB160x80修改为#define ST7735_REDTAB160x80

编辑User_Setup_Select.h

  1. 注释掉 #include <User_Setup.h>
  2. 引用刚刚复制出来的文件

测试

  • 下面提供一个demo测试
#include <Arduino.h>
#include "TFT_eSPI.h"

#define LCD_BL 0

TFT_eSPI tft;
uint8_t num = 0;

void setup() {
Serial.begin(9600);
tft.begin();
tft.invertDisplay(0);       //颜色翻转,0为不翻转
tft.setRotation(3);    //调整屏幕方向 0-3
tft.fillScreen(TFT_BLACK); //黑色背景
tft.setCursor(0,0);
tft.print("Hello World!");
pinMode(LCD_BL,OUTPUT);
digitalWrite(LCD_BL,HIGH); //粗暴的直接全开背光,不pwm调光了
}

void loop() {
num++;
tft.setCursor(20,20);
tft.print(num);
delay(1000);
}
最后修改:2022 年 05 月 12 日 05 : 45 PM
如果觉得我的文章对你有用,请随意赞赏