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

2 Ответы

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

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

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 - переменная (данные с датчика)

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

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

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

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

 w - wide ширина,

 h - height высота , 

0x0000 цвет фона .

(3.1 тыс. баллов) 15 20 41
исправил
затирать текст прямоугольниками - жесть
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.

    За этот месяц ещё никого.

    ...