我定义了一个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++;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>