Description
I want to create my own fonts.
What MCU/Processor/Board and compiler are you using?
STM32F769NI / STM32F769I-DISCO / Atollic TrueStudio
What do you want to achieve?
I didn’t find the answer in the forum. The link was also not the answer.
I have two questions for fonts:
-
kisvegabor when you preparing the lv_font_roboto_28 font, did you create special characters such as LV_SYMBOL_LEFT yourself and add it to the lv_font_roboto_28.c file? Definition of LV_SYMBOL_LEFT: “\xef\x81\x94” according to UTF-8 conversion tool points to Hex code point F053 and so private use area (in FontForge is the same).
When I converted the font calibri.ttf (Online TTF to C Array Unicode Font Converter), adding the special characters ĄąŚśŻżŹźĆćĘęŃńÓ󣳧±µ and setting the font pol_znak_28.c (LV_FONT_DECLARE(pol_znak_28); ) as basic in my styles I lost special characters like LV_SYMBOL_LEFT.
with lv_font_roboto_28.c
with my font
I assume that all symbols must be declared in the font file and special characters (e.g. two or three bytes) must be declared in accordance with the definition #define LV_SYMBOL_LEFT “\ xef \ x81 \ x93” which corresponds to the file lv_font_roboto_28.c with the character /* U+F053""*/ (line 2464). After such a declaration, we can use the symbol, e.g. lv_label_set_text (btnStartLabel, LV_SYMBOL_OK); - do i understand correctly? - How to add special characters to a font file already created (e.g. µ to the lv_font_roboto_28.c file) or a new file like /* U+F053""*/ ? When I do it like in the picture below,
the characters are added to the font. He refers to them through declarations, e.g. for µ: #define MY_SYM_MICRO “\xC2\xB5”. But reading the pressed character on the keyboard “µ/m” reads the additional symbol “µ/m”.
const char* ta_txt = lv_label_get_text(ext_ta->label);
const char* txt = lv_btnm_get_active_btn_text(kb);
Where can the problem be?