幺幺八点六の记事本

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相关引脚

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »