ESP32 16bit并口显示屏开发板软件驱动
Arduino_GFX介绍
链接:Arduino_GFX
安装方法
打开Arduino库管理器,搜索Arduino GFX,找到下图所示库,安装即可。
用法
Arduino_GFX支持多种显示屏接口,详情可查看GitHub:数据总线,显示屏芯片
其中,ESP32 16BIT并口,ILI9488芯片代码如下:
Arduino_DataBus *bus = new Arduino_ESP32PAR16(
41/* DC */,40 /* CS */, 16 /* WR */, 17 /* RD */,
0 /* D0 */, 1 /* D1 */, 2 /* D2 */, 3 /* D3 */, 4 /* D4 */, 5 /* D5 */, 6 /* D6 */, 7 /* D7 */,
8 /* D8 */, 9 /* D9 */, 10 /* D10 */, 11 /* D11 */, 12 /* D12 */, 13 /* D13 */, 14 /* D14 */, 15 /* D15 */);
Arduino_GFX *gfx = new Arduino_ILI9488(
bus, 18 /* RST */, 0 /* rotation */, false /* IPS */);
上述引脚适用于oshwhub开源的lvgl开发板。其他板子请根据自身情况更改
将相关代码替换示例中的对应代码,即可运行示例
踩坑
根据官方wiki,使用Arduino_ESP32LCD16这个函数驱动ILI9488屏幕时,会出现显示异常,替换为Arduino_ESP32PAR16即可。
XPT2046相关
Arduino搜索XPT2046,下载如下库文件:
示例代码:
#include <XPT2046_Touchscreen.h>
#include <SPI.h>
#define CS_PIN 42
//XPT2046_Touchscreen ts(CS_PIN);
#define TIRQ_PIN 255
//XPT2046_Touchscreen ts(CS_PIN); // Param 2 - NULL - No interrupts
//XPT2046_Touchscreen ts(CS_PIN, 255); // Param 2 - 255 - No interrupts
XPT2046_Touchscreen ts(CS_PIN, TIRQ_PIN);
void setup() {
Serial.begin(38400);
SPI.begin(39, 37, 38, 42);
ts.begin();
ts.setRotation(1);
while (!Serial && (millis() <= 1000));
}
void loop() {
if (ts.touched()) {
TS_Point p = ts.getPoint();
Serial.print("Pressure = ");
Serial.print(p.z);
Serial.print(", x = ");
Serial.print(p.x);
Serial.print(", y = ");
Serial.print(p.y);
delay(30);
Serial.println();
}
}
在官方的库文件示例下作了一些改动,以便能够更改SPI相关引脚