请教:
if(lcdltdc.pwidth!=0) //RGB屏
{
dcmi_rx_callback=rgblcd_dcmi_rx_callback;//RGB屏接收数据回调函数
DCMI_DMA_Init((u32)dcmi_line_buf[0],(u32)dcmi_line_buf[1],lcddev.width/2,1,1);//DCMI DMA配置
}else //MCU 屏
{
DCMI_DMA_Init((u32)&LCD->LCD_RAM,0,1,1,0); //DCMI DMA配置,MCU屏,竖屏
}
如上,DCMI DMA配置传输项数lcddev.width为什么要除以2,传输项数不应该是一行的像素数么,再除以2是什么意思呢?
另外,回调函数里为什么要使用两个buf?如下:
void rgblcd_dcmi_rx_callback(void)
{ u16 *pbuf;
if(DMA2_Stream1->CR&(1<<19))//DMA使用buf1,读取buf0
{
pbuf=(u16*)dcmi_line_buf[0];
}else //DMA使用buf0,读取buf1
{
pbuf=(u16*)dcmi_line_buf[1];
}
LTDC_Color_Fill(0,curline,lcddev.width-1,curline,pbuf);//DM2D填充
if(curline<lcddev.height)curline++;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2,因为双缓冲能更好的完成数据接收
一周热门 更多>