STM32F4. Урок 8 — Библиотека шрифтов для дисплея ST7783

Данная библиотека используется для вывода текста на LCD-дисплей.
Для ее работы необходима библиотека для работы с дисплеем «STM32_UB_LCD_ST7783» и один или более файлы шрифтов, которые должны быть включены в проект.
В данную библиотеку включено несколько шрифтов. С помощью написанной автором программой «PixelFontGenerator» любые компьютерные шрифты могут быть преобразованы в требуемый формат.
Начиная с версии 1.4 появилась поддержка шрифтов до 32 пикселей в ширину.
Начиная с версии версии 1.5 появилась поддержка пропорциональных шрифтов(шрифты с буквами разной ширины) для генерации таких шрифтов требуется программа версии 1.6 и выше!

Пример шрифтов:

Требования:
 Подключаемые модули CooCox-IDE: отсутствуют.
 Поддерживаемые библиотеки: STM32_UB_LCD_ST7783.

Функции:

// Шрифты одной ширины
void UB_Font_DrawChar(uint16_t x, uint16_t y, uint8_t ascii, UB_Font *font, uint16_t vg, uint16_t bg); // Нарисовать символ (максимальный размер 16 пикселей)
void UB_Font_DrawString(uint16_t x, uint16_t y,char *ptr, UB_Font *font, uint16_t vg, uint16_t bg); // Нарисовать текст (максимальный размер 16 пикселей)
void UB_Font_DrawChar32(uint16_t x, uint16_t y, uint8_t ascii, UB_Font32 *font, uint16_t vg, uint16_t bg); // Нарисовать символ (максимальный размер 32 пикселя)
void UB_Font_DrawString32(uint16_t x, uint16_t y,char *ptr, UB_Font32 *font, uint16_t vg, uint16_t bg); // Нарисовать текст (максимальный размер 32 пикселя)
// Пропорциональные шрифты
uint16_t UB_Font_DrawPChar(uint16_t x, uint16_t y, uint8_t ascii, UB_pFont *font, uint16_t vg, uint16_t bg); // Нарисовать символ (максимальный размер 16 пикселей)
void UB_Font_DrawPString(uint16_t x, uint16_t y,char *ptr, UB_pFont *font, uint16_t vg, uint16_t bg); // Нарисовать текст (максимальный размер 16 пикселей)
uint16_t UB_Font_DrawPChar32(uint16_t x, uint16_t y, uint8_t ascii, UB_pFont32 *font, uint16_t vg, uint16_t bg); // Нарисовать символ (максимальный размер 32 пикселя)
void UB_Font_DrawPString32(uint16_t x, uint16_t y,char *ptr, UB_pFont32 *font, uint16_t vg, uint16_t bg); // Нарисовать текст (максимальный размер 32 пикселя)

Пример использования:

//—————————————————————
// File : main.c
// Datum : 24.07.2014
// Version : 1.2
// Autor : UB
// EMail : mc-4u(@)t-online.de
// Web : www.mikrocontroller-4u.de
// CPU : STM32F4
// IDE : CooCox CoIDE 1.7.0
// Module : CMSIS_BOOT, M4_CMSIS_CORE
// Funktion : Demo der Font-Library
// Hinweis : Diese zwei Files muessen auf 8MHz stehen
// «cmsis_boot/stm32f4xx.h»
// «cmsis_boot/system_stm32f4xx.c»
//—————————————————————

#include «main.h»
#include «stm32_ub_lcd_st7783.h»
#include «stm32_ub_font.h»

int main(void)
{
SystemInit(); // Инициализация настроек кварца

UB_LCD_Init(); // Инициализация LCD

// Цвет экрана — синий
UB_LCD_FillScreen(RGB_COL_BLUE);

// Черный текст на белом фоне, рисование различными шрифтами
UB_Font_DrawString(10,10,»Arial-7×10″,&Arial_7x10,RGB_COL_BLACK,RGB_COL_WHITE);
UB_Font_DrawString(10,30,»Arial-8×13″,&Arial_8x13,RGB_COL_BLACK,RGB_COL_WHITE);
UB_Font_DrawString(10,50,»Arial-10×15″,&Arial_10x15,RGB_COL_BLACK,RGB_COL_WHITE);
UB_Font_DrawString(10,70,»Arial-11×18″,&Arial_11x18,RGB_COL_BLACK,RGB_COL_WHITE);
UB_Font_DrawString(10,100,»Arial-13×19″,&Arial_13x19,RGB_COL_BLACK,RGB_COL_WHITE);
UB_Font_DrawString(10,130,»Arial-14×22″,&Arial_14x22,RGB_COL_BLACK,RGB_COL_WHITE);
UB_Font_DrawString(10,160,»Arial-16×25″,&Arial_16x25,RGB_COL_BLACK,RGB_COL_WHITE);
// 32 битный шрифт
UB_Font_DrawString32(10,190,»Arial-18×27″,&Arial_18x27,RGB_COL_BLACK,RGB_COL_WHITE);
// пропорциональный шрифт
UB_Font_DrawPString(10,220,»Times 15 (proportional)»,&pTimes_15,RGB_COL_BLACK,RGB_COL_WHITE);
// 32 битный пропорциональный шрифт
UB_Font_DrawPString32(10,240,»Times 18 (proportional)»,&pTimes_18,RGB_COL_BLACK,RGB_COL_WHITE);

while(1)
{

}
}

В приложении проект CooCox и отдельная библиотека для использования в других проектах, а также программа для конвертирования шрифтов. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.

Оригинал статьи

Прикрепленные файлы:

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

Ваш адрес email не будет опубликован.