вывод bmp изображения на lcd stm32f429i-disco
23.02.2016, 17:54
|
|
|
Прописка
Регистрация: 07.02.2016
Сообщений: 136
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
|
вывод 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.
|
|
|
|
23.02.2016, 23:51
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: вывод bmp изображения на lcd stm32f429i-disco
Диско у меня нет, и как там работать с экраном, не подскажу. Но. Если я правильно понимаю, вы сначала конвертером делаете из *.bmp raw-файл без заголовка, а потом используете функцию для работы с неконвертированным bmp, которая в вашем raw пытается взять выкинутые из него конвертером данные о формате и размере для вывода... Даже если все остальное сделано как надо, все равно выведете кашу.
Подсуньте неконвертированную (и несжатую) BMP-шку и посмотрите)
Последний раз редактировалось AR_Favorit; 24.02.2016 в 00:06.
|
|
|
|
24.02.2016, 00:47
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: вывод bmp изображения на lcd stm32f429i-disco
используйте вывод данных в окно. Любой контроллер дисплея его поддерживает. Даете координаты окна и потом одним потоком заливаете данные.
|
|
|
|
24.02.2016, 01:17
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: вывод bmp изображения на lcd stm32f429i-disco
Сообщение от Easyrider83
|
|
используйте вывод данных в окно. Любой контроллер дисплея его поддерживает. Даете координаты окна и потом одним потоком заливаете данные.
|
Нету у него выделенного контроллера LCD типа SSDxxxx. Встроенный в СТМку там, возможностей у него, конечно, поболее, но и разбираться сложнее)
|
|
|
|
24.02.2016, 01:26
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: вывод bmp изображения на lcd stm32f429i-disco
для начала прямоугольники заливать научитесь
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:20.
|
|