硬件

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文件夹
  2. 将User_Setup_Select.h中#include "User_Setup.h"取消注释,并注释掉其他头文件
  3. 将User_Setup.h中#include ST7735_DRIVER取消注释,并注释掉同区域其他宏定义
  4. 将上方同文件中的#define TFT_RGB_ORDER TFT_BGR #define TFT_WIDTH 80 #define TFT_HEIGHT 160 #define ST7735_REDTAB160x80 取消注释
  5. 将下方宏定义添加,并注释掉相同的宏定义
#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)

测试

  • 下面提供一个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 年 07 月 07 日 08 : 18 AM
如果觉得我的文章对你有用,请随意赞赏