stm32f767用ov5640摄像头rgblcd屏显示无图像

2019-07-20 10:36发布

我定义了一个dcmi_line_buf2[jpeg_line_size]数组
用接收到的dcmi_line_buf[][]数组对它在回调函数中进行前100个元素赋值
然后指针指向dcmi_line_buf2,进行显示,但显示出来的前面是花屏,并不是图像
将jpeg_line_size的值缩小后能出来图像,但是是一条一条的,还有重复
现在有以下几个问题想请教一下:
1.rgb屏幕是一行一行显示的,它的回调函数是怎么产生的?
2.为什么我多了个数组的赋值,就显示不出图像了?
3.如果我得到的数据是ycbcr422,有没有方法可以显示到rgb屏幕上?
附回调函数改动的程序
void rgblcd_dcmi_rx_callback(void)
{  
        u16 i;
        u16 *pbuf;
        if(DMA2_Stream1->CR&(1<<19))//DMA使用buf1,读取buf0
        {                
                for(i=0;i<100;i++)
                dcmi_line_buf2[i]=dcmi_line_buf[0][i];  
                pbuf=(u16*)dcmi_line_buf2;
        }
        else                                                 //DMA使用buf0,读取buf1
        {
                for(i=0;i<100;i++)
                {
                        dcmi_line_buf2[i]=dcmi_line_buf[1][i];                         
                }
                pbuf=(u16*)dcmi_line_buf2;
        }        
        LTDC_Color_Fill(0,curline,lcddev.width-1,curline,pbuf);//DM2D填充
        if(curline<lcddev.height)curline++;       
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。