买了很久的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(); }