STM32F7 实验38 摄像头实验 的一点疑惑

2019-07-20 02:50发布

我的问题如下:

这一章代码的逻辑我能看懂,
数据流的顺序如下,
图像数据由摄像头产生,
经过DMA传输到片上SRAM,
再通过SRAM弄到核心板的SDRAM上,
串口吧SDRAM中的图像数据发送到显示屏。

但是对代码中始终有一点疑问,


DMCI中断调用的函数

DMA中断调用的函数都有把SRAM的数据往SDRAM中传输的操作
这一点不懂



还有就是
                        if(DMADMCI_Handler.Instance->CR&(1<<19))
                                for(i=0;i<rlen;i++)
                                        pbuf[i]=dcmi_line_buf[1][i];                                //读取buf1里面的剩余数据
                        else
                                for(i=0;i<rlen;i++)
                                        pbuf[i]=dcmi_line_buf[0][i];                                //读取buf0里面的剩余数据
为什么buf有剩余数据?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
Psheng
1楼-- · 2019-07-20 04:59
DMA中断是因为双缓冲的一个BUF数据满了  所有要将这个满的BUF填充到SDRAM的总图像缓存中。然后将这个两个BUF的数据轮流传到SDRAM中。。。 为什么会有剩余的数据。是因为在帧结束后 有可能剩下的图像数据填充不满一个双缓冲BUF,所以触发不了DMA传输完成中断来搬运数据  所以要在DCMI的帧中断中将最后的数据搬运出来

一周热门 更多>