[应用相关] STM32 DCMI DMA 640*480相机没有数据输出

[复制链接]
1375|18
 楼主| 豌豆爹 发表于 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 | 显示全部楼层
是不是你的芯片不一样啊
我吃小朋友 发表于 2024-11-2 02:30 | 显示全部楼层
设置不了这么大可能是跟你的存储容量有关系吧
一只眠羊 发表于 2024-11-2 03:00 | 显示全部楼层
一般来说,如果你配置一致,要建议你的板子也要硬件管脚之类的一致,这样才能好使吧
失物招領 发表于 2024-11-2 03:30 | 显示全部楼层
通过分块传输和DMA中断管理,可以实现高分辨率图像的传输。每个块的大小不超过DMA的缓冲区大小限制,通过DMA中断来管理每个块的传输,并在DCMI中断中处理整个帧的传输。这样可以有效地解决DMA缓冲区大小限制的问题,实现640x480分辨率的图像传输
未说出口的像你 发表于 2024-11-2 04:00 | 显示全部楼层
建议将640x480的图像分成多个小块,每个小块的大小不超过DMA的缓冲区大小限制(65536个数据项)。通过DMA中断来管理每个小块的传输,并在DCMI中断中处理整个帧的传输
将爱藏于深海 发表于 2024-11-2 04:30 | 显示全部楼层
在处理高分辨率图像数据时,DMA的缓冲区大小限制确实是一个常见的问题。为了实现640x480分辨率的图像传输,可以采用分块传输的方式,通过DMA中断来管理数据的传输
在曼谷的春 发表于 2024-11-2 05:00 | 显示全部楼层
我觉得是不是你的DMA缓冲设置小了啊
她已醉 发表于 2024-11-2 07:30 | 显示全部楼层
你用的例程,但是你管脚IO和外设配置是不是得根据你板子进行修改啊
月亮一键变蓝 发表于 2024-11-2 08:00 | 显示全部楼层
跟DMA有关系?我觉得跟缓冲还是有关系
classroom 发表于 2024-12-6 16:50 | 显示全部楼层
图像输出大小与窗口设置不匹配
laocuo1142 发表于 2024-12-6 19:00 | 显示全部楼层
硬件连接问题
powerantone 发表于 2024-12-6 20:00 | 显示全部楼层
中断配置不正确或中断处理函数存在错误
stormwind123 发表于 2024-12-6 20:00 | 显示全部楼层
使用的STM32固件库或HAL库可能存在bug或不支持某些功能,导致无法正确配置和使用DCMI和DMA。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

534

主题

2329

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部