Witam,
mam problem z magistralą SPI na Wemos D1 mini. Na chwilę obecną podłączyłem LCD. Docelowo ma być jeszcze podłączona LoRa SX1278 również po SPI. Jeśli dobrze rozumiem sterowanie urządzeniami realizujemy zmieniając stan na pinach SS. Aby urządzenie komunikowało się z Master-em, należy ustawić stan LOW na pinie SS. I tutaj pojawia się problem. Napisałem kilka linijek prostego kodu, gdzie podłączony jest tylko LCD i niezależnie czy na pinie jest LOW czy HIGH, na wyświetlaczu pojawia się napis. Teoretycznie jeśli na pinie jest HIGH to komunikacja nie powinna się odbywać. Nie mogę namierzyć błędu.
Poniżej kod
mam problem z magistralą SPI na Wemos D1 mini. Na chwilę obecną podłączyłem LCD. Docelowo ma być jeszcze podłączona LoRa SX1278 również po SPI. Jeśli dobrze rozumiem sterowanie urządzeniami realizujemy zmieniając stan na pinach SS. Aby urządzenie komunikowało się z Master-em, należy ustawić stan LOW na pinie SS. I tutaj pojawia się problem. Napisałem kilka linijek prostego kodu, gdzie podłączony jest tylko LCD i niezależnie czy na pinie jest LOW czy HIGH, na wyświetlaczu pojawia się napis. Teoretycznie jeśli na pinie jest HIGH to komunikacja nie powinna się odbywać. Nie mogę namierzyć błędu.
Poniżej kod
Kod:
#include <SPI.h>
#include <U8g2lib.h>
#define ss_lcd 15 //LCD
#define sclk 14 // LCD
#define mosi 13 // LCD
U8G2_ST7920_128X64_F_SW_SPI u8g2(U8G2_R2, sclk, mosi ,ss_lcd, U8X8_PIN_NONE);
void setup() {
digitalWrite(ss_lcd, LOW); // włączenie urządzanie na pinie ss_lcd
u8g2.begin ();
u8g2.clearBuffer();
u8g2.setFont (u8g2_font_ncenB14_tr);
u8g2.setCursor (15,30);
u8g2.print("TEST");
delay(3000);
digitalWrite(ss_lcd, HIGH); // wyłączenie urządzenia na pinie ss_lcd
}
void loop() {
digitalWrite(ss_lcd, HIGH); // wyłączenie urządzenia na pinie ss_lcd
u8g2.clearBuffer();
u8g2.setFont (u8g2_font_ncenB14_tr); // font
u8g2.setCursor(1,16);
u8g2.print("TEST");
u8g2.sendBuffer ();
}