这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 用ESP8266测试I2C接口的TFT

共5条 1/1 1 跳转至

用ESP8266测试I2C接口的TFT

专家
2024-03-10 21:31:50     打赏

买了很久的1.8寸的TFT液晶,只测试过STM32F103下的显示。今天抽空测试ESP8266下的显示。因为有现成的支持库,所以不用自己写驱动程序了。支持库为tft_espi,可以查找并安装。

图片1.png然后要修改一个文件设置,文件在你的Arduino库所在的文件夹下,可以通过菜单中的“文件”=>“首选项”找到项目文件夹的位置

图片2.png在这个文件夹下的库的文件夹名字为“libraries”,找到tft_espi子文件夹下的User_Setup.h文件,修改器中默认的驱动型号和屏幕宽高,如下图所示,

图片3.png修改默认驱动为ST7735(我的这个液晶的驱动器型号)

图片4.png修改屏幕分辨率

图片5.png最后要根据你的液晶连接情况,确定是否要注释掉RESET所在的设置

图片6.png这个文件改完了,就可以进行测试了。连接好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();
}

微信图片_20240310213249.jpg




关键词: 菜鸟学单片机     ESP8266     1.8寸TFT液晶         

院士
2024-03-10 22:52:45     打赏
2楼

这个接口的速率下,只能是静态显示吧?


高工
2024-03-10 22:58:35     打赏
3楼

我就是认为使用arduino不是嵌入式开发,也就是一个实验而已


专家
2024-03-11 08:36:34     打赏
4楼

可以动态显示啊。比如动态显示时钟时间


专家
2024-03-11 08:38:41     打赏
5楼

我觉得arduino开发也算是嵌入式吧。只不过因为有支持库,编程更加快速方便而已。


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]