OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 3448|回复: 2

STM32F407+OV2640的jpeg模式,串口输出图像不清晰

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2015-5-11
在线时间
0 小时
发表于 2015-9-10 18:05:51 | 显示全部楼层 |阅读模式
5金钱
正在学习OV2640模块,STM32F407+OV2640,STM32F4中断采集图片,通过串口传到上位机,分辨率1600*1200,图像已经可以显示出来,但每张图片大小仅仅4K,纠结了好几天,实在没找到答案,求帮忙解答
焦距已经调到最佳,摄像头距离物体80cm,是不是分辨率有错



[C] 纯文本查看 复制代码
int main(void)
{
	   
	Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz 
  delay_init(168);  //初始化延时函数
	uart_init(84,115200);		//初始化串口波特率为115200 
	//usart3_init(42,115200);		//初始化串口3 	
	usart2_init();		//初始化串口3 

	u1_printf(\"usart1_init  OK\r\n\");
  u1_printf(\"usart2_init  OK\r\n\");
  u1_printf(\"usart3_init  OK\r\n\");

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2

	
  while(OV2640_Init());  //摄像头初始化
	OV2640_ImageWin_Set(0,0,1600,1200);	//设置图像开窗大小
	OV2640_ImageSize_Set(1600,1200);//该函数设置图像尺寸大小,也就是所选格式的输出分辨率
	

	
	u1_printf(\"摄像头初始化  OK\r\n\");
	delay_ms(200);

	

			
	
	MNDCMI_Init();	//DCMI配置
	Open_NVIC(EXTI4_IRQn);
	
		while(1)
		{
		 	
			if(DMCI_OK==1)	
			{
//				u1_printf(\"数据已经准备好   OK\r\n\");
//				usart_sendJPEGdata();
				Stop_NVIC(EXTI4_IRQn);
				while(OV2640_Init());  //摄像头初始化

				OV2640_ImageWin_Set(0,0,1600,1200);	//设置图像开窗大小
					OV2640_ImageSize_Set(1632,1220);//该函数设置图像尺寸大小,也就是所选格式的输出分辨率		
	//			OV2640_Window_Set(2,2,1600,1200);//设置图像输出窗口 
	//      OV2640_OutSize_Set(1600,1200);//设置图像输出大小
				
				
				
				//OV2640_Light_Mode(0);//白平衡设置 0:自动//1:太阳sunny//2,阴天cloudy//3,办公室office//4,家里home
			//	OV2640_Auto_Exposure(0);//OV2640自动曝光等级设置 level:0~4
			 // OV2640_Color_Saturation(0);//色度设置//0:-2//1:-1//2,0//3,+1//4,+2
				//OV2640_Brightness(0);//亮度设置//0:(0X00)-2//1:(0X10)-1//2,(0X20) 0//3,(0X30)+1//4,(0X40)+2
				//OV2640_Contrast(0);//对比度设置//0:-2//1:-1//2,0//3,+1//4,+2
				
				
				DMCI_OK=0;
				Open_NVIC(EXTI4_IRQn);
				}
	
		}	
	
}


#ifndef _OV2640CFG_H
#define _OV2640CFG_H
#include \"ov2640.h\" 
//////////////////////////////////////////////////////////////////////////////////	 
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK STM32F407开发板
//OV2640 驱动代码	   
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//创建日期:2014/5/14
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2014-2024
//All rights reserved									  
////////////////////////////////////////////////////////////////////////////////// 

//OV2640 SXGA初始化寄存器序列表
//此模式下帧率为15帧
//SXGA(1600*1200) 
const u8 ov2640_sxga_init_reg_tbl[][2]=
{
//不变的
    0xff, 0x00,     //0xff set to 0x00
    0x2c, 0xff,		//rsvd
    0x2e, 0xdf,		//rsvd
    0xff, 0x01,     //0xff set to 0x01
    0x3c, 0x32,		//rsvd
	
//分频	
    0x11, 0x30,     //CLKRC BIT[5:0] CLK=XVCLK/(bit[5:0]+1)
	
	
    0x09, 0x02,		//COM2
	
	//改变摄像头采集方向
    0x04, 0x28,		//REG04 原来的
	//	0x04, 0xD8,//水平镜像,垂直翻转
	
    0x13, 0xe5,		//COM8
    0x14, 0x48,		//COM9
    0x2c, 0x0c,		//rsvd
    0x33, 0x78,		//rsvd
    0x3a, 0x33,		//rsvd
    0x3b, 0xfB,		//rsvd
		
		
    0x3e, 0x00,		//rsvd
    0x43, 0x11,		//rsvd
    0x16, 0x10,		//rsvd
		
		
    0x39, 0x92,		//rsvd
		
		
		//没变化
		//******************************//
		//MCLK 24Mhz, SVGA RGB565 output 25fps
    //OV2640_SVGA_YUV_AM 14.3 fps  24 MHz
		//原来的
		/*********************************
    0x35, 0xda,		//rsvd
    0x22, 0x1a,		//rsvd
    0x37, 0xc3,		//rsvd
    0x23, 0x00,		//rsvd
    0x34, 0xc0,		//ARCOM2
    0x36, 0x1a,		//rsvd
    0x06, 0x88,		//rsvd
    0x07, 0xc0,		//rsvd
    0x0d, 0x87,		//COM4
    0x0e, 0x41,		//rsvd
    0x4c, 0x00,		//rsvd
		*********************************/
		
		
		
		
		
		//******************************//
		// OV2640_UXGA_YUV_AM 7.5 fps  24 MHz 
		/*********************************/
		0x35, 0x88,
		0x22, 0x0a,
		0x37, 0x40,
		0x23, 0x00,
		0x34, 0xa0,
		0x36, 0x1a,
		0x06, 0x02,
		0x07, 0xc0,
		0x0d, 0xb7,
		0x0e, 0x01,
		0x4c, 0x00,
			
		/*********************************/
		
		
		
    0x48, 0x00,		//COM19
    0x5B, 0x00,		//rsvd
    0x42, 0x03,		//rsvd
		
		
    0x4a, 0x81,		//rsvd
    0x21, 0x99,		//rsvd
		
    0x24, 0x40,		//AEW
    0x25, 0x38,		//AEB
    0x26, 0x82,		//VV
    0x5c, 0x00,		//rsvd
    0x63, 0x00,		//rsvd
		
		
		0x46, 0x00,
	  0x0c, 0x38,
		
    0x61, 0x70,		//HISTO_LOW
    0x62, 0x80,		//HISTO_HIGH
    0x7c, 0x05,		//rsvd
		
		
    0x20, 0x80,		//rsvd
    0x28, 0x30,		//rsvd
    0x6c, 0x00,		//rsvd
    0x6d, 0x80,		//rsvd
    0x6e, 0x00,		//rsvd
    0x70, 0x02,		//rsvd
    0x71, 0x94,		//rsvd
    0x73, 0xc1, 	//rsvd
		
		
		0x3d, 0x34, 
	  0x5a, 0x57,
		0x12, 0x00,//UXGA 1600*1200
		
		
   // 0x12, 0x40, 	//COM7 0x40 for SVGA mode 0x20 for CIF mode
    0x17, 0x11,		//HREFST
    0x18, 0x43,		//HREFEND
    0x19, 0x00,		//VSTRT
    0x1a, 0x4b,		//VEND
    0x32, 0x09,		//REG32
    0x37, 0xc0,		//resvd
		
		
    0x4f, 0x60,		//DB50
    0x50, 0xa8,		//DB60
    0x6d, 0x00,		//rsvd
    0x3d, 0x38,		//rsvd	
    0x46, 0x3f,		//FLL
    0x4f, 0x60,		//DB50
    0x0c, 0x3c,		//COM3

    0xff, 0x00,		//0xff set to 0x00

    0xe5, 0x7f,		//rsvd
    0xf9, 0xc0,		//MC_BIST	
    0x41, 0x24,		//rsvd
    0xe0, 0x14,		//RESET
    0x76, 0xff,		//rsvd
    0x33, 0xa0,		//rsvd
    0x42, 0x20,		//rsvd
    0x43, 0x18,		//rsvd
    0x4c, 0x00,		//rsvd
    0x87, 0xd5,		//CTRL3
    0x88, 0x3f,		//rsvd
    0xd7, 0x03,		//rsvd
    0xd9, 0x10,		//rsvd
//	0xd3, 0x82,		//R_DVP_SP set 1/12 XCLK default 0x82,
    0xc8, 0x08,		//rsvd
    0xc9, 0x80,		//rsvd
//    0x7c, 0x00,		//BPADDR[3:0]
//    0x7d, 0x00,		//BPADDR[7:0]
//    0x7c, 0x03,		//BPADDR[3:0]
//    0x7d, 0x48,		//BPADDR[7:0]
//    0x7d, 0x48,		//BPADDR[7:0]
    0x7c, 0x08,		//BPADDR[3:0]
//    0x7d, 0x20,		//BPADDR[7:0]
//    0x7d, 0x10,		//BPADDR[7:0]
    0x7d, 0x0e,		//BPADDR[7:0]
    0x90, 0x00,		//rsvd
/*	0x91, 0x0e,		//rsvd
    0x91, 0x1a,		//rsvd
    0x91, 0x31,		//rsvd
    0x91, 0x5a,		//rsvd
    0x91, 0x69,		//rsvd
    0x91, 0x75,		//rsvd
    0x91, 0x7e,		//rsvd
    0x91, 0x88,		//rsvd
    0x91, 0x8f,		//rsvd
    0x91, 0x96,		//rsvd
    0x91, 0xa3,		//rsvd
    0x91, 0xaf,		//rsvd
    0x91, 0xc4,		//rsvd
    0x91, 0xd7,		//rsvd
    0x91, 0xe8,		//rsvd   */
    0x91, 0x20,		//rsvd
    0x92, 0x00,		//rsvd
/*    0x93, 0x06,		//rsvd
    0x93, 0xe3,		//rsvd
    0x93, 0x05,		//rsvd
    0x93, 0x05,		//rsvd
    0x93, 0x00,		//rsvd
    0x93, 0x04,		//rsvd
    0x93, 0x00,		//rsvd
    0x93, 0x00,		//rsvd
    0x93, 0x00,		//rsvd
    0x93, 0x00,		//rsvd
    0x93, 0x00,		//rsvd
    0x93, 0x00,		//rsvd   */
    0x93, 0x00,		//rsvd
    0x96, 0x00,		//rsvd
/*    0x97, 0x08,		//rsvd
    0x97, 0x19,		//rsvd
    0x97, 0x02,		//rsvd
    0x97, 0x0c,		//rsvd
    0x97, 0x24,		//rsvd
    0x97, 0x30,		//rsvd
    0x97, 0x28,		//rsvd
    0x97, 0x26,		//rsvd	
    0x97, 0x02,		//rsvd
    0x97, 0x98,		//rsvd		
    0x97, 0x80,		//rsvd
    0x97, 0x00,		//rsvd   */
    0x97, 0x00,		//rsvd
    0xc3, 0xed,		//CTRL1
    0xa4, 0x00,		//rsvd
    0xa8, 0x00,		//rsvd
    0xc5, 0x11,		//rsvd
    0xc6, 0x51,		//rsvd
    0xbf, 0x80,		//rsvd
    0xc7, 0x10,		//rsvd
    0xb6, 0x66,		//rsvd
    0xb8, 0xA5,		//rsvd
    0xb7, 0x64,		//rsvd
    0xb9, 0x7C,		//rsvd
    0xb3, 0xaf,		//rsvd
    0xb4, 0x97,		//rsvd
    0xb5, 0xFF,		//rsvd
    0xb0, 0xC5,		//rsvd
    0xb1, 0x94,		//rsvd
    0xb2, 0x0f,		//rsvd
    0xc4, 0x5c,		//rsvd
		
    0xc0, 0x64,		//HSIZE8[7:0]
    0xc1, 0x4B,		//VSIZE8[7:0]
    0x8c, 0x00,		//SIZEL[5:0]
    0x86, 0x3D,		//CTRL2
    0x50, 0x00,		//CTRL1[7:0]
    0x51, 0xC8,		//HSIZE[7:0]
    0x52, 0x96,		//VSIZE[7:0]
    0x53, 0x00,		//XOFFL[7:0]
    0x54, 0x00,		//YOFFL[7:0]
    0x55, 0x00,		//VHYX[7:0]
    0x5a, 0xC8,		//ZMOW[7:0]
    0x5b, 0x96,		//ZMOH[7:0]
    0x5c, 0x00,		//ZMHH[1:0]
				
	/*	
		0xc0, 0x16,   //set QCIF,see OV2640 datasheet P18
    0xc1, 0x12,   //
    0x8c, 0x00,   //0x8c是HSIZE和VSIZE的低3位,这里配置为0,就相当于实际分辨率,然后除以8,就是0XC0和0XC1的值
    0x86, 0x3D,
    0x50, 0x00,   //    
    0x51, 0x2c,   //H_SIZE,V_SIZE,配置值是实际分辨率/4
    0x52, 0x24,
    0x53, 0x00,
    0x54, 0x00,
    0x55, 0x00,   
    0x5a, 0x2c,   //OUT_W、OUT_H,配置值是实际分辨率/4
    0x5b, 0x24,
    0x5c, 0x00,
*/
		
		
  	0xd3, 0x7f,     //R_DVP_SP            {0xd3, 0x82}  changed
    0xc3, 0xed,		//CTRL1
    0x7f, 0x00,		//rsvd
    0xda, 0x00,		//IMAGE_MODE		image output format select
    0xe5, 0x1f,		//revd
    0xe1, 0x67,		//rsvd
    0xe0, 0x00,		//RESET
    0xdd, 0x7f,		//rsvd
    0x05, 0x00,		//R_BYPASS

    0xe0, 0x04,		//RESET
    0xc0, 0x16,		//HSIZE8[7:0]		set QCIF,see OV2640 datasheet P18
    0xc1, 0x12,		//VSIZE8[7:0]
    0x8c, 0x00,		//SIZEL[5:0]
    0x86, 0x3D,		//CTRL2
    0x50, 0x00,		//CTRL1[7:0]
    0x51, 0x2c,		//HSIZE[7:0]
    0x52, 0x24,		//VSIZE[7:0]
    0x53, 0x00,		//XOFFL[7:0]
    0x54, 0x00,		//YOFFL[7:0]
    0x55, 0x00,		//VHYX[7:0]
    0x5a, 0x2c,		//ZMOW[7:0]
    0x5b, 0x24,		//ZMOH[7:0]
    0x5c, 0x00,		//ZMHH[1:0]
    0xd3, 0x7f,		//R_DVP_SP			set DVP PCLK
		
		0xFF,0x00,
		0x05,0x00,
		0xDA,0x00, //0x00 for High byte first YUYV ,0x01 Low byte first UYVY
		0xD7,0x03, //{0xD7, 0x01},
		0x33,0xa0, //version 1.01
		0xe1,0x67, //version 1.01
		0x00,0x00,
		
	  0xe0, 0x00,		//RESET
		
			//然后是JPEG配置参数:
		0xFF, 0x00,
		0xe0, 0x00, //{0xe0, 0x14}
		0x05, 0x00,
		0x44, 0x03, //
		0xDA, 0x10,
		0xD7, 0x03,
		0xDF, 0x00,
		0x33, 0x80, //{0x33, 0x80},
		0x3C, 0x40, //{0x3C, 0x40},
		0xe1, 0x77, //{0xe1, 0x77},
		
  

	

};


#endif




















回复

使用道具 举报

528

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
139738
金钱
139738
注册时间
2010-12-1
在线时间
1452 小时
发表于 2015-9-10 22:24:44 | 显示全部楼层
分辨率是1600*1200的话,图片尺寸不可能是4K的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-7-20
在线时间
7 小时
发表于 2016-8-24 20:06:35 | 显示全部楼层
楼主你的图片怎么那么亮,是怎么设置的?我这边把亮度都设置到最大啦,怎么还是好暗啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

正点原子STM32/FPGA资料免费下载上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2019-4-22 04:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */