Добрый день.
Дано: arduino mega 2560 r3 wifi esp8266 + TFT 3,5 (ili9341).
Всё работает, всё выводит (литиницу, кирилицу)
#include <Adafruit_GFX.h>
#include "RotondaBold20pt7b.h"
#include "FreeSans18.h"
#include <MCUFRIEND_kbv.h>
#define maxString 100
char target[maxString + 1] = "";
MCUFRIEND_kbv tft;
uint16_t ID;
uint8_t Orientation = 1;
#define BLACK 0x0000
#define RED 0xF800
#define YELLOWGREEN 0x9E6
void setup()
{
ID = tft.readID();
tft.begin(ID);
tft.cp437(true);
tft.setRotation(Orientation);
tft.fillScreen(YELLOWGREEN);
tft.setFont(&FreeSans18pt8b);
tft.setCursor(78, 163);
tft.setTextSize(1);
tft.setTextColor(RED);
tft.print(utf8rus2("Save-Сохранить"));
}
void loop()
{
}
char *utf8rus2(char *source)
{
int i,j,k;
unsigned char n;
char m[2] = { '0', '\0' };
strcpy(target, ""); k = strlen(source); i = j = 0;
while (i < k) {
n = source[i]; i++;
if (n >= 127) {
switch (n) {
case 208: {
n = source[i]; i++;
if (n == 129) { n = 192; break; }
break;
}
case 209: {
n = source[i]; i++;
if (n == 145) { n = 193; break; }
break;
}
}
}
m[0] = n; strcat(target, m);
j++; if (j >= maxString) break;
}
return target;
}
Но, кирилицу только из шрифтов скачаных с GitHub для AdaFruit GFX
Например шрифты FreeSans.
Но мне надо использовать сторонний шрифт. Скачал. точно известно что он кирилический.
Использую вот это для конвертации:
Загружаю шрифт. Для примера ввожу “привет”. Оно отображается. Но при конвертации исчезают символы кирилицы. Их нет в .h файле.
Что интересно FreeSans18.h используется в скетче с “pt8b” (…tft.setFont(&FreeSans18pt8b);…)
А конвертированные шрифты оканчиваются на “pt7b”.
Подскажите как мне правильно конвертировать и чем сторонние шрифты что бы не “терялись” кирилические символы.
P.S. Нашел на GitHub Adafruit-fontconverter-for-russian-font
Написано - работа через командную строку.
Ок.
fontconvert.exe myfont.ttf 12 32 255 RUS 127
И ничего.
ссылка на шрифты