04-06-2023, 00:25
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):
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?
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?