Waveshare 2.1inch ST7701S ESP-32S3 Arduino IDE

Hello,

First off, how much of this did you let the AI do for you? The problem here is that I have no idea how the ESP platform works. For instance:

  /* Retrieve frame buffers */
  void *buf1, *buf2;
  esp_lcd_rgb_panel_get_frame_buffer(panel_handle, 2, &buf1, &buf2)

seems like it makes no sense, but I have no idea if that esp_lcd… function works, perhaps this does work.

I highly suggest using the docs instead!! Display (lv_display) — LVGL documentation

Anyway, the steps should be in this order:

  1. Call lv_init()
  2. Create a display driver, something like:
    lv_display_t* display = lv_display_create(DISP_HOR_RES, DISP_VER_RES);
    lv_display_set_flush_cb(display (lv_display_flush_cb_t)flush); // <- You need a flush callback. The existing 8.3 code should already have a working one!
  1. Set display buffers with lv_display_set_buffers()
  2. Setup timer handler and tick handler. Again, you can just copy this from the already working 8.3 version.
  3. Setup a screen, see this extremely simple demo: Examples — LVGL documentation for example.

I implore you not to use AI for this, most of the functions it uses here are either old (for pre V9 ) or simply never even existed! It made things up.

Kind regards.

1 Like