Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

вывод bmp изображения на lcd stm32f429i-disco

Непрочитано 23.02.2016, 17:54  
Alex_golubev
Прописка
 
Регистрация: 07.02.2016
Сообщений: 136
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
Alex_golubev на пути к лучшему
По умолчанию вывод bmp изображения на lcd stm32f429i-disco

Привет.
Хочу вывести bmp изображения на lcd дисплей кита stm32f429i-disco. Для этого использовал программу для конвертирования BmpCvtDemo. Сформировал массив rgb565. После вызвал функцию
Код:
void BSP_LCD_DrawBitmap(uint32_t X, uint32_t Y, uint8_t *pBmp)
{
  uint32_t index = 0, width = 0, height = 0, bitpixel = 0;
  uint32_t address;
  uint32_t inputcolormode = 0;
  
  /* Get bitmap data address offset */
  index = *(__IO uint16_t *) (pBmp + 10);
  index |= (*(__IO uint16_t *) (pBmp + 12)) ‹‹ 16;

  /* Read bitmap width */
  width = *(uint16_t *) (pBmp + 18);
  width |= (*(uint16_t *) (pBmp + 20)) ‹‹ 16;

  /* Read bitmap height */
  height = *(uint16_t *) (pBmp + 22);
  height |= (*(uint16_t *) (pBmp + 24)) ‹‹ 16; 
 
  /* Read bit/pixel */
  bitpixel = *(uint16_t *) (pBmp + 28);   
 
  /* Set Address */
  address = LtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (((BSP_LCD_GetXSize()*Y) + X)*(4));

  /* Get the Layer pixel format */    
  if ((bitpixel/8) == 4)
  {
    inputcolormode = CM_ARGB8888;
  }
  else if ((bitpixel/8) == 2)
  {
    inputcolormode = CM_RGB565;
  }
  else
  {
    inputcolormode = CM_RGB888;
  }
 
  /* bypass the bitmap header */
  pBmp += (index + (width * (height - 1) * (bitpixel/8)));

  /* Convert picture to ARGB8888 pixel format */
  for(index=0; index ‹ height; index++)
  {
  /* Pixel format conversion */
  ConvertLineToARGB8888((uint32_t *)pBmp, (uint32_t *)address, width, inputcolormode);

  /* Increment the source and destination buffers */
  address+=  ((BSP_LCD_GetXSize() - width + width)*4);
  pBmp -= width*(bitpixel/8);
  }
}
и увидал на дисплее чудеса в виде цветных полосок мерцания и т.д. Не нашел я не какой структуры которая задает границы или что - в этом роде. Я конечно понимаю что все сделал не правильно, но не нашел я не каких функций вывода растровых изображений. Может кто решал уже данную проблему и подскажет как вывести изображения.
Реклама:

Последний раз редактировалось Alex_golubev; 23.02.2016 в 17:57.
Alex_golubev вне форума  
Непрочитано 23.02.2016, 23:51  
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: вывод bmp изображения на lcd stm32f429i-disco

Диско у меня нет, и как там работать с экраном, не подскажу. Но. Если я правильно понимаю, вы сначала конвертером делаете из *.bmp raw-файл без заголовка, а потом используете функцию для работы с неконвертированным bmp, которая в вашем raw пытается взять выкинутые из него конвертером данные о формате и размере для вывода... Даже если все остальное сделано как надо, все равно выведете кашу.

Подсуньте неконвертированную (и несжатую) BMP-шку и посмотрите)

Последний раз редактировалось AR_Favorit; 24.02.2016 в 00:06.
AR_Favorit вне форума  
Непрочитано 24.02.2016, 00:47  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: вывод bmp изображения на lcd stm32f429i-disco

используйте вывод данных в окно. Любой контроллер дисплея его поддерживает. Даете координаты окна и потом одним потоком заливаете данные.
Easyrider83 вне форума  
Непрочитано 24.02.2016, 01:17  
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: вывод bmp изображения на lcd stm32f429i-disco

Сообщение от Easyrider83 Посмотреть сообщение
используйте вывод данных в окно. Любой контроллер дисплея его поддерживает. Даете координаты окна и потом одним потоком заливаете данные.
Нету у него выделенного контроллера LCD типа SSDxxxx. Встроенный в СТМку там, возможностей у него, конечно, поболее, но и разбираться сложнее)
AR_Favorit вне форума  
Непрочитано 24.02.2016, 01:26  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: вывод bmp изображения на lcd stm32f429i-disco

для начала прямоугольники заливать научитесь
Easyrider83 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод собственных символов на LCD olegdemkiv111 Песочница (вопросы новичков) 10 08.09.2012 16:51
Вывод изображения на ls020 sersne Микроконтроллеры, АЦП, память и т.д 4 22.04.2011 13:57
Вывод на LCD sergx1300 Микроконтроллеры, АЦП, память и т.д 16 17.11.2010 00:34
LCD DEM 16261(4 bit mode) + AT89C51 ajborman Микроконтроллеры, АЦП, память и т.д 8 21.03.2007 15:26
Не могу разобраться с LCD init_sub Информация по радиокомпонентам 6 02.04.2004 05:40


Часовой пояс GMT +4, время: 13:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.