最近用原子哥的OV7725模块+STM32F103写了一个图像接收的程序,但是收到的图像不太对劲,颜色明显不对
没有用FIFO,想尝试一下STM32芯片与OV直接连接采集图像。PCLK设置为0.5MHz,这样单片机就能正常采集了(好像PCLK 1M或2M也可以,但是有的时候会采集不到数据)
OV设置的是QVGA+RGB565输出,图像采集是正常的,可以接收到完整的一帧图像
把COM3设置为0x11使OV输出测试彩条,得到的彩条基本正常的,但是拿来拍照就不行了,解码得到的图像不对,所以怀疑是OV寄存器配置的问题
请原子哥帮忙指点一下问题在哪?
彩条测试
照片
下面是我OV寄存器的配置:
{CLKRC, 0x2f}, // 0x00//clock config F(input clock)/(Bit[5:0]+1)/2
{COM7, 0x46}, //0x46//0x46 QVGA RGB565
{HSTART, 0x3f},//0x3f 水平方向起始
{HSIZE, 0x50},//0x50
{VSTRT, 0x03},//垂直方向起始
{VSIZE, 0x78},//0x78
{HREF, 0x00},//
{HOutSize, 0x50},//0x50//图像宽度
{VOutSize, 0x78},//0x78//图像高度
{EXHCH, 0x00},//[0,1]水平输出方向低二位 [2]垂直方向输出最低位
{COM10, 0x20},//场中断时 PCLK不触发
{COM2, 0x00},//输出驱动
//DSP control
{TGT_B, 0x7f},
{FixGain, 0x09},
{AWB_Ctrl0, 0xe0},//
{DSP_Ctrl1, 0xff},
{DSP_Ctrl2, 0x0c},//0x20
{DSP_Ctrl3, 0x00},//在YUV格式下输出,0x00:Y0U0,Y1V1,Y2U2,Y3V3
{DSP_Ctrl4, 0x00},//
//AGC AEC自动曝光 AWB自动白平衡
{COM8, 0xf0},
{COM4, 0x41}, //Pll AEC CONFIG //4倍频,1个窗口曝光
{COM6, 0xc5},
{COM9, 0x21},
{BDBase, 0xFF},
{BDMStep, 0x01},
{AEW, 0x34},//AGC AEC稳定工作上限
{AEB, 0x3c},//AGC AEC稳定工作下限
{VPT, 0xa1},
{EXHCL, 0x00},
{AWBCtrl3, 0xaa},
{COM8, 0xff},
{AWBCtrl1, 0x5d},
//图像边缘锐化
{EDGE1, 0x0a},
{DNSOff, 0x01},
{EDGE2, 0x01},//上限
{EDGE3, 0x01},//下限
//矩阵系数
{MTX1, 0x5f},
{MTX2, 0x53},
{MTX3, 0x11},
{MTX4, 0x1a},
{MTX5, 0x3d},
{MTX6, 0x5a},
{MTX_Ctrl, 0x1e},
//应该是YUV设置吧
{BRIGHT, 0x00},//
{CNST, 0x25},
{USAT, 0x65},
{VSAT, 0x65},
{UVADJ0, 0x81},//
//{REG_SDE, 0x20}, //黑白
{SDE, 0x06}, //彩色,,,,改变SDE还可实现其他效果
//伽马曲线设置
{GAM1, 0x0c},//
{GAM2, 0x16},//
{GAM3, 0x2a},//
{GAM4, 0x4e},//
{GAM5, 0x61},//
{GAM6, 0x6f},//
{GAM7, 0x7b},//
{GAM8, 0x86},//
{GAM9, 0x8e},//
{GAM10, 0x97},//
{GAM11, 0xa4},//
{GAM12, 0xaf},//
{GAM13, 0xc5},//
{GAM14, 0xd7},//
{GAM15, 0xe8},//
{SLOP, 0x20},//
{HUECOS, 0x80},
{HUESIN, 0x80},
{DSPAuto, 0xff},//
{DM_LNL, 0x00},
{BDBase, 0x99},//
{BDMStep, 0x03},//
//镜头
{LC_RADI, 0x00},//
{LC_COEF, 0x13},//
{LC_XC, 0x08},//
{LC_COEFB, 0x14},//
{LC_COEFR, 0x17},//
{LC_CTR, 0x05},//
//{REG_COM5, 0xf5}, //夜视帧率自动降低,以保证图像质量
{COM5, 0x31}, //夜视帧率不变
{COM3, 0xd0},//图片镜像翻转
|