OV5640的例程的疑问

2019-07-20 12:58发布

正点哥里面给的例程   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中断只采集了一般的像素点呀 ,为什么显示屏还能正常显示图像呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Downstream
1楼-- · 2019-07-20 15:45
 精彩回答 2  元偷偷看……
Downstream
2楼-- · 2019-07-20 21:16
知道的可以解释一下吗
电子之旅
3楼-- · 2019-07-20 22:25
本帖最后由 电子之旅 于 2017-7-31 18:03 编辑
Downstream 发表于 2017-7-31 15:51
知道的可以解释一下吗

长度问题看图,DMA传输和写到LCD的速度都很快,肉眼看不到一行行显示
正点原子
4楼-- · 2019-07-20 22:29
 精彩回答 2  元偷偷看……

一周热门 更多>