刚拿到手的显示屏,卖家没有提供任何资料。只知道好像是用ILI9341驱动的。
知道驱动器型号就好办,立即上Arduino进行测试。测试之前,如果没下载过TFT_eSPI驱动库,一定要先下载。
下载完成后,使用你手里合适的测试板连接显示屏。我习惯使用ESP8266,因为小巧方便,在使用扩展板的基础上,用杜邦线连接被测试模块更方便。那么ESP8266和显示屏如何接线呢?
我在接线之前,心里也是打鼓的。不过好消息是,你不需要多花时间去别的地方找资料,只需要查看TFT-eSPI的相关说明就可以了。查看你的Arduino的支持库所在文件夹,通过菜单中的“文件”→“首选项”
可以看到“项目文件夹地址”中的内容,那个文件夹就是默认的系统目录。在资源浏览器中找到这个文件夹,
找到“libraries”,并进入这个文件夹,找到“TFT_eSPI”文件夹并进入,
注意有一个“User_Setup.h”文件,打开这个文件进入编辑状态,在第44行~65行之间的代码,是标明显示屏驱动器型号的地方,开放ILI9341_DRIVER的定义,注释掉其它型号的。
// Only define one driver, the other ones must be commented out #define ILI9341_DRIVER // Generic driver for common displays //#define ILI9341_2_DRIVER // Alternative ILI9341 driver, see https://github.com/Bodmer/TFT_eSPI/issues/1172 //#define ST7735_DRIVER // Define additional parameters below for this display //#define ILI9163_DRIVER // Define additional parameters below for this display //#define S6D02A1_DRIVER //#define RPI_ILI9486_DRIVER // 20MHz maximum SPI //#define HX8357D_DRIVER //#define ILI9481_DRIVER //#define ILI9486_DRIVER //#define ILI9488_DRIVER // WARNING: Do not connect ILI9488 display SDO to MISO if other devices share the SPI bus (TFT SDO does NOT tristate when CS is high) //#define ST7789_DRIVER // Full configuration option, define additional parameters below for this display //#define ST7789_2_DRIVER // Minimal configuration option, define additional parameters below for this display //#define R61581_DRIVER //#define RM68140_DRIVER //#define ST7796_DRIVER //#define SSD1351_DRIVER //#define SSD1963_480_DRIVER //#define SSD1963_800_DRIVER //#define SSD1963_800ALT_DRIVER //#define ILI9225_DRIVER //#define GC9A01_DRIVER
然后修改显示器的显示尺寸,在第83行~93行之间。我的2.8寸显示屏是240*320的
// For ST7789, ST7735, ILI9163 and GC9A01 ONLY, define the pixel width and height in portrait orientation // #define TFT_WIDTH 80 // #define TFT_WIDTH 128 // #define TFT_WIDTH 172 // ST7789 172 x 320 // #define TFT_WIDTH 170 // ST7789 170 x 320 #define TFT_WIDTH 240 // ST7789 240 x 240 and 240 x 320 // #define TFT_HEIGHT 160 // #define TFT_HEIGHT 128 // #define TFT_HEIGHT 240 // ST7789 240 x 240 #define TFT_HEIGHT 320 // ST7789 240 x 320 // #define TFT_HEIGHT 240 // GC9A01 240 x 240
可以保存文件了。在关闭文件之前,然后注意看第137行~148行之间的代码,
// We must use hardware SPI, a minimum of 3 GPIO pins is needed. // Typical setup for ESP8266 NodeMCU ESP-12 is : // // Display SDO/MISO to NodeMCU pin D6 (or leave disconnected if not reading TFT) // Display LED to NodeMCU pin VIN (or 5V, see below) // Display SCK to NodeMCU pin D5 // Display SDI/MOSI to NodeMCU pin D7 // Display DC (RS/AO)to NodeMCU pin D3 // Display RESET to NodeMCU pin D4 (or RST, see below) // Display CS to NodeMCU pin D8 (or GND, see below) // Display GND to NodeMCU pin GND (0V) // Display VCC to NodeMCU 5V or 3.3V
看看,这不就是接线说明吗。刚好是用于ESP8266的。好了到这里,如何接线的问题解决了。剩下的就是跑程序、测试显示了。这里我们也不需要自己写代码,TFT_eSPI已经为我们准备好了相当多的例程。我选择的是“TFT_graphicstest_one_lib”程序,可以从菜单“文件”→“示例”→“TFT_eSPI”→“320 x 240”→“TFT_graphicstest_one_lib”找到。注意哈,第三级菜单中一定要找分辨率匹配你的显示屏的。
后面的活就简单了,使用USB电缆连接开发板,设置好串口和开发板的型号、编译程序、下载,看看测试程序运行就OK了!
话说,屏幕大,看起来就是爽啊!
如果你想把显示屏接在其他开发板上,苦于没有程序,咋办?好办啊,一是上网查找,找到类似的,下载下来改造。二是仔细阅读TFT_eSPI提供的库,并根据学习结果,自己编写驱动程序。抄别人的程序,大概是每个程序员都必经的历程,不寒碜!学习、实践过程中,提高自己解决问题的能力,多有成就感啊!