这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【分享评测,赢取加热台】+以Arduino测试2.8寸SPI显示屏

共1条 1/1 1 跳转至

【分享评测,赢取加热台】+以Arduino测试2.8寸SPI显示屏

专家
2024-04-26 08:29:24   被打赏 50 分(兑奖)     打赏

刚拿到手的显示屏,卖家没有提供任何资料。只知道好像是用ILI9341驱动的。


知道驱动器型号就好办,立即上Arduino进行测试。测试之前,如果没下载过TFT_eSPI驱动库,一定要先下载。

1-3.png

下载完成后,使用你手里合适的测试板连接显示屏。我习惯使用ESP8266,因为小巧方便,在使用扩展板的基础上,用杜邦线连接被测试模块更方便。那么ESP8266和显示屏如何接线呢?

我在接线之前,心里也是打鼓的。不过好消息是,你不需要多花时间去别的地方找资料,只需要查看TFT-eSPI的相关说明就可以了。查看你的Arduino的支持库所在文件夹,通过菜单中的“文件”→“首选项”

1-4.png

可以看到“项目文件夹地址”中的内容,那个文件夹就是默认的系统目录。在资源浏览器中找到这个文件夹,

1-5.png

找到“libraries”,并进入这个文件夹,找到“TFT_eSPI”文件夹并进入,

1-6.png

1-7.png

注意有一个“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”找到。注意哈,第三级菜单中一定要找分辨率匹配你的显示屏的。

1-8.png

后面的活就简单了,使用USB电缆连接开发板,设置好串口和开发板的型号、编译程序、下载,看看测试程序运行就OK了!

1-9.png

话说,屏幕大,看起来就是爽啊!

如果你想把显示屏接在其他开发板上,苦于没有程序,咋办?好办啊,一是上网查找,找到类似的,下载下来改造。二是仔细阅读TFT_eSPI提供的库,并根据学习结果,自己编写驱动程序。抄别人的程序,大概是每个程序员都必经的历程,不寒碜!学习、实践过程中,提高自己解决问题的能力,多有成就感啊!





关键词: Arduino     2.8寸显示屏    

共1条 1/1 1 跳转至

回复

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