Данная библиотека используется для отображения изображений, хранящихся на SD-карте.
Сейчас поддерживаются 3 формата изображений:
Для формата №1 автор написал программу «ImageGenerator» которая превращает любые файлы BMP в формат RGB565.
Скорость:
- Image изображение с разрешением 240 × 320 пикселя (16 бит) прорисовывается примерно 100 мс
- BMP изображение с разрешением 240 × 320 пикселей (24pbb) прорисовывается примерно 165 мс
- JPG изображение с разрешением 240 × 320 пикселей прорисовывается примерно 580 мс
Потребление памяти:
- Image изображение с разрешением 240 × 320 пикселей изображения требует примерно 153 600 байт
- BMP изображение с разрешением 240 × 320 пикселей нужно 230454 байт
- JPG изображение с разрешением 240 × 320 пикселей занимает около 15 323 байт
Для работы также необходимы следующие библиотеки: «STM32_UB_LCD_ST7783» и «STM32_UB_FATFS».
Демонстрация работы:
Требования:
Подключаемые модули CooCox-IDE: отсутствуют.
Поддерживаемые библиотеки: STM32_UB_LCD_ST7783, STM32_UB_FATFS.
Перечисления:
typedef enum {
PICTURE_OK =0,
PICTURE_MEDIA_ERR,
PICTURE_FILE_ERR,
PICTURE_SIZE_ERR,
PICTURE_ID_ERR,
PICTURE_HEAD_ERR,
PICTURE_WIDTH_ERR,
PICTURE_HEIGHT_ERR,
PICTURE_BPP_ERR,
PICTURE_COMPR_ERR,
}PICTURE_ERR_t;
Функции:
PICTURE_ERR_t UB_Picture_DrawImage(const char* name, uint16_t xpos, uint16_t ypos); // нарисовать Image-файл из SD-карты
PICTURE_ERR_t UB_Picture_DrawBmp(const char* name, uint16_t xpos, uint16_t ypos); // нарисовать BMP-файл из SD-карты
PICTURE_ERR_t UB_Picture_DrawJpg(const char* name, uint16_t xpos, uint16_t ypos); // нарисовать JPG-файл из SD-карты
Пример использования:
//—————————————————————
// File : main.c
// Datum : 06.04.2013
// Version : 1.1
// 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 Picture Library
// Hinweis : Diese zwei Files muessen auf 8MHz stehen
// «cmsis_boot/stm32f4xx.h»
// «cmsis_boot/system_stm32f4xx.c»
//—————————————————————
#include «main.h»
#include «stm32_ub_picture.h»
int main(void)
{
FATFS_t check_fat;
SystemInit(); // инициализация настроек кварца
// инициализация LCD
UB_LCD_Init();
UB_LCD_FillScreen(RGB_COL_GREEN);
// инициализация FATFS-библиотеки
UB_Fatfs_Init();
// монтирование SD карты
check_fat=UB_Fatfs_Mount(MMC_0);
if(check_fat==FATFS_OK) {
// загрузить BMP-изображение с SD-карты
// и вывести его на дисплей
UB_Picture_DrawBmp(«emo2.bmp»,50,20);
// загрузить JPG-изображение с SD-карты
// и вывести его на дисплей
UB_Picture_DrawJpg(«emo2.jpg»,20,180);
UB_Fatfs_UnMount(MMC_0);
}
while(1)
{
}
}
В приложении проект CooCox и отдельная библиотека для использования в других проектах, а также программы для конвертирования графических файлов. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.
Прикрепленные файлы:
- Demo_20_FATFS_Picture_rus.rar (623 Кб)
- ImageGenerator_UB_v103.zip (237 Кб)
- ub_stm32f4_fatfs_picture_v103_rus.rar (263 Кб)