STM32F767摄像头实验(使用的ov5640)中,源程序为:
void rgblcd_dcmi_rx_callback(void)
{
u16 *pbuf;
if(DMA2_Stream1->CR&(1<<19))//DMAê1óÃbuf1,¶áè¡buf0
{
pbuf=(u16*)dcmi_line_buf[0];
}else //DMAê1óÃbuf0,¶áè¡buf1
{
pbuf=(u16*)dcmi_line_buf[1];
}
LTDC_Color_Fill(0,curline,lcddev.width-1,curline,pbuf);//DM2Dìî3ä
if(curline<lcddev.height)curline++;
}
自己添加了中间变量RGB565_data数组后,程序如下:
u16 RGB565_data[600]={0}; //这里的600为lcd宽度
void rgblcd_dcmi_rx_callback(void)
{
u16 *pbuf;
u16 ii=0;
if(DMA2_Stream1->CR&(1<<19))//DMAê1óÃbuf1,¶áè¡buf0
{
pbuf=(u16*)dcmi_line_buf[0];
}else //DMAê1óÃbuf0,¶áè¡buf1
{
pbuf=(u16*)dcmi_line_buf[1];
}
for(ii=0;ii<600;ii++)
RGB565_data[ii]=*(pbuf+ii);
LTDC_Color_Fill(0,curline,lcddev.width-1,curline,RGB565_data);
if(curline<lcddev.height)
curline++;
}
此时LCD上花屏了,不是摄像头捕获的视频,该程序只引入了u16 RGB565_data[600]数组,求各位解答,谢谢!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
经过调试,发现就是速度变慢导致的。在stm32中主频太低,难道没有办法对800*600分辨率的视频做图像处理吗?
有没有办法在stm32中可以对实时的视频做处理?
一周热门 更多>