|
大家好,最近我在调stm32驱动ov2640的项目,
我将2640配置成yuv输出格式,可以得到想要的YUV输出图像。不改变其它设置,将2640配置为jpeg输出:
其它设置不变,在后面加上:
/**************************************************************JPEG output***/
0xFF, 0x00,
0xe0, 0x14,
0x05, 0x00,
0x44, 0x03, //good quality
0xDA, 0x10,
0xD7, 0x03,
0xDF, 0x00,
0x33, 0x80,
0x3C, 0x40, //1024 pixels per line
0xe1, 0x77,
0xe0, 0x00,
/**************************************************************************/
输出的数据是jpeg格式的,包含头信息、结束信息以及图像大小等,我用看图软件打开,图像如下。可以看到,图像只有最上部分是正确的。 我在程序中加入像素点计数,发现每一行就是我设定的1024个点(改变0x3c的值,输出每行点数依然是正确的),就是说,每一行并没有丢掉点,只可能是行丢了,但是一行数据有效时间很长,按理说不会一整行都丢了(而且,包含头信息的行从没丢过) 请大家帮忙分析一下造成这种现象的原因,谢谢了。
补充一下:
由于片上存储空间有限,我暂且设定的图像是160*160的,输入时钟8M。
0x11分频设为07, d3设为0f,出来的pclk是200khz的。配置为yuv输出已经没有问题。
附图:最上一部分是想要的图像
<img src="attachments/dvbbs/2010-3/201031515103073499.jpg" border="0" onclick="zoom(this)" onload="if(this.width>document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" /> |
|