OV2640二值化的分辨率提升 呼唤原子哥

2019-07-20 00:56发布

因为摄像头实验例程里,DMA_BufferSize为16位的,最大支持65536,超过该大小的数据会编译不过。分辨率被限制在220*280左右。

然后自己的想法是分多次传输存储到外部SRAM。
外部SRAM地址从0x6800 0000开始,定义一个sram_buf[400*300/2] at0x6800 0000de 的数组用来存储数据

下面代码的基本思路是:有数据时触发中断,每次传输200*150/2的数据,传输完以后地址增加,再穿下一帧。但画面始终不对
是思路错了?还是设置有问题?

[mw_shl_code=applescript,true]void DMA2_Stream1_IRQHandler(void)
{
        //u32 addr=0x68000000;
        if(DMA_GetFlagStatus(DMA2_Stream1,DMA_FLAG_TCIF1)==SET)//DMA2_Steam1,传输完成标志
        {
                 DCMI_DMA_Init(addr,200*150/2,DMA_MemoryDataSize_Word,DMA_MemoryInc_Enable);
                 addr += 200*150/2;
DMA_ClearFlag(DMA2_Stream1,DMA_FLAG_TCIF1);//清除传输完成中断       
        }
        if(addr >= 0x6803A97C)
                addr = 0x68000000;

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