STM32 DCMI DMA 640*480相机没有数据输出

2019-07-14 13:48发布

烦恼啊 !
DMA_InitStructure.DMA_BufferSize 最大才65536个数据项数目,做320*240的分辨率设置成:
DMA_InitStructure.DMA_BufferSize = 320*240/2;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
这样功能正常,正常摄像。但是想到改成640*480分辨率我就头大了 ,640*480/2 > 65536,设置不了这么大 如果我设置DCMI中断,再设置
DMA_InitStructure.DMA_BufferSize = 320*240/2; 这样就只能得到1/4的数据  再DCMI中断重设DMA ,结果DCMI是一帧中断的, 设的4个DMABUFF得到的不是同一帧数据,于是我换成DMA中断,更改如下:
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;        
DMA_NVIC_Config();
DMA_ITConfig(DMA2_Stream1,DMA_IT_TC,ENABLE);
DMA_Cmd(DMA2_Stream1,ENABLE);                        

//拷贝自神舟开发板例程  结果相机就没有数据输出  唉 !我的天 STM32F4 有没有弄出480*640的分辨率的相机的大师 给个代码让我瞧瞧是用了什么办法
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
报纸弟弟麦花
1楼-- · 2019-07-14 20:11
 精彩回答 2  元偷偷看……
屠鸡勇士李运好
2楼-- · 2019-07-15 00:00
怎么没人回答呢  我的思路是 在DMA里面重新设置DMA缓冲区地址,共设置了4个缓冲区,中断一次传输320*240*2个字节,并变换缓冲区。这样,中断4次 ,640*480的数据就被全部接受了
冬冬5241
3楼-- · 2019-07-15 01:52
屠鸡勇士李运好 发表于 2019-3-7 20:47
怎么没人回答呢  我的思路是 在DMA里面重新设置DMA缓冲区地址,共设置了4个缓冲区,中断一次传输320*240*2个字节,并变换缓冲区。这样,中断4次 ,640*480的数据就被全部接受了

思路不错啊,程序呢
冬冬5241
4楼-- · 2019-07-15 03:29
试试DMA  double buffer
ctwewer
5楼-- · 2019-07-15 05:43
你完全可以建立多个缓冲区,DMA满了转移数据就是
屠鸡勇士李运好
6楼-- · 2019-07-15 07:14
 精彩回答 2  元偷偷看……

一周热门 更多>