Не работает!
Перепробовал всё что можно, никто не решал проблему?
Можно на другом контроллере, важно чтобы пин CS был не выведен на колодку.
Ну как же, я вопрошал эн месяцев назад. Взял библиотеку другую. Даже может вспомню в какой теме.
37 сообщение.
Вот ссылка на исходник.
https://github.com/lspoplove/Arduino-ST7789-Library/tree/master
Заработало, попробую разобраться почему на стандартной не Алё?
на tft_eSPI работает великолепно, целый день потратил в попытках разобраться
А я так толком и не придумал ему назначение. Пока помогает картинки листать для загрузки в e-paper. Была мысль марки на него выводить, но тогда надо штук 5-7 экранчиков в параллель и желательно немного разных размеров при одинаковом разрешении.
Лилик: Ты дисплейный маньяк )))
Есть немного
Иногда снятся сны, как звёзды на ночном небе собираются в гигантские контурные изображения.
Кстати наткнулся на интересный формат для 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"//файл хранения массивов фотокартинок
Сейчас попробую на яндекс диск выложить файлы, сюда не войдут.
Вторую картинку почему то не даёт разместить.
ты бы лучше папку скетча всю сжал и опубликовал
Точно
Не даёт разместить ссылку.
“Ой, Капча!”
попробовал и на такой в hard SPI не взлетает