买了很久的1.8寸的TFT液晶,只测试过STM32F103下的显示。今天抽空测试ESP8266下的显示。因为有现成的支持库,所以不用自己写驱动程序了。支持库为tft_espi,可以查找并安装。
 然后要修改一个文件设置,文件在你的Arduino库所在的文件夹下,可以通过菜单中的“文件”=>“首选项”找到项目文件夹的位置
然后要修改一个文件设置,文件在你的Arduino库所在的文件夹下,可以通过菜单中的“文件”=>“首选项”找到项目文件夹的位置
 在这个文件夹下的库的文件夹名字为“libraries”,找到tft_espi子文件夹下的User_Setup.h文件,修改器中默认的驱动型号和屏幕宽高,如下图所示,
在这个文件夹下的库的文件夹名字为“libraries”,找到tft_espi子文件夹下的User_Setup.h文件,修改器中默认的驱动型号和屏幕宽高,如下图所示,
 修改默认驱动为ST7735(我的这个液晶的驱动器型号)
修改默认驱动为ST7735(我的这个液晶的驱动器型号)
 修改屏幕分辨率
修改屏幕分辨率
 最后要根据你的液晶连接情况,确定是否要注释掉RESET所在的设置
最后要根据你的液晶连接情况,确定是否要注释掉RESET所在的设置
 这个文件改完了,就可以进行测试了。连接好ESP8266,找到tft_espi提供的测试程序“TFT_Print_Test”,编译、下载,看看执行结果如何。
这个文件改完了,就可以进行测试了。连接好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();
}

 
					
				
 
			
			
			
						
			 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

