RP2040 и дисплей ST7789 без пина CS с библиотекой Adafruit_ST7789, не работает

Не работает!
Перепробовал всё что можно, никто не решал проблему?
Можно на другом контроллере, важно чтобы пин CS был не выведен на колодку.

По этому примеру тоже не взлетело

Ну как же, я вопрошал эн месяцев назад. Взял библиотеку другую. Даже может вспомню в какой теме.

37 сообщение.
Вот ссылка на исходник.

Заработало, попробую разобраться почему на стандартной не Алё?
на tft_eSPI работает великолепно, целый день потратил в попытках разобраться

А я так толком и не придумал ему назначение. Пока помогает картинки листать для загрузки в e-paper. Была мысль марки на него выводить, но тогда надо штук 5-7 экранчиков в параллель и желательно немного разных размеров при одинаковом разрешении.


Лилик: Ты дисплейный маньяк )))

1 лайк

Есть немного :slight_smile:
Иногда снятся сны, как звёзды на ночном небе собираются в гигантские контурные изображения.

Кстати наткнулся на интересный формат для ST7789 170*320, почти 2 дюйма диагональ. Таких в настройках наверное и нет. Вот товарищ-буржуин из покупателей аж 7 штук купил, хвалит, пишет не надо разрешение настраивать, только BL к 3,3В.


Вот ещё пара редких, без описания у продавца.



Покупатель про чёрный написал, что заработал как ST7789. Спросил у продавца, не знаю ответит, нет.

Я подключил к RP2040, SPI soft, рисует очень медленно да и поддержки RP2040 в библиотеке нет, сделал форк и в нём Branch, пока совсем не рабочей сделал )))
Ну так я жеж не настоящий сталевар

Для пи пико я использовал библиотеку, что ссылку давал выше (для ЕСП32).

#include <Adafruit_GFX.h>    // 
#include <Arduino_ST7789.h> //https://github.com/lspoplove/Arduino-ST7789-Library/tree/master 
#include <SPI.h>
#include "ris_0.h"//файл хранения массивов фотокартинок
#include "ris_1.h"//файл хранения массивов фотокартинок

#define TFT_DC    21  // RS
#define TFT_RST   20
//#define TFT_CS   -1
//#define TFT_MOSI  19  // SDA for hardware SPI data pin (all of available pins)
//#define TFT_SCLK  18   // SCK for hardware SPI sclk pin (all of available pins)


//Arduino_ST7789 tft = Arduino_ST7789(TFT_DC, TFT_RST, TFT_MOSI, TFT_SCLK); //for display without CS pin
Arduino_ST7789 tft = Arduino_ST7789(TFT_DC, TFT_RST);//аппаратный spi

void setup(void) {
  tft.init(240, 240);   // initialize a ST7789 chip, 240x240 pixels
  tft.setRotation(2);
  tft.fillScreen(BLACK);
  draw_Ris(0, 0, marka, 240, 240);
}
void loop() {
 draw_Foto(0, 0, fon0, 240, 240);
 draw_Foto(0, 0, marka, 240, 240); 
}
//
void draw_Ris(int x, int y, const uint8_t *bitmap, int w, int h) { //функция вывода фотокартинки
  if (x < 0 || x + w > 240 || y < 0 || y + h > 240) {
    return;
  }
  tft.setAddrWindow(x, y, x + w - 1, y + h - 1);
  for (int j = 0; j < h; j++) {
    for (int i = 0; i < 2 * w; i = i + 2) {
      tft.pushColor(256 * bitmap[i + 1 + j * 2 * w] + bitmap[i + j * 2 * w]);
    }
  }
}
//

void draw_Foto(int x, int y, const uint8_t *bitmap, int w, int h) { //функция вывода фотокартинки
  if (x < 0 || x + w > 240 || y < 0 || y + h > 240) {
    return;
  }
  tft.setAddrWindow(x, y, x + w - 1, y + h - 1);
 // SPI.beginTransaction(SPISettings(40000000, MSBFIRST, SPI_MODE0));
  digitalWrite(TFT_DC, HIGH);
 // digitalWrite(TFT_CS, LOW);
  for (int j = 0; j < h; j++) {
    for (int i = 0; i < 2 * w; i = i + 2) {
      SPI.transfer(bitmap[i + 1 + j * 2 * w]); SPI.transfer(bitmap[i + j * 2 * w]);
      // SPI.transfer(pgm_read_byte(bitmap+i+1+j*2*w));SPI.transfer(pgm_read_byte(bitmap+i+j*2*w));
    }
  }
 // digitalWrite(TFT_CS, HIGH);
  SPI.endTransaction();
 
 //
}
//

к ним это надо

#include "ris_0.h"//файл хранения массивов фотокартинок
#include "ris_1.h"//файл хранения массивов фотокартинок

Сейчас попробую на яндекс диск выложить файлы, сюда не войдут.

Вторую картинку почему то не даёт разместить.

ты бы лучше папку скетча всю сжал и опубликовал

Точно :slight_smile:

у меня такая платка

Не даёт разместить ссылку.
Ой, Капча!

У меня платка такая, что картинок на неё нет :slight_smile:
Но по поведению очень похожа на такую:

попробовал и на такой в hard SPI не взлетает

Вот архив библиотеки используемой.