Подскажите кто может. У меня MCUFRIEND 3,5 дюйма диплей . У него вот такая проблема, небыло у него русского языка я нашел статью как вставить русские шрифты и всё получилось, но вот беда вместе с тем он перестал обновлять экран или что типа того. В общем когда данные меняются на кране он их накладывает одни на другие. Можно конечно обновлять весь дисплей принудительно но это крайне не удобно и довольно накладно по коду. подскажите что делать может есть какая нибудь команда.
библиотека:
#include <Adafruit_GFX.h>
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
//#include <Fonts/CrystalNormal14.h>
#include <Fonts/FreeSans9pt7b.h>
#include <FontsRus/CourierCyr9.h>
#include <FontsRus/Bahamas8.h>
#include <FontsRus/Bahamas6.h>
#include <FontsRus/CourierCyr18.h>
#include <FontsRus/CourierCyr10.h>
#include <FontsRus/Crystal18.h>
#include <FreeDefaultFonts.h>
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
Перевод на руский:
String utf8rus(String source)
{
int i, k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };
k = source.length(); i = 0;
while (i < k) {
n = source[i]; i++;
if (n >= 0xBF) {
switch (n) {
case 0xD0: {
n = source[i]; i++;
if (n == 0x81) {
n = 0xA8;
break;
}
if (n >= 0x90 && n <= 0xBF) n = n + 0x2F;
break;
}
case 0xD1: {
n = source[i]; i++;
if (n == 0x91) {
n = 0xB7;
break;
}
if (n >= 0x80 && n <= 0x8F) n = n + 0x6F;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
}
tft.setFont(& CourierCyr18pt8b);
//tft.fillScreen(MAGENTA);
tft.setCursor(10, 25);
tft.setTextColor(WHITE, BLACK);
//////tft.setTextSize(2);
//
tft.println("Большая комната");