摄像头实验DMA传数时 数据传输长度配置问题

2019-07-20 05:13发布

请教:
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++;
}

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