正点哥里面给的例程 DCMI_DMA_Init((u32)dcmi_line_buf[0],(u32)dcmi_line_buf[1],lcddev.width/2,DMA_MDATAALIGN_HALFWORD,DMA_MINC_ENABLE);
这句话就是开启DMA双缓冲,每个数组存有lcddev.width/2个像素点【假设一行有lcddev.width个像素点,一共两个数组,每个数组保存一半 这样理解应该没错吧】
但是在DMA中断里面
LTDC_Color_Fill(0,curline,lcddev.width-1,curline,pbuf);//DM2D填充【这里为什么是lcddev.width-1】
if(curline<lcddev.height)curline++;
就是每一次中断他都会把整个行填满,但是我每次进入DMA中断只采集了一般的像素点呀 ,为什么显示屏还能正常显示图像呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
长度问题看图,DMA传输和写到LCD的速度都很快,肉眼看不到一行行显示
一周热门 更多>