买了很久的1.8寸的TFT液晶,只测试过STM32F103下的显示。今天抽空测试ESP8266下的显示。因为有现成的支持库,所以不用自己写驱动程序了。支持库为tft_espi,可以查找并安装。
然后要修改一个文件设置,文件在你的Arduino库所在的文件夹下,可以通过菜单中的“文件”=>“首选项”找到项目文件夹的位置
在这个文件夹下的库的文件夹名字为“libraries”,找到tft_espi子文件夹下的User_Setup.h文件,修改器中默认的驱动型号和屏幕宽高,如下图所示,
修改默认驱动为ST7735(我的这个液晶的驱动器型号)
修改屏幕分辨率
最后要根据你的液晶连接情况,确定是否要注释掉RESET所在的设置
这个文件改完了,就可以进行测试了。连接好ESP8266,找到tft_espi提供的测试程序“TFT_Print_Test”,编译、下载,看看执行结果如何。
为了方便,我直接把代码站过来,供参考。
/*
接线方式:
TFT液晶 ESP8266
-------------------------------------
GND
VCC 3.3V
SCL D5
SDA D7
RST D4
DC D3
CS D8
BLK 3.3V
*/
#include <TFT_eSPI.h>
#include <SPI.h>
// 初始化对象,使用的液晶驱动型号、屏幕宽度、高度参见库中User_Setup.h中的定义
// //#define ILI9341_DRIVER 要注释掉这个驱动,换成ST7735的
// #define ST7735_DRIVER
// TFT_WIDTH = 128
// define TFT_HEIGHT=160
// RST脚接3.3V时,<#define TFT_RST -1>要被注释掉
TFT_eSPI tft = TFT_eSPI(); // Invoke library, pins defined in User_Setup.h
// 定义新颜色
#define TFT_GREY 0x5AEB
void setup(void) {
tft.init();
tft.setRotation(1);
}
void loop() {
// 设置背景色
tft.fillScreen(TFT_GREY);
// 设置光标位置(0,0),字体2
tft.setCursor(0, 0, 2);
// 设置文字色及背景色
tft.setTextColor(TFT_WHITE,TFT_BLACK);
// 设置文字尺寸
tft.setTextSize(1);
// 输出文字
tft.println("Hello World!");
// 设置文字色
tft.setTextColor(TFT_YELLOW);
// 设置文字尺寸
tft.setTextFont(2);
tft.println(1234.56);
// 设置文字色及背景色, 设置文字尺寸
tft.setTextColor(TFT_RED,TFT_BLACK); tft.setTextFont(4);
tft.println((long)3735928559, HEX); // Should print DEADBEEF
// 设置文字色及背景色, 设置文字尺寸
tft.setTextColor(TFT_GREEN,TFT_BLACK); tft.setTextFont(2);
tft.println("Groop");
float fnumber = 123.45;
// 设置文字色, 设置文字尺寸
tft.setTextColor(TFT_BLUE); tft.setTextFont(2);
tft.print("Float = "); tft.println(fnumber);
tft.print("Binary = ");
// 二进制方式输出数字
tft.println((int)fnumber, BIN);
tft.print("Hexadecimal = ");
// 十六进制输出数字
tft.println((int)fnumber, HEX);
// We must yield() to stop a watchdog timeout.
while(1) yield();
}
我要赚赏金
