先上一下OV7670的框架圖
OV7670常用寄存器設置說明
直接看OV7670 Implementation Guide (V1.0)等
資料我已經上傳了
https://files.cnblogs.com/files/libra13179/OV7670%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3.zip
我的寄存器配置
struct regval_list { unsigned char reg_num; unsigned char value; };

1 static struct regval_list ov7670_default_regs[] = 2 { 3 /** 4 *Frame Rate Adjustment for x Mhz input clock 5 *x fps, PCLK = xMhz 6 */ 7 {0x11, 0x00},// 內部時鍾 CLKRC,對於拍照來說,值越大,越清楚,刷屏現像 越不重,攝像時,值過大 會造成跟不上 8 // 00 時,可能是對於 2.8的屏,對於 2.4屏 會出現 7格分屏現象 9 // 值越大時,攝頭移動 圖像拖尾就會越嚴重,反之OK 10 // 3值適中,2已有3分屏,0有7分屏,5拖尾重,10已花屏 11 // [7] 保留 12 // [6] 直接使用外部時鍾(沒有預分頻) 13 // [5~0] 內部時鍾分頻 內部時鍾 = 輸入時鍾/([5~0] + 1) [5~0] = 00000~11111 14 {0x6b, 0x40},//PLL*4 15 {0x2a, 0x00},//虛擬像素高位插入 16 {0x2b, 0x00},//虛擬像素低位插入 17 {0x92, 0x00},// DM_LNL 空行低8位 18 {0x93, 0x00},// DM_LNH 空行高8位 19 {0x3b, 0x02}, 20 21 //Output format 22 {0x12, 0x14},//QVGA(320*240)、RGB輸出 23 24 //RGB555/565 option(must set COM7[2] = 1 and COM7[0] = 0) 25 {0x40, 0x10},//RGB565,effective only when RGB444[1] is low 26 {0x8c, 0x00}, 27 28 /** 29 *Special effects - 特效 30 */ 31 //normal 32 {0x3a, 0x04}, 33 {0x67, 0xc0}, 34 {0x68, 0x80}, 35 36 37 /** 38 *Mirror/VFlip Enable - 水平鏡像/豎直翻轉使能 39 */ 40 {0x1e, 0x37},//修改配置值將產生圖像顯示上下或左右顛倒 41 42 43 {0x01, 0x80}, //藍色通道增益 44 {0x02, 0x80}, //紅色通道增益 45 46 47 /** 48 * Banding Filter Setting for 24Mhz Input Clock - 條紋濾波器 49 * 30fps for 60Hz light frequency 50 */ 51 {0x13, 0xe0},//banding filer enable 52 {0x9d, 0x4c},//50Hz banding filer 53 {0x9e, 0x3f},//60Hz banding filer 54 {0xa5, 0x05},//3 step for 50Hz 55 {0xab, 0x07},//4 step for 60Hz 56 {0x3b, 0x02},//select 60Hz banding filer 57 58 59 //Simple White Balance - 白平衡 60 {0x13, 0xe0},//AWB、AGC、AGC Enable and ... 61 {0x6f, 0x9f},// AWBCTR0 AWB控制0 62 63 64 //AWBC - 自動白平衡控制(Automatic white balance control) 65 {0x43, 0x14},//用戶手冊里這些寄存器的值都是保留(Reserved),不用設置的呀? 66 {0x44, 0xf0}, 67 {0x45, 0x34}, 68 {0x46, 0x58}, 69 {0x47, 0x28}, 70 {0x48, 0x3a}, 71 //AWB Control 72 {0x59, 0x88},//用戶手冊連寄存器都是保留,初始值都沒提供 73 {0x5a, 0x88}, 74 {0x5b, 0x44}, 75 {0x5c, 0x67}, 76 {0x5d, 0x49}, 77 {0x5e, 0x0e}, 78 //AWB Control 79 {0x6a, 0x40},// G通道 AWB增益 80 {0x6c, 0x0a},// AWBCTR3 AWB控制3 81 {0x6d, 0x55},// AWBCTR2 AWB控制2 82 {0x6e, 0x11},// AWBCTR1 AWB控制1 83 {0x6f, 0x9f},// AWBCTR0 AWB控制0 84 85 86 //AGC/AEC - Automatic Gain Control自動增益補償/Automatic exposure Control自動曝光控制 87 {0x00, 0x00},// AGC 自動增益控制 (值越大 能有效控制 黑像時刷花屏現象) 88 {0x14, 0x20},//0x38, limit the max gain 89 {0x24, 0x75},// AEW AGC/AEC穩定運行區域上限 90 {0x25, 0x63},// AEB AGC/AEC穩定運行區域下限 91 {0x26, 0xA5},// VPT AGC/AEC快速運行區域 92 93 94 //AEC algorithm selection - AEC公式選擇 95 {0xaa, 0x94},//基於平均值的AEC算法Average-based AEC algorithm/基於直方圖的AEC算法Histogram-based AEC algorithm 96 //基於直方圖的AGC/AEC的控制 97 {0x9f, 0x78},// HAECC1 基於直方圖的AEC/AGC控制1 98 {0xa0, 0x68},// HAECC2 基於直方圖的AEC/AGC控制2 99 {0xa6, 0xdf},// HAECC3 基於直方圖的AEC/AGC控制3 100 {0xa7, 0xdf},// HAECC4 基於直方圖的AEC/AGC控制4 101 {0xa8, 0xf0},// HAECC5 基於直方圖的AEC/AGC控制5 102 {0xa9, 0x90},// HAECC6 基於直方圖的AEC/AGC控制6 103 104 105 //Fix Gain Control - 固定增益控制 106 {0x69, 0x5d},//Fix gain for Gr channel/for Gb channel/for R channel/for B channel 107 108 109 //Matrix Coefficient - 色彩矩陣系數 110 //Color saturation 顏色飽和度 + 0 111 {0x4f, 0x80},// MTX1 色彩矩陣系數1 112 {0x50, 0x80},// MTX2 色彩矩陣系數2 113 {0x51, 0x00},// MTX3 色彩矩陣系數3 114 {0x52, 0x22},// MTX4 色彩矩陣系數4 115 {0x53, 0x5e},// MTX5 色彩矩陣系數5 116 {0x54, 0x80},// MTX6 色彩矩陣系數6 117 {0x58, 0x9e},// MTXS 色彩矩陣系數5~0的符號 118 119 120 //Brightness - 亮度 + 0 121 {0x55, 0x00}, //亮度控制 122 123 124 //Contrast - 對比度 + 0 125 {0x56, 0x60},//對比度 126 {0x57, 0x80},//對比度中心 127 128 /*Gamma Curve - 伽馬曲線*/ 129 {0x7a, 0x20}, 130 {0x7b, 0x1c}, 131 {0x7c, 0x28}, 132 {0x7d, 0x3c}, 133 {0x7e, 0x55}, 134 {0x7f, 0x68}, 135 {0x80, 0x76}, 136 {0x81, 0x80}, 137 {0x82, 0x88}, 138 {0x83, 0x8f}, 139 {0x84, 0x96}, 140 {0x85, 0xa3}, 141 {0x86, 0xaf}, 142 {0x87, 0xc4}, 143 {0x88, 0xd7}, 144 {0x89, 0xe8}, 145 146 147 /** 148 *Lens Correction Option - 鏡頭補償選項 149 */ 150 {0x62, 0x00};// LCC1 鏡頭補償選項1 151 {0x63, 0x00};// LCC2 鏡頭補償選項2 152 {0x64, 0x04},// LCC3 鏡頭補償選項3 153 {0x65, 0x20},// LCC4 鏡頭補償選項4 154 {0x66, 0x05},// LCC5 鏡頭補償選項5 155 {0x94, 0x04},// LCC6 鏡頭校正選項(在LCC5[2]=1有效) 156 {0x95, 0x08},// LCC7 鏡頭校正選項(在LCC5[2]=1有效) 157 158 159 //輸出窗口設置 160 //注釋這些配置的話,就傾斜顯示,並顯示多塊,這到底是控制什么的?跟時序圖有關? 161 {0x17, 0x16},// HSTART 行輸出格式 行幀(HREF列)起始的高8位(低3位在HREF[2~0]) 162 {0x18, 0x04},// HSTOP 行輸出格式 行幀(HREF列)結束的高位(低3位在HREF[5~3]) 163 {0x19, 0x02},// VSTRT 場輸出格式 場幀(行)起始的高8位(低2位在VREF[1~0]) 164 {0x1a, 0x7a},// VSTOP 場輸出格式 場幀(行)結束的高8位(低2位在VREF[3~2]) 165 166 {0x32, 0x80},// HREF 控制 167 {0x03, 0x0a},// VREF 場幀控制 168 169 170 //注釋這個配置的話,就顯示花屏了 171 {0x15, 0x00},//配置PCLK、HREF、VSYNC相關 172 173 174 //Automatic black Level Compensation - 自動黑電平校正 175 {0xb0, 0x84},//調試時注釋這項配置時,顏色顯示不正常了,紅色練綠色,綠色變紅色,但用戶手冊對這寄存器是保留RSVD 176 177 {0xb1, 0x0c},// ABLC1 178 {0xb2, 0x0e},//保留 179 180 {0xb3, 0x82},//ABLC target 181 {0xb8, 0x0a},// 保留 182 183 184 //SCALING_xx寄存器 185 {0x70, 0x00},//SCALING_XSC,水平縮放系數 186 {0x71, 0x00},//SCALING_YSC,垂直縮放系數 187 {0x72, 0x11}, //SCALING_DCWCTR,DCW 控制 188 {0x73, 0x00},//SCALING_PC,旁路 DSP 縮放時鍾分頻控制 189 {0xa2, 0x02},//SCALING_PCLK_DELAY,像素始終延遲 190 {0x3e, 0x00},// COM14 通用控制14 191 // [7~5] 保留 192 // [4] DCW 和 PCLK 控制: 0 正常的 PCLK 1 DCW和PCLK由COM12[2~0]及SCALING_PCLK_DIV[3~0](0X73)控制 193 // [3] 手動縮放控制,應用於預定尺寸(CIF QCIF QVGA)時:0 禁止手動縮放 1 允許手動縮放 194 // [2~0] PCLK分頻 (在COM14[4]為1時有效) 195 // 000 /1 196 // 001 /2 197 // 010 /4 198 // 011 /8 199 // 100 /16 200 // 101~111 不允許 201 202 //ADC 203 {0x37, 0x1d},//ADC控制ADC Control 204 {0x38, 0x71},//ADC和模擬共模控制ADC and Analog Common Mode Control 205 {0x39, 0x2a},//ADC偏移控制ADC Offset Control 206 207 208 //零雜的寄存器 209 210 211 212 {0x0c, 0x0c},// COM3 通用控制3 213 // [7] 保留 214 // [6] 輸出數據進行 MSB和LSB 交換 215 // [5] 掉電期間輸出時鍾的狀態 0 三態時鍾 1 非三態時鍾 216 // [4] 掉電期音輸出數據的狀態 0 三態數據 1 非三態數據 217 // [3] 縮放 0 禁止 1 使能(若設置(COM7[5~3])成預定模式的像時,然后將COM14[3]設成1 即可手動調節) 218 // [2] DCW控制 0 禁止 1 使能(若設置(COM7[5~3])成預定模式的像時,然后將COM14[3]設成1 即可手動調節) 219 // [1~0] 保留 220 221 222 {0x10, 0x00},// AECH 曝光值 223 224 225 {0x0d, 0x00}, 226 227 228 {0x0f, 0x4b}, 229 230 231 {0x3c, 0x78},//COM12 通用控制12 232 // [7] HERF操作 0 在VSYNC為低時沒有HREF 1 HREF總是存在 233 // [6~0] 保留 234 235 236 {0x74, 0x19}, 237 238 239 //用戶手冊里這幾個寄存器都是保留RSVD 240 {0x0e, 0x61}, 241 {0x16, 0x02}, 242 {0x21, 0x02},// ADCCTR1 保留 243 {0x22, 0x91},// ADCCTR2 保留 244 {0x29, 0x07},// ADCCTR3 保留 245 {0x33, 0x0b},// CHLF 感光陣列電流控制 保留 246 {0x35, 0x0b}, 247 {0x4d, 0x40}, 248 {0x4e, 0x20}, 249 {0x8d, 0x4f}, 250 {0x8e, 0x00}, 251 {0x8f, 0x00}, 252 {0x90, 0x00}, 253 {0x91, 0x00}, 254 {0x96, 0x00}, 255 {0x9a, 0x80}, 256 {0x97, 0x30}, 257 {0x98, 0x20}, 258 {0x99, 0x30}, 259 {0x9b, 0x29}, 260 {0x9c, 0x03}, 261 };