硬件
ESP32 C3
- 一款BLE&WIFI物联网芯片
- 400k大内存 内置4Mflash(部分型号)
屏幕
- 驱动芯片 ST7735
- 驱动接口 SPI
- 屏幕尺寸 0.96寸 彩屏
- 分辨率 80*160
软件
开发框架
- 基于platformIO下的arudino框架
- ESP32C3具体如何用pio的arduino见博客另一篇文章
屏幕驱动库
- tft_espi最新版
- 截至这篇文章发布前,release版本还不能支持C3
- 需要下载master分支的最新代码
驱动过程
编写/修改屏幕配置文件
- 以ST7735为例,其他大同小异
- 进入tft_espi--User_Setups文件夹
- 复制一份
Setup43_ST7735.h
- 打开文件,删掉
#ifdef ESP32
到#enddef
部分 - 添加如下代码,后方数字改为自己实际的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)
- 在上方添加如下define。设置色彩BRG并关闭颜色翻转
#define TFT_RGB_ORDER TFT_BGR
#define TFT_INVERSION_OFF
- 将
#define ST7735_GREENTAB160x80
修改为#define ST7735_REDTAB160x80
编辑User_Setup_Select.h
- 注释掉
#include <User_Setup.h>
- 引用刚刚复制出来的文件
测试
- 下面提供一个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);
}