Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
ESP 32 avec afficheur
Oui au niveau paramètres tout est OK et l’écran marchait avec la version ST7789
Répondre
(28-03-2025, 07:27 PM)kymcoman a écrit : Oui au niveau paramètres tout est OK et l’écran marchait avec la version ST7789

Avec la 14.20 il faut, de manière similaire à ce que vous aviez fait, modifier le code afin d'utiliser le driver ST7789.
En 14.20 c'est le mode autodetect de LovyanGFX qui est utilisé, à la place il vous faut spécifier le driver comme c’était fait en 14.02 dans le fichier Ecran.h.
Le fichier Ecran.h n'existe plus en 14.20 mais vous pouvez le remettre et l'inclure dans Ecran.ino et ne plus utiliser le mode autodetect.
Répondre
(28-03-2025, 07:51 PM)Mike a écrit :
(28-03-2025, 07:27 PM)kymcoman a écrit : Oui au niveau paramètres tout est OK et l’écran marchait avec la version ST7789

Avec la 14.20 il faut, de manière similaire à ce que vous aviez fait, modifier le code afin d'utiliser le driver ST7789.
En 14.20 c'est le mode autodetect de LovyanGFX qui est utilisé, à la place il vous faut spécifier le driver comme c’était fait en 14.02 dans le fichier Ecran.h.
Le fichier Ecran.h n'existe plus en 14.20 mais vous pouvez le remettre et l'inclure dans Ecran.ino et ne plus utiliser le mode autodetect.

Ok, merci. Mais tu peux me donner les lignes de code exactes à modifier, car je ne suis pas très calé !
Répondre
(28-03-2025, 08:36 PM)kymcoman a écrit : Ok, merci. Mais tu peux me donner les lignes de code exactes à modifier, car je ne suis pas très calé !
Pour utiliser le ST7789 il faut créer un fichier Ecran.h avec le contenu ci dessous et le mettre avec les autres fichiers sources de la 14.20.
Code :
#define LGFX_USE_V1

#include <LovyanGFX.hpp>

#define LCD_MOSI 13
#define LCD_MISO 12
#define LCD_SCK 14
#define LCD_CS 15
#define LCD_RST -1
#define LCD_DC 2
#define LCD_BL 21

#define TOUCH_MOSI 32
#define TOUCH_MISO 39
#define TOUCH_SCK 25
#define TOUCH_CS 33
#define TOUCH_IRQ 36

class LGFX : public lgfx::LGFX_Device {
  lgfx::Panel_ST7789 _panel_instance;
  lgfx::Bus_SPI _bus_instance;
  lgfx::Touch_XPT2046 _touch_instance;
  lgfx::Light_PWM _light_instance;

public:
  LGFX(void) {
    {
      auto cfg = _bus_instance.config();

      // SPI
      cfg.spi_host = HSPI_HOST;
      cfg.spi_mode = 0;
      cfg.freq_write = 40000000;
      cfg.freq_read = 16000000;
      cfg.spi_3wire = true;
      cfg.use_lock = true;
      cfg.dma_channel = 1;
      cfg.pin_sclk = LCD_SCK;
      cfg.pin_mosi = LCD_MOSI;
      cfg.pin_miso = LCD_MISO;
      cfg.pin_dc = LCD_DC;


      _bus_instance.config(cfg);
      _panel_instance.setBus(&_bus_instance);
    }

    {
      auto cfg = _panel_instance.config();

      cfg.pin_cs = LCD_CS;
      cfg.pin_rst = LCD_RST;
      cfg.pin_busy = -1;
      cfg.memory_width = 240;
      cfg.memory_height = 320;
      cfg.panel_width = 240;
      cfg.panel_height = 320;
      cfg.offset_x = 0;
      cfg.offset_y = 0;
      cfg.offset_rotation = 0;
      cfg.dummy_read_pixel = 8;
      cfg.dummy_read_bits = 1;
      cfg.readable = true;
      cfg.invert = false;
      cfg.rgb_order = false;
      cfg.dlen_16bit = false;
      cfg.bus_shared = true;

      _panel_instance.config(cfg);
    }
    {
      auto cfg = _light_instance.config();

      cfg.pin_bl = LCD_BL;
      cfg.invert = false;
      cfg.freq = 44100;
      cfg.pwm_channel = 7;

      _light_instance.config(cfg);
      _panel_instance.setLight(&_light_instance);
    }

    {
      auto cfg = _touch_instance.config();

      cfg.x_min = 0;
      cfg.x_max = 239;
      cfg.y_min = 0;
      cfg.y_max = 319;
      cfg.pin_int = TOUCH_IRQ;
      cfg.bus_shared = true;
      cfg.offset_rotation = 0;


      cfg.spi_host = VSPI_HOST;
      cfg.freq = 1000000;
      cfg.pin_sclk = TOUCH_SCK;
      cfg.pin_mosi = TOUCH_MOSI;
      cfg.pin_miso = TOUCH_MISO;
      cfg.pin_cs = TOUCH_CS;

      _touch_instance.config(cfg);
      _panel_instance.setTouch(&_touch_instance); 
    }

    setPanel(&_panel_instance); 
  }
};

Dans EcranLCD.ino supprimer les 3 lignes suivantes :
Code :
#define LGFX_AUTODETECT  // Autodetect board
#define LGFX_USE_V1
#include <LovyanGFX.hpp>
Et les remplacer par :
Code :
#include "Ecran.h"
Compiler et téléverser sur l'ESP.
Répondre
Super merci Mike
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)