+1 голос
Добре, есть один глупый вопрос. Как обновить лишь часть дисплея на ST7735 (1.8'')? В адафрутовской библиотеке такого нет, да и в других тоже. Или дело не в библиотеке?
(73 баллов) 6
Что вы подразумеваете под понятием "обновить дисплей"? Это перезапись определённых пикселей и строк или что либо другое? Какую именно библиотеку вы используете TFT.h ?
Да, TFT.h, да, нужно обновить лишь часть дисплея. Например, пришли показания с датчика 1, и нужно обновить лишь часть экрана, где отображаются данные с него.

2 Ответы

+2 голосов
 
Лучший ответ

Для обновления данных совсем необязательно делать заливку прямоугольной области экрана. Для этого, например, в адафрутовской библиотеке есть такой метод

tft.setTextColor(ST77XX_RED, ST77XX_BLACK);

где 1-й параметр - цвет текста, 2-й - цвет фона. В данном случае на дисплее данные будут выводиться красным цветом на черном фоне. При этом данные будут корректно обновляться и на экране не будет остатков от предыдущих показаний.

Необходимый цвет текста и фона устанавливается, например, в Setup () таким образом

tft.setTextColor(ST77XX_RED);
tft.fillScreen(ST77XX_BLACK);

необходимые цвета можно задефайнить таким образом

  #define  BLACK  0x0000
  #define BLUE    0x001F
  #define RED     0xF800
  #define GREEN   0x07E0
  #define CYAN    0x07FF
  #define MAGENTA 0xF81F
  #define YELLOW  0xFFE0
  #define WHITE   0xFFFF

далее просто делаем так

tft.setCursor(x, y);
tft.print(z);

где x,y - координаты, z - переменная (данные с датчика)

(208 баллов) 2 14
исправил
я бы еще добавил что если новый текст меньше по длине чем предыдущий, то оставшиеся символы можно затирать пробелами или добавлять впереди нули если это например одноразрядные числа.
–1 голос

Обычно для обновления конкретной области экрана её заливают фоновым цветом, а затем выводят что-то новое , обычно это текст.

display.fillRect(x,y,w,h,0x0000);
 //заливка цветом выделенной области (стирает старое показание)

Где x и  y - координаты,

 w - wide ширина,

 h - height высота , 

0x0000 цвет фона .

(1.2 тыс. баллов) 2 9 28
исправил
затирать текст прямоугольниками - жесть
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. Тигрыч

    36 балл(ов)

  2. DmitrySadakov

    16 балл(ов)

  3. Un_ka

    13 балл(ов)

  4. anod

    9 балл(ов)

  5. parovoZZ

    9 балл(ов)

  6. Vitaliy-Sh

    5 балл(ов)

Награды месяца
1-е место: Arduino Due
2-е место: Arduino Mega 2560
3-е место: Iskra Mega

...