Данная библиотека используется для вывода текста на 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-7x10",&Arial_7x10,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,30,"Arial-8x13",&Arial_8x13,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,50,"Arial-10x15",&Arial_10x15,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,70,"Arial-11x18",&Arial_11x18,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,100,"Arial-13x19",&Arial_13x19,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,130,"Arial-14x22",&Arial_14x22,RGB_COL_BLACK,RGB_COL_WHITE); UB_Font_DrawString(10,160,"Arial-16x25",&Arial_16x25,RGB_COL_BLACK,RGB_COL_WHITE); // 32 битный шрифт UB_Font_DrawString32(10,190,"Arial-18x27",&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 и отдельная библиотека для использования в других проектах, а также программа для конвертирования шрифтов. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.
Прикрепленные файлы:
- ImageGenerator_UB_v103.zip (237 Кб)
- Demo_08_LCD3_rus.rar (292 Кб)
- ub_stm32f4_lcd_font_v105_rus.rar (47 Кб)
Комментарии (1) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация