This code doesn't work on CrowPanel 5 inch
Hi,
I just get a blank screen when uploading this via Arduino, trying to get the screen to work. Any ideas?
This is the display: https://www.elecrow.com/wiki/esp32-display-502727-intelligent-touch-screen-wi-fi26ble-800480-hmi-display.html
Tried withLovyanGFX: 1.1.8 and also latest 1.2.7
Any ideas?
define LGFX_USE_V1
include <LovyanGFX.hpp>
include <lgfx/v1/platforms/esp32s3/Panel_RGB.hpp>
include <lgfx/v1/platforms/esp32s3/Bus_RGB.hpp>
include <driver/i2c.h>
class LGFX : public lgfx::LGFX_Device
{
public:
lgfx::Bus_RGB _bus_instance;
lgfx::Panel_RGB _panel_instance;
lgfx::Light_PWM _light_instance;
lgfx::Touch_GT911 _touch_instance;
LGFX(void)
{
{
auto cfg = _panel_instance.config();
cfg.memory_width = 800;
cfg.memory_height = 480;
cfg.panel_width = 800;
cfg.panel_height = 480;
cfg.offset_x = 0;
cfg.offset_y = 0;
_panel_instance.config(cfg);
}
{
auto cfg = _bus_instance.config();
cfg.panel = &_panel_instance;
cfg.pin_d0 = GPIO_NUM_8; // B0
cfg.pin_d1 = GPIO_NUM_3; // B1
cfg.pin_d2 = GPIO_NUM_46; // B2
cfg.pin_d3 = GPIO_NUM_9; // B3
cfg.pin_d4 = GPIO_NUM_1; // B4
cfg.pin_d5 = GPIO_NUM_5; // G0
cfg.pin_d6 = GPIO_NUM_6; // G1
cfg.pin_d7 = GPIO_NUM_7; // G2
cfg.pin_d8 = GPIO_NUM_15; // G3
cfg.pin_d9 = GPIO_NUM_16; // G4
cfg.pin_d10 = GPIO_NUM_4; // G5
cfg.pin_d11 = GPIO_NUM_45; // R0
cfg.pin_d12 = GPIO_NUM_48; // R1
cfg.pin_d13 = GPIO_NUM_47; // R2
cfg.pin_d14 = GPIO_NUM_21; // R3
cfg.pin_d15 = GPIO_NUM_14; // R4
cfg.pin_henable = GPIO_NUM_40;
cfg.pin_vsync = GPIO_NUM_41;
cfg.pin_hsync = GPIO_NUM_39;
cfg.pin_pclk = GPIO_NUM_0;
cfg.freq_write = 12000000;
cfg.hsync_polarity = 0;
cfg.hsync_front_porch = 8;
cfg.hsync_pulse_width = 4;
cfg.hsync_back_porch = 43;
cfg.vsync_polarity = 0;
cfg.vsync_front_porch = 8;
cfg.vsync_pulse_width = 4;
cfg.vsync_back_porch = 12;
cfg.pclk_active_neg = 1;
cfg.de_idle_high = 0;
cfg.pclk_idle_high = 0;
_bus_instance.config(cfg);
}
_panel_instance.setBus(&_bus_instance);
{
auto cfg = _light_instance.config();
cfg.pin_bl = GPIO_NUM_2;
_light_instance.config(cfg);
}
_panel_instance.light(&_light_instance);
{
auto cfg = _touch_instance.config();
cfg.x_min = 0;
cfg.x_max = 799;
cfg.y_min = 0;
cfg.y_max = 479;
cfg.pin_int = -1;
cfg.pin_rst = -1;
cfg.bus_shared = false;
cfg.offset_rotation = 0;
cfg.i2c_port = I2C_NUM_1;
cfg.pin_sda = GPIO_NUM_19;
cfg.pin_scl = GPIO_NUM_20;
cfg.freq = 400000;
cfg.i2c_addr = 0x14;
_touch_instance.config(cfg);
_panel_instance.setTouch(&_touch_instance);
}
setPanel(&_panel_instance);
}
};
LGFX lcd;
void setup() {
Serial.begin(115200);
Serial.println();
Serial.println("LCD Init.");
lcd.init();
lcd.fillScreen(TFT_WHITE);
delay(500);
lcd.fillScreen(TFT_RED);
delay(500);
lcd.fillScreen(TFT_GREEN);
delay(500);
lcd.fillScreen(TFT_BLUE);
delay(500);
lcd.fillScreen(TFT_BLACK);
lcd.setTextSize((std::max(lcd.width(), lcd.height()) + 255) >> 8);
lcd.setTextDatum(textdatum_t::middle_center);
lcd.drawString("touch the screen", lcd.width() >> 1, lcd.height() >> 1);
}
void loop() {
int32_t x, y;
if (lcd.getTouch(&x, &y)) {
Serial.printf("X:%d Y:%d\n",x, y);
lcd.fillCircle(x, y, 15, TFT_WHITE);
}
delay(100);
}
Comments
Dear sharpharp,
I hope this message finds you well. Thank you for reaching out .
Our technical support team is currently looking into the issue in your message. Please be patient, and we will get back to you as soon as possible.
Thanks! Have a nice day!
Dear sharpharp,
Are you using the program we provide? If so, which program?
It is recommended that you try the programs in our tutorial first (follow our tutorial), and then develop your programs based on our programs.
There are tutorials for this product on our Elecrow wiki website and youtube.
Best regards,