初级会员

- 积分
- 66
- 金钱
- 66
- 注册时间
- 2021-8-2
- 在线时间
- 10 小时
|
1金钱
照着例程和一些其它资料对NUCLEO-L4R5ZI板子重写了ov2640的程序,使用DCMI+DMA收集数据;由于没有屏幕所以直接使用串口输出到电脑调试,发现得到的图片被分割成了4x4的画面,每部分不完全相同,猜测是连续的16帧图片(如下)
调试使用的是80x60分辨率,分到每张图就只有20x15了。
首先初始化DMA和DCMI;摄像头初始化使用的是例程中的ov2640_sxga_init_reg_tbl数组,然后设置为RGB565模式,再设置输出大小(其中wSize = width / 4, hSize = height / 4):
- 0xFF, 0x00,
- 0xE0, 0x04,
- 0x5A, (char) (wSize & 0xFF),
- 0x5B, (char) (hSize & 0xFF),
- 0x5C, (char) ( ((wSize>>8) & 0X03) | ((hSize>>6) & 0X04) ),
- 0xE0, 0x00
复制代码 最后启动DMA传输:
- HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_CONTINUOUS, (uint32_t)captureBuffer32, CAM_DIM_W * CAM_DIM_H * 2)
复制代码
DCMI和DMA的句柄:
不知道是哪里出了问题。
不过个人感觉问题更有可能出现在OV2640模块那边,如果是DMA的问题的话图像不应该排列得这么整齐。
|
|