Arduino Polska Forum

Pełna wersja: Problem z wyświetlaczem SPI ST7567A
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam,
Stawiam pierwsze kroki w programowaniu z arduino i mam problem z odpaleniem prostego programu na ekranie chińskiego, świeżo zakupionego ekranu. 
Płytka, z której korzystam to ESP32 DevKit ESP-WROOM-32, a ekran SPI ST7567A. Podpięłam je tak:
- GND - GND
- VCC - 3v3
- SCL - IO22
- SDA - IO21
- DC - IO15
- RST - RST
- CS - CMD

Trzy ostatnie piny - BL, CS-F i OUT zostawiłam wolne.
Próbuje uruchomić na płytce program (próbowałam z każdym z zakomentowanych konstruktorów):
Kod:
#include "U8g2lib.h"

//U8G2_ST7567_JLX12864_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 7, /* dc=*/ 9, /* reset=*/ 8); 
//U8G2_ST7567_JLX12864_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 7, /* dc=*/ 9, /* reset=*/ 8); 

//U8G2_ST7567_OS12864_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 7, /* dc=*/ 9, /* reset=*/ 8); 
//U8G2_ST7567_OS12864_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 7, /* dc=*/ 9, /* reset=*/ 8); 
//U8G2_ST7567_ENH_DG128064_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_ST7567_ENH_DG128064_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_ST7567_ENH_DG128064I_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
U8G2_ST7567_ENH_DG128064I_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);


void setup(void) {
  u8g2.begin();
}

void loop(void) {
  u8g2.clearBuffer();                    // clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr);    // choose a suitable font
  u8g2.drawStr(0,10,"Hello World!");    // write something to the internal memory
  u8g2.sendBuffer();                    // transfer internal memory to the display
  delay(1000); 
}

ale ekran nic nie wyświetla. Testowałam konfiguracje samej płytki esp32 prostym programem z mruganiem diodą i działał ok. Próbowałam odpalać również inny kod (https://github.com/olikraus/u8g2/blob/ma...oWorld.ino) z konstruktorem: "U8X8_ST7567_ENH_DG128064I_4W_HW_SPI u8x8(/* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);" i tutaj również nic nie zadziałało. Zastanawiam się co robię źle. Czy te 3 ostatnie piny są niezbędne do działania ekranu? Czy może ekran w ogóle jest źle podpięty?
[attachment=1342]
Nie używałem tego ekranu, ani ESP32 z ekranem w ogóle, ale nie wiem czemu podpinasz pod piny I2C (SCL SDA) skoro napisałeś, że jest to ekran SPI (MOSI MISO SCK CS).
Mimo wszystko

- SCL - IO22
- SDA - IO21
- DC - IO15
- RST - RST
- CS - CMD

vs
U8G2_ST7567_ENH_DG128064I_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);

Powinno być

- SCL - IO18
- SDA - IO19
- DC - IO9
- RST - IO8
- CS - IO10

Nie sprawdzałem ale raczej GPIO 9/8/10 nie ma wyjścia przy płytkach ESP32 DevKit ESP-WROOM-32 trzeba inne wykorzystać wolne i zmienić w programie
(04-06-2023, 11:59)Jarewa0606 napisał(a): [ -> ]Mimo wszystko

- SCL - IO22
- SDA - IO21
- DC - IO15
- RST - RST
- CS - CMD

vs
U8G2_ST7567_ENH_DG128064I_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);

Powinno być

- SCL - IO18
- SDA - IO19
- DC - IO9
- RST - IO8
- CS - IO10

Nie sprawdzałem ale raczej GPIO 9/8/10 nie ma wyjścia przy płytkach ESP32 DevKit ESP-WROOM-32 trzeba inne wykorzystać wolne i zmienić w programie

Podpieram pod wolne piny IO i zmieniłam wartości konstruktora pod te piny iii zadziałało ^^ dzięki za pomoc

[attachment=1350]