Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

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-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 и отдельная библиотека для использования в других проектах, а также программа для конвертирования шрифтов. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.

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

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

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
Дмитрий #
А можно использовать эту библиотеку совместно с графической? Например: на задний фон вывести картинку и сверху написать что-нибудь? И можно ли сделать, чтобы не было белых полос под текстом (я понял что их цвет можно выбрать, но как сделать чтобы вообще без них?)
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Arduino UNO USB-реле (2 канала)
вверх