打印
[应用相关]

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

[复制链接]
287|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
豌豆爹|  楼主 | 2024-9-30 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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的分辨率的相机的大师 给个代码让我瞧瞧是用了什么办法

使用特权

评论回复
沙发
610u| | 2024-10-2 20:52 | 只看该作者
640*480/2 > 65536,设置不了这么大 如果我设置DCMI中断

使用特权

评论回复
板凳
温室雏菊| | 2024-11-1 16:31 | 只看该作者
估计是哪里没配置对吧

使用特权

评论回复
地板
春日负喧| | 2024-11-2 02:00 | 只看该作者
是不是你的芯片不一样啊

使用特权

评论回复
5
我吃小朋友| | 2024-11-2 02:30 | 只看该作者
设置不了这么大可能是跟你的存储容量有关系吧

使用特权

评论回复
6
一只眠羊| | 2024-11-2 03:00 | 只看该作者
一般来说,如果你配置一致,要建议你的板子也要硬件管脚之类的一致,这样才能好使吧

使用特权

评论回复
7
失物招領| | 2024-11-2 03:30 | 只看该作者
通过分块传输和DMA中断管理,可以实现高分辨率图像的传输。每个块的大小不超过DMA的缓冲区大小限制,通过DMA中断来管理每个块的传输,并在DCMI中断中处理整个帧的传输。这样可以有效地解决DMA缓冲区大小限制的问题,实现640x480分辨率的图像传输

使用特权

评论回复
8
未说出口的像你| | 2024-11-2 04:00 | 只看该作者
建议将640x480的图像分成多个小块,每个小块的大小不超过DMA的缓冲区大小限制(65536个数据项)。通过DMA中断来管理每个小块的传输,并在DCMI中断中处理整个帧的传输

使用特权

评论回复
9
将爱藏于深海| | 2024-11-2 04:30 | 只看该作者
在处理高分辨率图像数据时,DMA的缓冲区大小限制确实是一个常见的问题。为了实现640x480分辨率的图像传输,可以采用分块传输的方式,通过DMA中断来管理数据的传输

使用特权

评论回复
10
在曼谷的春| | 2024-11-2 05:00 | 只看该作者
我觉得是不是你的DMA缓冲设置小了啊

使用特权

评论回复
11
她已醉| | 2024-11-2 07:30 | 只看该作者
你用的例程,但是你管脚IO和外设配置是不是得根据你板子进行修改啊

使用特权

评论回复
12
月亮一键变蓝| | 2024-11-2 08:00 | 只看该作者
跟DMA有关系?我觉得跟缓冲还是有关系

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

513

主题

1960

帖子

5

粉丝