Отображение знаков на TFT
- Войдите на сайт для отправки комментариев
Пт, 16/10/2015 - 18:43
Прикупил 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);
}
Почему-то сообщение не вставилось:((((
Прикупил 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); }И не должен. Если нужно стирать - делайте это вручную.
Подскажите, как.. Например, вывожу на черном экране время в секундах и новые цифры накладываются на старые..
Ну, есть 100500 способов.
1. Попробуйте использовать форму setTextColor с двумя аргументами (первый - цвет текста, а второй - цвет фона) и явно укажите фон. Возможно, поможет. Дело в том, что форма setTextColor с одним аргументом (только цвет текста) предполагает прозрачный фон.
Думаю, это поможет. Если нет, пишите, будем дальше работать.
Евгений, Вам зачет!!!