+2 голосов
Добре, есть один глупый вопрос. Как обновить лишь часть дисплея на ST7735 (1.8'')? В адафрутовской библиотеке такого нет, да и в других тоже. Или дело не в библиотеке?
(72 баллов) 1 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 баллов) 4 16
исправил
я бы еще добавил что если новый текст меньше по длине чем предыдущий, то оставшиеся символы можно затирать пробелами или добавлять впереди нули если это например одноразрядные числа.
0 голосов

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

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

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

 w - wide ширина,

 h - height высота , 

0x0000 цвет фона .

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

    75 балл(ов)

  2. Un_ka

    54 балл(ов)

  3. parovoZZ

    12 балл(ов)

  4. sser

    10 балл(ов)

  5. Тёмик

    5 балл(ов)

  6. NesteruS

    5 балл(ов)

Награды месяца
1-е место: OLED-дисплей (Troyka-модуль)
2-е место: Графический экран 128×64
3-е место: Текстовый дисплей 16×2 (Troyka-модуль)

...