专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
阿波罗的OV5640摄像头实验的输出图像为何总是压扁状态?
2019-07-20 20:01
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
2418
4
1140
我把输出尺寸改为 600x800,比例仍然压扁。RGB模式。
OV5640_OutSize_Set(0, 0, 600, 800);
DCMI_Start(); //Æô¶ˉ′«êä
LCD_Clear(BLACK);
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
HenryYam
1楼-- · 2019-07-20 22:43
明白了,是用的RGB屏,所以图像输出水平镜像,宽度为600则高度为450,这样设置输出图像比例就合适了。
OV5640_OutSize_Set(0, 0, 600, 450);
加载中...
HenryYam
2楼-- · 2019-07-21 00:05
能否设置垂直镜像呢?如何设置?
加载中...
HenryYam
3楼-- · 2019-07-21 03:08
就是说,如何用OV5640模块获取宽高比为3:4的(竖立的)图像呢?
以前用OV2640的时候图像输出是竖立的。
加载中...
HenryYam
4楼-- · 2019-07-21 04:56
本帖最后由 HenryYam 于 2016-9-17 22:18 编辑
终于搞定了。
1,OV5640_OutSize_Set(4, 0, 600, 800); //不明白的是,这里的第一个参数 “4”是何意义?
2,void rgblcd_dcmi_rx_callback(void) 这个函数定义里面,最后要添加一行:
//if(CurrentLineNo < lcddev.height) CurrentLineNo ++;
if(CurrentLineNo < 800) CurrentLineNo ++;
else CurrentLineNo = 0; //这一行是后加上去的。如果没有这一行,则图像最下部分有条重影带。
3,最重要的一点,是要改变画面比例。这需要在 ov5640cfg.h 文件中的 const u16 ov5640_rgb565_reg_tbl[][2] 定义中,修改以下几行:
// 0x3800, 0x00, // HS
// 0x3801, 0x00, // HS
// 0x3802, 0x00, // VS
// 0x3803, 0x00, // VS
// 0x3804, 0x0a, // HW (HE) 2623 = 2592+16+16-1
// 0x3805, 0x3f, // HW (HE)
// 0x3806, 0x06, // VH (VE) 1705 = ? 不明白这个数字是怎么来的?垂直方向上不是有1944个点吗,怎么只有1706个点了?
// 0x3807, 0xa9, // VH (VE)
0x3800, 0x02, // HS
0x3801, 0x91, // HS
0x3802, 0x00, // VS
0x3803, 0x00, // VS
0x3804, 0x07, // HW (HE) 1935 (1278 x 1705)
0x3805, 0x8f, // HW (HE)
0x3806, 0x06, // VH (VE)
0x3807, 0xa9, // VH (VE)
以上注释掉的是原来的数值。
加载中...
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
OV5640_OutSize_Set(0, 0, 600, 450);
以前用OV2640的时候图像输出是竖立的。
终于搞定了。
1,OV5640_OutSize_Set(4, 0, 600, 800); //不明白的是,这里的第一个参数 “4”是何意义?
2,void rgblcd_dcmi_rx_callback(void) 这个函数定义里面,最后要添加一行:
//if(CurrentLineNo < lcddev.height) CurrentLineNo ++;
if(CurrentLineNo < 800) CurrentLineNo ++;
else CurrentLineNo = 0; //这一行是后加上去的。如果没有这一行,则图像最下部分有条重影带。
3,最重要的一点,是要改变画面比例。这需要在 ov5640cfg.h 文件中的 const u16 ov5640_rgb565_reg_tbl[][2] 定义中,修改以下几行:
// 0x3800, 0x00, // HS
// 0x3801, 0x00, // HS
// 0x3802, 0x00, // VS
// 0x3803, 0x00, // VS
// 0x3804, 0x0a, // HW (HE) 2623 = 2592+16+16-1
// 0x3805, 0x3f, // HW (HE)
// 0x3806, 0x06, // VH (VE) 1705 = ? 不明白这个数字是怎么来的?垂直方向上不是有1944个点吗,怎么只有1706个点了?
// 0x3807, 0xa9, // VH (VE)
0x3800, 0x02, // HS
0x3801, 0x91, // HS
0x3802, 0x00, // VS
0x3803, 0x00, // VS
0x3804, 0x07, // HW (HE) 1935 (1278 x 1705)
0x3805, 0x8f, // HW (HE)
0x3806, 0x06, // VH (VE)
0x3807, 0xa9, // VH (VE)
以上注释掉的是原来的数值。
一周热门 更多>