STM32 – лучше поздно, чем никогда! #6 (Монохромный дисплей GMG12864-06D шрифты и вывод текста)

Автор: | 29.09.2023

Посидел пару вечеров над шрифтами и выводом текста. Можно конечно слямзить код шрифта с функциями вывода символа и текста, но как быть если хочется шрифт покрасивше?! Да и поглубже разобраться с данным вопросом не помешает.

Есть такая замечательная программка matrixFont, с помощью нее можно с конвертировать в код С/С++ любой виндовый шрифт, что я и сделал с любимым шрифтом Tahoma

Выгрузил шрифт в “h” файл со следующими настройками

Из шрифта Terminus взял только цифры размером в 10×15 пикселей

Пришлось напрячь извилины и написать функции вывода этих двух шрифтов, если по простому, то шрифт кодируется набором строк и столбцов, в которых “1” это закрашенный пиксель, а “0” не закрашенный пиксель, количество пикселей по горизонтали и вертикали есть ни что иное как размер символа шрифта. Разница между выбранными размерами шрифтов в том, что в тахоме строка одного символа хранится в одном байте, а в терминусе в двух байтах. В библиотеку было добавлено три функции:

  • вывод одного символа шрифта с однобайтовой строкой;
  • вывод одного символа шрифта с двухбайтовой строкой;
  • вывод строки шрифтом с однобайтовой строкой.

В итоге вот, что получилось, кстати данный дисплей хорошо симулируется в протеусе

Сделал возможность вывода инверсных символов и строк, добавил в демку вывод символов и строк, в обычном и инверсном отображении, вот оно на видео

Таким образом в проект можно интегрировать практически любой виндовый шрифт. Данную библиотеку не сложно подправить и под цветной TFT дисплей, который лежит ждет своей очереди!

Ниже проект с библиотекой в архиве

Да, один момент, если писать в STM32CubeIDE с настройками по умолчанию, то так как кодировка там стоит UTF-8, с выводом на дисплей и в UART будут проблемы с русскими буковками, но все легко лечится:

  • копируем текст кода проекта в буфер обмена, потом через меню Edit/Set Encoding…

  • конвертируем код в кодировку Windows-1251(CP1251), и вставляем из буфера скопированный код, сохраняем и радуемся!

Продолжение следует…

73!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *