Отображение знаков на TFT

sega66
Offline
Зарегистрирован: 09.11.2011

Прикупил 2,8"TFT-шильд на контроллере 9325. Завелся с только с библиотекой от продавца. 

Вопрос в следующем, заливаю простейший код, в котором на одно и то-же место дисплея попеременно вывожу два разных символа. Почему последующий не стирает предыдущий..

[quote]


#include <Adafruit_GFX.h>    [color=#7E7E7E]// Core graphics library[/color]
#include [color=#006699]"SWTFT.h"[/color] [color=#7E7E7E]// Hardware-specific library[/color]

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

SWTFT tft;
[color=#7E7E7E]// If using the shield, all control and data lines are fixed, and[/color]
[color=#7E7E7E]// a simpler declaration can optionally be used:[/color]
[color=#7E7E7E]// SWTFT tft;[/color]

[color=#CC6600]void[/color] [color=#CC6600][b]setup[/b][/color]([color=#CC6600]void[/color]) {
[color=#CC6600][b]Serial[/b][/color].[color=#CC6600]begin[/color](9600);
tft.reset();

uint16_t identifier = tft.readID();
tft.[color=#CC6600]begin[/color](identifier);
tft.setRotation(0);
tft.fillScreen(BLACK); 
}

[color=#CC6600]void[/color] [color=#CC6600][b]loop[/b][/color]([color=#CC6600]void[/color])
{
tft.[color=#CC6600]setCursor[/color](0, 0);
tft.setTextColor(WHITE);  
tft.setTextSize(8);
tft.[color=#CC6600]println[/color]([color=#006699]"A"[/color]);
[color=#CC6600]delay[/color](2000); 
tft.[color=#CC6600]setCursor[/color](0, 0);
tft.setTextColor(RED);    
tft.setTextSize(8);
tft.[color=#CC6600]println[/color]([color=#006699]"B"[/color]);
[color=#CC6600]delay[/color](2000);
}

 

sega66
Offline
Зарегистрирован: 09.11.2011

Почему-то сообщение не вставилось:((((

Прикупил 2,8"TFT-шильд на контроллере 9325. Завелся с только с библиотекой от продавца. 

Вопрос в следующем, заливаю простейший код, в котором на одно и то-же место дисплея попеременно вывожу два разных символа. Почему последующий не стирает предыдущий..



#include <Adafruit_GFX.h>    // Core graphics library
#include "SWTFT.h" // Hardware-specific library

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

SWTFT tft;
// If using the shield, all control and data lines are fixed, and
// a simpler declaration can optionally be used:
// SWTFT tft;

void setup(void) {
Serial.begin(9600);
tft.reset();

uint16_t identifier = tft.readID();
tft.begin(identifier);
tft.setRotation(0);
tft.fillScreen(BLACK); 
}

void loop(void)
{
tft.setCursor(0, 0);
tft.setTextColor(WHITE);  
tft.setTextSize(8);
tft.println("A");
delay(2000); 
tft.setCursor(0, 0);
tft.setTextColor(RED);    
tft.setTextSize(8);
tft.println("B");
delay(2000);
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

И не должен. Если нужно стирать - делайте это вручную.

sega66
Offline
Зарегистрирован: 09.11.2011

Подскажите, как.. Например, вывожу на черном экране время в секундах и новые цифры накладываются на старые..

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, есть 100500 способов.

1. Попробуйте использовать форму setTextColor с двумя аргументами (первый - цвет текста, а второй - цвет фона) и явно укажите фон. Возможно, поможет. Дело в том, что форма setTextColor с одним аргументом (только цвет текста) предполагает прозрачный фон. 

Думаю, это поможет. Если нет, пишите, будем дальше работать.

sega66
Offline
Зарегистрирован: 09.11.2011

Евгений, Вам зачет!!!