准备工作:
装备:
- ESP 8266 D1 MINI
- 1.3寸 TFT 屏幕
- 分光棱镜25.4mm
- 面包板、杜邦线、数据线等配件
软件:
Arduino(本人使用1.8.16)---驱动ch341
初始arduino简单程序,对esp8266上传代码,能正常运行。正式开始
坑1:无法读取到com口的esp8266. 最终是数据线的问题。很多usb线读取不了。一定要换根有用的。
开始接线
这个不需要参考我的,接的比较乱。网上随便搜索,esp8266和tft屏如何接线
第一集代码
先让esp对tft屏能进行显示,并且屏幕内容为镜像显示。分光棱镜的效果就达到了。
首先要加载库 TFT_eSPI-2.4.72.zip
#include<TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI(240,240); //实例化void setup() {Serial.begin(115200);tft.init();tft.setSwapBytes(true);tft.setRotation(4); //0,0°, 1-3(90°-270°) ,4镜像tft.fillScreen(TFT_BLACK); tft.setTextColor(TFT_WHITE, TFT_BLACK, true);tft.setTextSize(2);tft.println("Hello World!!");tft.println("Holocube!!");}void loop() {}
运行效果:
坑2:
tft.setRotation(4); //4镜像。镜像这个正常是不会直接来的,需要改库文件的。
这个屏幕大小是240*240.可以改下。
ST7789_Defines.h
// Change the width and height if required (defined in portrait mode)
// or use the constructor to over-ride defaults
#ifndef TFT_WIDTH#define TFT_WIDTH 240
#endif
#ifndef TFT_HEIGHT#define TFT_HEIGHT 240
#endif
ST7789_Rotation.h
writecommand(TFT_MADCTL);rotation = m % 5;//需要修改
writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_COLOR_ORDER);_width = _init_height;_height = _init_width;break;case 4: //需要增加的代码
#ifdef CGRAM_OFFSETif (_init_width == 135){colstart = 53;rowstart = 40;}else if(_init_height == 280){colstart = 0;rowstart = 20;}else if(_init_width == 172){colstart = 34;rowstart = 0;}else if(_init_width == 170){colstart = 35;rowstart = 0;}else{colstart = 0;rowstart = 80;}
#endifwritedata(0x90);_width = _init_height;_height = _init_width;break;
case 4 需要增加。
writedata(0x90);//这句最关键。 1001 0000
详细了解TFT显示的相关知识。