日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于STM32的OV7725摄像头拍照实验

發布時間:2024/3/12 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于STM32的OV7725摄像头拍照实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

平臺:STM32ZET6(核心板)+ST-LINK/V2+SD卡+USB串口線+鷹眼OV7725攝像頭(注意,為了減少攝像頭連線的麻煩,建議初學者選取單片機時選用帶有攝像頭接口的板子)

工程介紹:需要移植FatFs文件系統,同時需要了解BMP位圖的存儲數據結構,從而實現將攝像頭輸出的RGB565像素數據直接輸出到sd卡上,保存為*.bmp文件。

1. BMP位圖的存儲

1.1?數據結構介紹

//BMP頭文件 typedef __packed struct {u16 bfType ; //文件標志.只對'BM',用來識別BMP位圖類型u32 bfSize ; //文件大小,占四個字節u16 bfReserved1 ;//保留u16 bfReserved2 ;//保留u32 bfOffBits ; //從文件開始到位圖數據(bitmap data)開始之間的的偏移量 }BITMAPFILEHEADER ; //BMP信息頭 typedef __packed struct {u32 biSize ; //說明BITMAPINFOHEADER結構所需要的字數。long biWidth ; //說明圖象的寬度,以象素為單位 long biHeight ; //說明圖象的高度,以象素為單位 u16 biPlanes ; //為目標設備說明位面數,其值將總是被設為1 u16 biBitCount ; ????????//說明比特數/象素,其值為1、4、8、16、24、或32/*說明圖象數據壓縮的類型。其值可以是下述值之一:BI_RGB:沒有壓縮;BI_RLE8:每個象素8比特的RLE壓縮編碼,壓縮格式由2字節組成(重復象素計數和顏色索引); BI_RLE4:每個象素4比特的RLE壓縮編碼,壓縮格式由2字節組成BI_BITFIELDS:每個象素的比特由指定的掩碼決定。*/u32 biCompression ; u32 biSizeImage ; //說明圖象的大小,以字節為單位。當用BI_RGB格式時,可設置為0 long biXPelsPerMeter ; //說明水平分辨率,用象素/米表示long biYPelsPerMeter ; //說明垂直分辨率,用象素/米表示u32 biClrUsed ; //說明位圖實際使用的彩色表中的顏色索引數u32 biClrImportant ; //說明對圖象顯示有重要影響的顏色索引的數目,如果是0,表示都重要。 }BITMAPINFOHEADER ; //彩色表 typedef __packed struct {u8 rgbBlue ; ????//指定藍色強度u8 rgbGreen ; //指定綠色強度 u8 rgbRed ; //指定紅色強度 u8 rgbReserved ;????//保留,設置為0 }RGBQUAD ; //整體信息頭(以上數據結構的組合) typedef __packed struct { BITMAPFILEHEADER bmfHeader;BITMAPINFOHEADER bmiHeader; RGBQUAD RGB_MASK[3]; //調色板用于存放RGB掩碼. }BITMAPINFO;

1.2 設置方法

//提前檢查是否需要保存圖片if(ov_sta && KEY_Scan(S1))//按鍵1按下(拍照){printf("開始保存圖片\r\n");//打開文件,若不存在就創建res_sd = f_open(&fnew, "0:test1.bmp", FA_OPEN_ALWAYS | FA_WRITE);//文件打開成功if(res_sd == FR_OK){//填寫文件信息頭信息 bmp.bmfHeader.bfType = 0x4D42; //bmp類型 bmp.bmfHeader.bfSize= 54 + 320*240*2; ????????//文件大小(信息結構體+像素數據)bmp.bmfHeader.bfReserved1 = 0x0000; //保留,必須為0bmp.bmfHeader.bfReserved2 = 0x0000; bmp.bmfHeader.bfOffBits=54; //位圖信息結構體所占的字節數//填寫位圖信息頭信息 bmp.bmiHeader.biSize=40; ????????????//位圖信息頭的大小bmp.bmiHeader.biWidth=320; ????//位圖的寬度bmp.bmiHeader.biHeight=240; //圖像的高度bmp.bmiHeader.biPlanes=1; ????????????//目標設別的級別,必須是1bmp.bmiHeader.biBitCount=16; ????????????//每像素位數bmp.bmiHeader.biCompression=0; ?????//RGB555格式bmp.bmiHeader.biSizeImage=320*240*2; ???????????? //實際位圖所占用的字節數(僅考慮位圖像素數據)bmp.bmiHeader.biXPelsPerMeter=0; //水平分辨率bmp.bmiHeader.biYPelsPerMeter=0; //垂直分辨率bmp.bmiHeader.biClrImportant=0; ??????????//說明圖像顯示有重要影響的顏色索引數目,0代表所有的顏色一樣重要bmp.bmiHeader.biClrUsed=0; //位圖實際使用的彩色表中的顏色索引數,0表示使用所有的調色板項//RGB565格式掩碼bmp.RGB_MASK[0].rgbBlue = 0;bmp.RGB_MASK[0].rgbGreen = 0xF8;bmp.RGB_MASK[0].rgbRed = 0;bmp.RGB_MASK[0].rgbReserved = 0;bmp.RGB_MASK[1].rgbBlue = 0xE0;bmp.RGB_MASK[1].rgbGreen = 0x07;bmp.RGB_MASK[1].rgbRed = 0;bmp.RGB_MASK[1].rgbReserved = 0;bmp.RGB_MASK[2].rgbBlue = 0x1F;bmp.RGB_MASK[2].rgbGreen = 0;bmp.RGB_MASK[2].rgbRed = 0;bmp.RGB_MASK[2].rgbReserved = 0;//寫文件頭進文件 res_sd= f_write(&fnew, &bmp, sizeof(bmp), &fnum);}//讀指針復位OV7725_RRST=0; //開始復位讀指針OV7725_RCK_L;OV7725_RCK_H;OV7725_RCK_L;OV7725_RRST=1; //復位讀指針結束 OV7725_RCK_H; /*圖像花屏的原因在于讀取時的干擾和讀取時漏掉幾個像素*/for(i=0;i<240;i++){for(j=0;j<320;j++){OV7725_RCK_L;color=GPIOC->IDR&0XFF; //讀數據OV7725_RCK_H; color<<=8; OV7725_RCK_L;color|=GPIOC->IDR&0XFF; //讀數據OV7725_RCK_H; //寫位圖信息頭進內存卡(FatFs中的方法)f_write(&fnew, &color, sizeof(color), &fnum);}}//關閉文件f_close(&fnew);delay_ms(1000);return;}

2. OV7725驅動程序設計

2.1 OV7725寄存器設置

#ifndef _OV7725CFG_H #define _OV7725CFG_H #include "ov7725.h" /* OV7725寄存器宏定義 */ #define GAIN 0x00 #define BLUE 0x01 #define RED 0x02 #define RED 0x02 #define GREEN 0x03 #define BAVG 0x05 #define GAVG 0x06 #define RAVG 0x07 #define AECH 0x08 #define COM2 0x09 #define PID 0x0A #define VER 0x0B #define COM3 0x0C #define COM4 0x0D #define COM5 0x0E #define COM6 0x0F #define AEC 0x10 #define CLKRC 0x11 #define COM7 0x12 #define COM8 0x13 #define COM9 0x14 #define COM10 0x15 #define REG16 0x16 #define HSTART 0x17 #define HSIZE 0x18 #define VSTRT 0x19 #define VSIZE 0x1A #define PSHFT 0x1B #define MIDH 0x1C #define MIDL 0x1D #define LAEC 0x1F #define COM11 0x20 #define BDBase 0x22 #define BDMStep 0x23 #define AEW 0x24 #define AEB 0x25 #define VPT 0x26 #define REG28 0x28 #define HOutSize 0x29 #define EXHCH 0x2A #define EXHCL 0x2B #define VOutSize 0x2C #define ADVFL 0x2D #define ADVFH 0x2E #define YAVE 0x2F #define LumHTh 0x30 #define LumLTh 0x31 #define HREF 0x32 #define DM_LNL 0x33 #define DM_LNH 0x34 #define ADoff_B 0x35 #define ADoff_R 0x36 #define ADoff_Gb 0x37 #define ADoff_Gr 0x38 #define Off_B 0x39 #define Off_R 0x3A #define Off_Gb 0x3B #define Off_Gr 0x3C #define COM12 0x3D #define COM13 0x3E #define COM14 0x3F #define COM16 0x41 #define TGT_B 0x42 #define TGT_R 0x43 #define TGT_Gb 0x44 #define TGT_Gr 0x45 #define LC_CTR 0x46 #define LC_XC 0x47 #define LC_YC 0x48 #define LC_COEF 0x49 #define LC_RADI 0x4A #define LC_COEFB 0x4B #define LC_COEFR 0x4C #define FixGain 0x4D #define AREF1 0x4F #define AREF6 0x54 #define UFix 0x60 #define VFix 0x61 #define AWBb_blk 0x62 #define AWB_Ctrl0 0x63 #define DSP_Ctrl1 0x64 #define DSP_Ctrl2 0x65 #define DSP_Ctrl3 0x66 #define DSP_Ctrl4 0x67 #define AWB_bias 0x68 #define AWBCtrl1 0x69 #define AWBCtrl2 0x6A #define AWBCtrl3 0x6B #define AWBCtrl4 0x6C #define AWBCtrl5 0x6D #define AWBCtrl6 0x6E #define AWBCtrl7 0x6F #define AWBCtrl8 0x70 #define AWBCtrl9 0x71 #define AWBCtrl10 0x72 #define AWBCtrl11 0x73 #define AWBCtrl12 0x74 #define AWBCtrl13 0x75 #define AWBCtrl14 0x76 #define AWBCtrl15 0x77 #define AWBCtrl16 0x78 #define AWBCtrl17 0x79 #define AWBCtrl18 0x7A #define AWBCtrl19 0x7B #define AWBCtrl20 0x7C #define AWBCtrl21 0x7D #define GAM1 0x7E #define GAM2 0x7F #define GAM3 0x80 #define GAM4 0x81 #define GAM5 0x82 #define GAM6 0x83 #define GAM7 0x84 #define GAM8 0x85 #define GAM9 0x86 #define GAM10 0x87 #define GAM11 0x88 #define GAM12 0x89 #define GAM13 0x8A #define GAM14 0x8B #define GAM15 0x8C #define SLOP 0x8D #define DNSTh 0x8E #define EDGE0 0x8F #define EDGE1 0x90 #define DNSOff 0x91 #define EDGE2 0x92 #define EDGE3 0x93 #define MTX1 0x94 #define MTX2 0x95 #define MTX3 0x96 #define MTX4 0x97 #define MTX5 0x98 #define MTX6 0x99 #define MTX_Ctrl 0x9A #define BRIGHT 0x9B #define CNST 0x9C #define UVADJ0 0x9E #define UVADJ1 0x9F #define SCAL0 0xA0 #define SCAL1 0xA1 #define SCAL2 0xA2 #define SDE 0xA6 #define USAT 0xA7 #define VSAT 0xA8 #define HUECOS 0xA9 #define HUESIN 0xAA #define SIGN 0xAB #define DSPAuto 0xAC//初始化寄存器序列及其對應的值 const u8 ov7725_init_reg_tb1[][2]= { /*輸出窗口設置*/{CLKRC, 0x00}, //clock config{COM7, 0x06}, //VGA RGB565{HSTART, 0x3f}, //水平起始位置{HSIZE, 0x50}, //水平尺寸{VSTRT, 0x03}, //垂直起始位置{VSIZE, 0x78}, //垂直尺寸{HREF, 0x00},{HOutSize, 0x50}, //輸出尺寸{VOutSize, 0x78}, //輸出尺寸/*DSP control*/{TGT_B, 0x7f},{FixGain, 0x09},{AWB_Ctrl0, 0xe0},{DSP_Ctrl1, 0xff},{DSP_Ctrl2, 0x00},{DSP_Ctrl3, 0x00},{DSP_Ctrl4, 0x00},/*AGC AEC AWB*/{COM8, 0xf0},{COM4, 0x81}, /*Pll AEC CONFIG*/{COM6, 0xc5},{COM9, 0x11},{BDBase, 0x7F},{BDMStep, 0x03},{AEW, 0x40},{AEB, 0x30},{VPT, 0xa1},{EXHCL, 0x9e},{AWBCtrl3, 0xaa},{COM8, 0xff},/*matrix shapness brightness contrast*/{EDGE1, 0x08},{DNSOff, 0x01},{EDGE2, 0x03},{EDGE3, 0x00},{MTX1, 0xb0},{MTX2, 0x9d},{MTX3, 0x13},{MTX4, 0x16},{MTX5, 0x7b},{MTX6, 0x91},{MTX_Ctrl, 0x1e},{BRIGHT, 0x08},{CNST, 0x20},{UVADJ0, 0x81},{SDE, 0X06},{USAT, 0x65},{VSAT, 0x65},{HUECOS, 0X80},{HUESIN, 0X80},/*GAMMA config*/{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},{COM3, 0x50},/*Horizontal mirror image*///注:datasheet默認0x10,即改變YUV為UVY格式。但是攝像頭不是芯片而是模組時,//要將0X10中的1變成0,即設置YUV格式。/*night mode auto frame rate control*/ {COM5, 0xf5}, /*在夜視環境下,自動降低幀率,保證低照度畫面質量*///{COM5, 0x31}, /*夜視環境幀率不變*/}; #endif

2.2 OV7725初始化

#define OV7725_MID 0X7FA2 #define OV7725_PID 0X7721#define OV7725_VSYNC PAin(8) ????????//同步信號檢測IO #define OV7725_WRST PDout(6) //寫指針復位 #define OV7725_WREN PBout(3) //寫入FIFO使能 #define OV7725_RCK_H GPIOB->BSRR=1<<4????????????????//設置讀數據時鐘高電平 #define OV7725_RCK_L GPIOB->BRR=1<<4 ????????????????//設置讀數據時鐘低電平 #define OV7725_RRST PGout(14) //讀指針復位 #define OV7725_CS PGout(15) //片選信號(OE)#define OV7725_DATA GPIO_ReadInputData(GPIOC,0x00FF) //數據輸入端口 #include "sys.h" #include "ov7725.h" #include "ov7725config.h" #include "delay.h" #include "usart.h" #include "sccb.h" //初始化OV7725 //返回0:成功 //返回其他值:錯誤代碼 u8 OV7725_Init(void) {u16 i=0;u16 reg=0;//設置IOGPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOG|RCC_APB2Periph_AFIO, ENABLE);//使能相關端口時鐘GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PA8 輸入 上拉GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_8);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4; // 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_4); GPIO_InitStructure.GPIO_Pin = 0xff; //PC0~7 輸入 上拉GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_SetBits(GPIOD,GPIO_Pin_6);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOG, &GPIO_InitStructure);GPIO_SetBits(GPIOG,GPIO_Pin_14|GPIO_Pin_15);GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //SWDSCCB_Init(); //初始化SCCB 的IO口 if(SCCB_WR_Reg(0x12,0x80))return 1; //軟復位OV7725delay_ms(100); reg=SCCB_RD_Reg(0X1c); //讀取廠家ID 高八位reg<<=8;reg|=SCCB_RD_Reg(0X1d); //讀取廠家ID 低八位if(reg!=OV7725_MID){printf("MID:%d\r\n",reg);return 1;}reg=SCCB_RD_Reg(0X0a); //讀取廠家ID 高八位reg<<=8;reg|=SCCB_RD_Reg(0X0b); //讀取廠家ID 低八位if(reg!=OV7725_PID){printf("HID:%d\r\n",reg);return 2;}//初始化 OV7725,采用QVGA分辨率(320*240) for(i=0;i<sizeof(ov7725_init_reg_tb1)/sizeof(ov7725_init_reg_tb1[0]);i++){SCCB_WR_Reg(ov7725_init_reg_tb1[i][0],ov7725_init_reg_tb1[i][1]);} printf("HID:%d\r\n",reg);return 0x00; //ok }

2.3 OV7725其他功能設置

//OV7725功能設置 //白平衡設置 //0:自動模式 //1:晴天 //2,多云 //3,辦公室 //4,家里 //5,夜晚 void OV7725_Light_Mode(u8 mode) {switch(mode){case 0: //Auto,自動模式SCCB_WR_Reg(0x13, 0xff); //AWB on SCCB_WR_Reg(0x0e, 0x65);SCCB_WR_Reg(0x2d, 0x00);SCCB_WR_Reg(0x2e, 0x00);break;case 1://sunny,晴天SCCB_WR_Reg(0x13, 0xfd); //AWB offSCCB_WR_Reg(0x01, 0x5a);SCCB_WR_Reg(0x02, 0x5c);SCCB_WR_Reg(0x0e, 0x65);SCCB_WR_Reg(0x2d, 0x00);SCCB_WR_Reg(0x2e, 0x00);break; case 2://cloudy,多云SCCB_WR_Reg(0x13, 0xfd); //AWB offSCCB_WR_Reg(0x01, 0x58);SCCB_WR_Reg(0x02, 0x60);SCCB_WR_Reg(0x0e, 0x65);SCCB_WR_Reg(0x2d, 0x00);SCCB_WR_Reg(0x2e, 0x00);break; case 3://office,辦公室SCCB_WR_Reg(0x13, 0xfd); //AWB offSCCB_WR_Reg(0x01, 0x84);SCCB_WR_Reg(0x02, 0x4c);SCCB_WR_Reg(0x0e, 0x65);SCCB_WR_Reg(0x2d, 0x00);SCCB_WR_Reg(0x2e, 0x00);break; case 4://home,家里SCCB_WR_Reg(0x13, 0xfd); //AWB offSCCB_WR_Reg(0x01, 0x96);SCCB_WR_Reg(0x02, 0x40);SCCB_WR_Reg(0x0e, 0x65);SCCB_WR_Reg(0x2d, 0x00);SCCB_WR_Reg(0x2e, 0x00);break; case 5://night,夜晚SCCB_WR_Reg(0x13, 0xff); //AWB onSCCB_WR_Reg(0x0e, 0xe5);break;} } //色度設置 //sat:-4~+4 void OV7725_Color_Saturation(s8 sat) {if(sat>=-4 && sat<=4){ SCCB_WR_Reg(USAT,(sat+4)<<4); SCCB_WR_Reg(VSAT,(sat+4)<<4);} } //亮度設置 //bright:-4~+4 void OV7725_Brightness(s8 bright) {u8 bright_value,sign;switch(bright){case 4:bright_value = 0x48;sign = 0x06;break;case 3:bright_value = 0x38;sign = 0x06; break; case 2:bright_value = 0x28;sign = 0x06; break; case 1:bright_value = 0x18;sign = 0x06; break;case 0:bright_value = 0x08;sign = 0x06; break; case -1:bright_value = 0x08;sign = 0x0e; break; case -2:bright_value = 0x18;sign = 0x0e; break; case -3:bright_value = 0x28;sign = 0x0e; break; case -4:bright_value = 0x38;sign = 0x0e; break; }SCCB_WR_Reg(BRIGHT, bright_value);SCCB_WR_Reg(SIGN, sign); } //對比度設置 //contrast:-4~+4 void OV7725_Contrast(s8 contrast) {if(contrast >= -4 && contrast <=4){SCCB_WR_Reg(CNST,(0x30-(4-contrast)*4));} } //特效設置 //0:普通模式 //1,負片 //2,黑白 //3,偏紅色 //4,偏綠色 //5,偏藍色 //6,復古 void OV7725_Special_Effects(u8 eft) {switch(eft){case 0://正常SCCB_WR_Reg(0xa6, 0x06);//TSLB設置SCCB_WR_Reg(0x60, 0x80);//MANV,手動V值SCCB_WR_Reg(0x61, 0x80);//MANU,手動U值break;case 1://負片SCCB_WR_Reg(0xa6, 0x46);break;case 2://黑白SCCB_WR_Reg(0xa6, 0x26);SCCB_WR_Reg(0x60, 0x80);SCCB_WR_Reg(0x61, 0x80);break; case 3://偏紅SCCB_WR_Reg(0xa6, 0x1e);SCCB_WR_Reg(0x60, 0x80);SCCB_WR_Reg(0x61, 0xc0); break;case 4://偏綠SCCB_WR_Reg(0xa6, 0x1e);SCCB_WR_Reg(0x60, 0x60);SCCB_WR_Reg(0x61, 0x60); break;case 5://偏藍SCCB_WR_Reg(0xa6, 0x1e);SCCB_WR_Reg(0x60, 0xa0);SCCB_WR_Reg(0x61, 0x40); break;case 6://復古SCCB_WR_Reg(0xa6, 0x1e);SCCB_WR_Reg(0x60, 0x40);SCCB_WR_Reg(0x61, 0xa0);break; } }

2.4 設置OV7725輸出窗口和輸出數據的格式(QVGA或VGA)

//設置圖像輸出窗口 //width:輸出圖像寬度,<=320 //height:輸出圖像高度,<=240 //mode:0,QVGA輸出模式;1,VGA輸出模式 //QVGA模式可視范圍廣但近物不是很清晰,VGA模式可視范圍小近物清晰 void OV7725_Window_Set(u16 width,u16 height,u8 mode) {u8 raw,temp;u16 sx,sy; if(mode){sx=(640-width)/2;sy=(480-height)/2;SCCB_WR_Reg(COM7,0x06); //設置為VGA模式SCCB_WR_Reg(HSTART,0x23); //水平起始位置SCCB_WR_Reg(HSIZE,0xA0); //水平尺寸SCCB_WR_Reg(VSTRT,0x07); //垂直起始位置SCCB_WR_Reg(VSIZE,0xF0); //垂直尺寸SCCB_WR_Reg(HREF,0x00);SCCB_WR_Reg(HOutSize,0xA0); //輸出尺寸SCCB_WR_Reg(VOutSize,0xF0); //輸出尺寸}else{sx=(320-width)/2;sy=(240-height)/2;SCCB_WR_Reg(COM7,0x46); //設置為QVGA模式SCCB_WR_Reg(HSTART,0x3f); //水平起始位置SCCB_WR_Reg(HSIZE, 0x50); //水平尺寸SCCB_WR_Reg(VSTRT, 0x03); //垂直起始位置SCCB_WR_Reg(VSIZE, 0x78); //垂直尺寸SCCB_WR_Reg(HREF, 0x00);SCCB_WR_Reg(HOutSize,0x50); //輸出尺寸SCCB_WR_Reg(VOutSize,0x78); //輸出尺寸}raw=SCCB_RD_Reg(HSTART);temp=raw+(sx>>2);//sx高8位存在HSTART,低2位存在HREF[5:4]SCCB_WR_Reg(HSTART,temp);SCCB_WR_Reg(HSIZE,width>>2);//width高8位存在HSIZE,低2位存在HREF[1:0]raw=SCCB_RD_Reg(VSTRT);temp=raw+(sy>>1);//sy高8位存在VSTRT,低1位存在HREF[6]SCCB_WR_Reg(VSTRT,temp);SCCB_WR_Reg(VSIZE,height>>1);//height高8位存在VSIZE,低1位存在HREF[2]raw=SCCB_RD_Reg(HREF);temp=((sy&0x01)<<6)|((sx&0x03)<<4)|((height&0x01)<<2)|(width&0x03)|raw;SCCB_WR_Reg(HREF,temp);SCCB_WR_Reg(HOutSize,width>>2);SCCB_WR_Reg(VOutSize,height>>1);SCCB_RD_Reg(EXHCH); temp = (raw|(width&0x03)|((height&0x01)<<2)); SCCB_WR_Reg(EXHCH,temp); }

3. VSYNC中斷配置(幀中斷信號處理)

3.1 中斷GPIO口初始化

//外部中斷8初始化 void EXTI8_Init(void) { EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure; //選擇中斷信號源,開啟中斷線GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource8);//PA8對中斷線8EXTI_InitStructure.EXTI_Line=EXTI_Line8;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;;//下降沿觸發EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure); //根據EXTI_InitStruct中指定的參數初始化外設EXTI寄存器NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; //使能按鍵所在的外部中斷通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //搶占優先級0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子優先級0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中斷通道NVIC_Init(&NVIC_InitStructure); //根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器 }

3.2 中斷服務程序

//外部中斷5~9服務程序,外部中斷5-9和中斷10-15向量存放在一起 void EXTI9_5_IRQHandler(void) {if(EXTI_GetITStatus(EXTI_Line8)==SET)//是8線的中斷{if(ov_sta<2){if(ov_sta==0){OV7725_WRST=0; //復位寫指針 OV7725_WRST=1; OV7725_WREN=1; //允許寫入FIFO}else {OV7725_WREN=0; //禁止寫入FIFO OV7725_WRST=0; //復位寫指針 OV7725_WRST=1; }ov_sta++;}}EXTI_ClearITPendingBit(EXTI_Line8); //清除EXTI8線路掛起位 } 4. 主函數
#include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "lcd.h" #include "usart.h" #include "string.h" #include "OV7725.h" #include "timer.h" #include "exti.h" #include "ff.h" #include "sdio.h"//const u8*LMODE_TBL[5]={"Auto","Sunny","Cloudy","Office","Home"}; //5種光照模式 //const u8*EFFECTS_TBL[7]={"Normal","Negative","B&W","Redish","Greenish","Bluish","Antique"}; //7種特效 extern u8 ov_sta; //在exit.c里面定義 extern u8 ov_frame; //在timer.c里面定義//由于OV7725傳感器安裝方式原因,OV7725_WINDOW_WIDTH相當于LCD的高度,OV7725_WINDOW_HEIGHT相當于LCD的寬度 //注意:此宏定義只對OV7725有效 #define OV7725_WINDOW_WIDTH 320 // <=320 #define OV7725_WINDOW_HEIGHT 240 // <=240//內存卡的讀寫狀態 SD_Error Status; FATFS fs; //FatFs文件系統對象 FIL fnew; //文件對象 FRESULT res_sd;//文件操作結果 UINT fnum; //文件成功讀寫數量//BMP頭文件 typedef __packed struct {u16 bfType ; //文件標志.只對'BM',用來識別BMP位圖類型u32 bfSize ; //文件大小,占四個字節u16 bfReserved1 ;//保留u16 bfReserved2 ;//保留u32 bfOffBits ; //從文件開始到位圖數據(bitmap data)開始之間的的偏移量 }BITMAPFILEHEADER ; //BMP信息頭 typedef __packed struct {u32 biSize ; //說明BITMAPINFOHEADER結構所需要的字數。long biWidth ; //說明圖象的寬度,以象素為單位 long biHeight ; //說明圖象的高度,以象素為單位 u16 biPlanes ; //為目標設備說明位面數,其值將總是被設為1 u16 biBitCount ; //說明比特數/象素,其值為1、4、8、16、24、或32/*說明圖象數據壓縮的類型。其值可以是下述值之一:BI_RGB:沒有壓縮;BI_RLE8:每個象素8比特的RLE壓縮編碼,壓縮格式由2字節組成(重復象素計數和顏色索引); BI_RLE4:每個象素4比特的RLE壓縮編碼,壓縮格式由2字節組成BI_BITFIELDS:每個象素的比特由指定的掩碼決定。*/u32 biCompression ; u32 biSizeImage ; //說明圖象的大小,以字節為單位。當用BI_RGB格式時,可設置為0 long biXPelsPerMeter ; //說明水平分辨率,用象素/米表示long biYPelsPerMeter ; //說明垂直分辨率,用象素/米表示u32 biClrUsed ; //說明位圖實際使用的彩色表中的顏色索引數u32 biClrImportant ; //說明對圖象顯示有重要影響的顏色索引的數目,如果是0,表示都重要。 }BITMAPINFOHEADER ; //彩色表 typedef __packed struct {u8 rgbBlue ; //指定藍色強度u8 rgbGreen ; //指定綠色強度 u8 rgbRed ; //指定紅色強度 u8 rgbReserved ;//保留,設置為0 }RGBQUAD ; //整體信息頭 typedef __packed struct { BITMAPFILEHEADER bmfHeader;BITMAPINFOHEADER bmiHeader; RGBQUAD RGB_MASK[3]; //調色板用于存放RGB掩碼. }BITMAPINFO; //更新LCD顯示 void camera_refresh(void) {u32 i,j;u16 color;BITMAPINFO bmp;//提前檢查是否需要保存圖片if(ov_sta && KEY_Scan(S1))//按鍵1按下{printf("開始保存圖片\r\n");//打開文件,若不存在就創建res_sd = f_open(&fnew, "0:test1.bmp", FA_OPEN_ALWAYS | FA_WRITE);//文件打開成功if(res_sd == FR_OK){//填寫文件信息頭信息 bmp.bmfHeader.bfType = 0x4D42; //bmp類型 bmp.bmfHeader.bfSize= 54 + 320*240*2; //文件大小(信息結構體+像素數據)bmp.bmfHeader.bfReserved1 = 0x0000; //保留,必須為0bmp.bmfHeader.bfReserved2 = 0x0000; bmp.bmfHeader.bfOffBits=54; //位圖信息結構體所占的字節數//填寫位圖信息頭信息 bmp.bmiHeader.biSize=40; //位圖信息頭的大小bmp.bmiHeader.biWidth=320; //位圖的寬度bmp.bmiHeader.biHeight=240; //圖像的高度bmp.bmiHeader.biPlanes=1; //目標設別的級別,必須是1bmp.bmiHeader.biBitCount=16; //每像素位數bmp.bmiHeader.biCompression=0; //RGB555格式bmp.bmiHeader.biSizeImage=320*240*2; //實際位圖所占用的字節數(僅考慮位圖像素數據)bmp.bmiHeader.biXPelsPerMeter=0; //水平分辨率bmp.bmiHeader.biYPelsPerMeter=0; //垂直分辨率bmp.bmiHeader.biClrImportant=0; //說明圖像顯示有重要影響的顏色索引數目,0代表所有的顏色一樣重要bmp.bmiHeader.biClrUsed=0; //位圖實際使用的彩色表中的顏色索引數,0表示使用所有的調色板項//RGB565格式掩碼bmp.RGB_MASK[0].rgbBlue = 0;bmp.RGB_MASK[0].rgbGreen = 0xF8;bmp.RGB_MASK[0].rgbRed = 0;bmp.RGB_MASK[0].rgbReserved = 0;bmp.RGB_MASK[1].rgbBlue = 0xE0;bmp.RGB_MASK[1].rgbGreen = 0x07;bmp.RGB_MASK[1].rgbRed = 0;bmp.RGB_MASK[1].rgbReserved = 0;bmp.RGB_MASK[2].rgbBlue = 0x1F;bmp.RGB_MASK[2].rgbGreen = 0;bmp.RGB_MASK[2].rgbRed = 0;bmp.RGB_MASK[2].rgbReserved = 0;//寫文件頭進文件 res_sd= f_write(&fnew, &bmp, sizeof(bmp), &fnum);}//讀指針復位OV7725_RRST=0; //開始復位讀指針OV7725_RCK_L;OV7725_RCK_H;OV7725_RCK_L;OV7725_RRST=1; //復位讀指針結束 OV7725_RCK_H; /*圖像花屏的原因在于讀取時的干擾和讀取時漏掉幾個像素*/for(i=0;i<240;i++){for(j=0;j<320;j++){OV7725_RCK_L;color=GPIOC->IDR&0XFF; //讀數據OV7725_RCK_H; color<<=8; OV7725_RCK_L;color|=GPIOC->IDR&0XFF; //讀數據OV7725_RCK_H; //寫位圖信息頭進內存卡f_write(&fnew, &color, sizeof(color), &fnum);}}//關閉文件f_close(&fnew);delay_ms(1000);return;}//不需要保存圖片,繼續刷新LCDif(ov_sta){LCD_Scan_Dir(U2D_L2R); //從上到下,從左到右 LCD_WriteRAM_Prepare(); //開始寫入GRAM //讀指針復位OV7725_RRST=0; //開始復位讀指針 OV7725_RCK_L;OV7725_RCK_H;OV7725_RCK_L;OV7725_RRST=1; //復位讀指針結束 OV7725_RCK_H; /*圖像花屏的原因在于讀取時的干擾和讀取時漏掉幾個像素*/for(i=0;i<240;i++){for(j=0;j<320;j++){OV7725_RCK_L;color=GPIOC->IDR&0XFF; //讀數據OV7725_RCK_H; color<<=8; OV7725_RCK_L;color|=GPIOC->IDR&0XFF; //讀數據OV7725_RCK_H; LCD->LCD_RAM=color; }}ov_sta=0; //開始下一次采集ov_frame++; LCD_Scan_Dir(DFT_SCAN_DIR); //恢復默認掃描方向 } }int main(void){u8 lightmode=0,saturation=2,brightness=2,contrast=2;u8 effect=0;u8 i=0;delay_init(); ????????????????//延時函數初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);?//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級uart_init(115200); ????????//串口初始化為 115200LED_Init(); //初始化與LED連接的硬件接口KEY_Init(); //初始化按鍵LCD_Init(); //初始化LCD //初始化SD卡if(SD_Init() == SD_OK){printf("SD卡初始化成功,即將掛載SD卡。\r\n");}//掛載SD卡res_sd = f_mount(&fs, "0:", 1);POINT_COLOR=RED;//設置字體為紅色 LCD_ShowString(60,50,200,16,16,"M3S STM32"); LCD_ShowString(60,70,200,16,16,"OV7725 TEST"); LCD_ShowString(60,90,200,16,16,"www.doflye.net");LCD_ShowString(60,110,200,16,16,"need a 7725 camera"); LCD_ShowString(60,130,200,16,16,"S1:Light Mode");LCD_ShowString(60,150,200,16,16,"S2:Saturation");LCD_ShowString(60,170,200,16,16,"S3:Brightness");LCD_ShowString(60,190,200,16,16,"S4:Contrast");LCD_ShowString(60,210,200,16,16,"OV7725 Init..."); while(1){//初始化ov7725if(OV7725_Init()==0){LCD_ShowString(60,210,200,16,16,"OV7725 Init OK ");OV7725_Light_Mode(lightmode);OV7725_Color_Saturation(saturation);OV7725_Brightness(brightness);OV7725_Contrast(contrast);OV7725_Special_Effects(effect);//設置輸出格式OV7725_Window_Set(OV7725_WINDOW_WIDTH,OV7725_WINDOW_HEIGHT,0);????//QVGA模式輸出//輸出使能OV7725_CS=0;break;}} EXTI8_Init(); //使能定時器捕獲 LCD_Clear(BLACK); //可以防止割屏while(1){camera_refresh();???????//更新顯示i++;if(i==15)???????????????//DS0閃爍.{i=0;LED0=!LED0;}} }

5. 實驗效果

按下按鈕S1,LCD圖像停止刷新一秒,然后再SD卡上生成一張test1.bmp文件,在電腦端查看如下所示

(數據有點問題,(:)

總結

以上是生活随笔為你收集整理的基于STM32的OV7725摄像头拍照实验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

伊人天天综合 | 婷久久| av女优中文字幕在线观看 | 久久黄色精品视频 | 欧美一级日韩三级 | 国产亚洲片 | 精品久久久久久国产 | 国产精品久久久一区二区 | 欧美日韩一区二区在线观看 | 欧美在线视频一区二区三区 | 亚洲综合狠狠干 | 亚洲精品国产高清 | 91mv.cool在线观看 | 在线观看网站黄 | 国产精品理论片 | 亚洲综合视频在线 | 日韩一区精品 | 97人人超碰在线 | www黄在线 | 狠狠久久综合 | 中日韩在线 | 香蕉影视 | 国产小视频在线免费观看视频 | 91超碰在线播放 | 日韩在线观看视频中文字幕 | 91成人免费在线视频 | 亚洲欧美日韩国产一区二区 | 日批在线看 | 日韩av网页 | 久久99国产精品二区护士 | 97精品超碰一区二区三区 | 正在播放久久 | 日韩欧美一区二区三区视频 | 在线免费观看视频一区二区三区 | 97av在线视频免费播放 | 国产电影黄色av | 午夜国产福利在线观看 | 亚洲人成人天堂h久久 | 中文字幕高清视频 | 欧美激情综合色综合啪啪五月 | 天天干天天综合 | 久久蜜臀av | 亚洲成人免费在线观看 | 精品综合久久久 | 婷婷六月丁 | 天天操天天弄 | 日日弄天天弄美女bbbb | 一级淫片在线观看 | 日韩aⅴ视频 | 亚洲午夜激情网 | 色综合网| 亚洲精品在线电影 | 久久综合九色综合欧美就去吻 | 久久久久久久久久久免费视频 | 五月开心色 | 久久视频在线观看免费 | 国产视频一区二区三区在线 | 国产69精品久久久久久 | 国产成人久久精品一区二区三区 | 麻豆免费看片 | 日本性动态图 | 天天综合网 天天 | 久久精品国产99国产 | 亚洲激情视频在线 | 91精品久久久久久综合乱菊 | 九九久久久久久久久激情 | 中文字幕一区二区在线播放 | 免费看国产一级片 | 日韩精品欧美专区 | 欧美久久九九 | 国产免费一区二区三区最新 | 国产精品www | 国产精品99久久久久久小说 | 在线免费高清视频 | 久久精品国产v日韩v亚洲 | 精品一区二区久久久久久久网站 | 9999毛片| 中文字幕一区二区三区四区视频 | 国产精品都在这里 | 免费午夜网站 | 欧美日韩不卡在线视频 | 欧美日韩不卡在线观看 | 最近中文字幕免费视频 | 久久久久久毛片精品免费不卡 | 亚洲精品影院在线观看 | www色,com| 亚洲日本中文字幕在线观看 | 日韩一区二区免费播放 | 国产精品第一视频 | 国产高清在线免费 | 国产在线精品二区 | 日韩在线 一区二区 | 最近中文字幕在线 | 亚洲高清在线 | 一区二区视频免费在线观看 | av在线看网站 | 亚洲专区 国产精品 | 日韩v在线91成人自拍 | 国产午夜精品在线 | 美女黄频在线观看 | 91人人澡人人爽人人精品 | 欧美韩日精品 | 久久精品日产第一区二区三区乱码 | 亚州中文av| 中文国产字幕在线观看 | 国产九九九精品视频 | 91桃色国产在线播放 | 久久久久久久久综合 | 日韩在线视频线视频免费网站 | 四虎影视成人精品国库在线观看 | 五月婷婷综合网 | 久久久久久久久毛片 | 国产裸体视频网站 | 亚洲日本中文字幕在线观看 | 日韩一二区在线 | 天天干天天操天天拍 | 怡红院成人在线 | 日韩精品首页 | 97精品国产97久久久久久春色 | 亚洲女人av | 国产91精品看黄网站在线观看动漫 | 丁香av在线 | 麻豆免费视频网站 | 国产精品美女久久久久aⅴ 干干夜夜 | 日韩欧美大片免费观看 | 亚洲欧美国产精品va在线观看 | 欧美不卡视频在线 | 日韩一区二区三区不卡 | 91视频大全 | 丁香久久五月 | 国语麻豆 | 免费黄色激情视频 | 91九色蝌蚪视频在线 | 在线观看久久久久久 | 东方av在线免费观看 | 天天天在线综合网 | 亚洲精品久久久久www | 日本爱爱免费视频 | 国产在线视频一区二区三区 | 国产午夜精品一区二区三区四区 | 久久久99久久 | 久久玖 | 欧美一级免费片 | 在线观看mv的中文字幕网站 | 色偷偷人人澡久久超碰69 | 日韩久久激情 | 国产精品美女久久久 | 亚洲精品一区二区三区四区高清 | 在线观看精品黄av片免费 | 久久精品99久久久久久2456 | 99国产视频在线 | 97精品国产97久久久久久免费 | 国产美女黄网站免费 | 亚洲最新毛片 | 国产一区二区三区在线 | 又粗又长又大又爽又黄少妇毛片 | 婷婷亚洲综合五月天小说 | 91麻豆免费视频 | 九九色视频 | 成人黄大片视频在线观看 | 久久在草| 字幕网资源站中文字幕 | 国产一区视频免费在线观看 | 中文字幕一区二区三区在线观看 | 免费婷婷 | 国产视频在线观看一区二区 | avhd高清在线谜片 | 国产一级片免费观看 | 婷婷射五月 | 午夜影院日本 | 中文在线www | 欧美999| 婷婷综合成人 | 波多野结衣在线播放一区 | 天天干夜夜爱 | 亚洲国产精品999 | 欧美成人精品欧美一级乱 | 国产成人三级在线播放 | 激情视频在线观看网址 | 中文国产成人精品久久一 | 国产高清视频在线播放一区 | 一级一片免费视频 | 最新av在线网站 | 国产极品尤物在线 | 在线观看亚洲成人 | 日本久草电影 | 丁香五婷 | 国产 日韩 中文字幕 | 六月丁香婷 | 免费福利在线观看 | 在线视频 91 | 国产精品不卡一区 | 日韩毛片在线一区二区毛片 | 亚洲免费视频观看 | 欧美一区二区日韩一区二区 | 欧美怡红院视频 | 欧美日韩国产免费视频 | 日韩欧美在线一区二区 | 国内精品久久影院 | 午夜久久福利 | 久久国产精品视频免费看 | 久久久久欧美精品 | 久草a在线 | 婷婷国产一区二区三区 | 亚洲最新av在线网站 | 免费在线看成人av | japanesexxxhd奶水| 亚洲人人爱 | 中文字幕888 | 国产黄av| 色婷婷激情网 | 色婷婷国产 | 久久综合99| 美女久久一区 | 91欧美国产 | 91丨九色丨蝌蚪丰满 | 国产69精品久久99不卡的观看体验 | 一区二区三区国产欧美 | 久久乐九色婷婷综合色狠狠182 | 天天色综合久久 | 91少妇精拍在线播放 | 91女子私密保健养生少妇 | 久久激情五月激情 | 成人a级网站 | 91黄色小视频 | 亚洲极色| 91精品国产91| 亚洲成av人影院 | 在线观看中文字幕一区 | 国产韩国精品一区二区三区 | 麻豆免费视频 | 久草精品视频 | 日韩成人在线一区二区 | 成年人三级网站 | 久久免费片 | 丁香婷婷综合激情五月色 | 久久综合久久综合这里只有精品 | 色婷婷88av视频一二三区 | 91在线免费播放视频 | 91传媒在线 | 日韩一区精品 | 日本精品视频在线观看 | 超级av在线 | av片在线观看免费 | а中文在线天堂 | 麻豆精品视频 | 久久爱资源网 | www.看片网站 | 亚洲天堂自拍视频 | 久久中文字幕在线视频 | 综合久久久久久久久 | 国产又粗又猛又黄视频 | 免费在线观看黄色网 | 99久久久久久国产精品 | 在线三级播放 | 久久tv | 国产女v资源在线观看 | 男女啪啪免费网站 | 国产91免费看 | 日韩精品一区二区三区不卡 | 亚洲免费av电影 | 麻豆一区在线观看 | 奇米7777狠狠狠琪琪视频 | 久久久91精品国产一区二区三区 | av中文字幕日韩 | 色多多视频在线 | av成人动漫| av黄色一级片 | 又污又黄的网站 | 香蕉影视| 久久久精品 | 久久久久久免费 | 亚洲全部视频 | 久久黄色小说视频 | 日韩av成人免费看 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 欧日韩在线| 精品久久久久久国产 | 狠狠干 狠狠操 | 日韩免费一区二区在线观看 | 日韩视频在线观看视频 | 96精品在线 | 久草视频视频在线播放 | 日韩www在线 | 日本在线精品视频 | 超碰99人人 | 国产高清不卡在线 | 亚洲 成人 一区 | 天天操天天操 | 午夜电影 电影 | 一本一本久久a久久精品综合小说 | 久久精品99国产精品酒店日本 | 天天干夜夜爽 | 精品在线不卡 | 久久五月精品 | 91在线亚洲 | 久久久久久国产一区二区三区 | 最新91在线视频 | 国产一区二区日本 | 久久国内视频 | 日韩国产精品久久 | 亚洲精区二区三区四区麻豆 | 丁香婷婷综合五月 | 少妇性色午夜淫片aaaze | 日韩欧美黄色网址 | 亚洲成aⅴ人在线观看 | 婷婷在线视频观看 | 国产成人精品网站 | 日韩精品短视频 | 色综合久久66 | 欧美激情视频三区 | 精品久久久久久国产 | 精品亚洲视频在线观看 | 久久精品中文字幕一区二区三区 | 在线日韩视频 | 最新av网站在线观看 | 91av手机在线观看 | 日韩高清一区二区 | 免费国产一区二区 | 国产精品白浆视频 | 国产精品99久久久久久久久 | 久久久天堂 | 在线精品视频免费播放 | 欧美久久九九 | 久久影视一区二区 | 尤物97国产精品久久精品国产 | 色偷偷88888欧美精品久久久 | 色噜噜噜| 日本精品一区二区在线观看 | 91成人欧美 | 中文字幕在线播放一区二区 | 中文字幕 在线 一 二 | 欧美另类69| 日韩激情网| 成人一区电影 | 久久精品男人的天堂 | 国产精品成人免费一区久久羞羞 | 最近中文字幕大全中文字幕免费 | 91在线你懂的| 亚洲日本色 | 久久激情五月婷婷 | 欧美91精品久久久久国产性生爱 | 国产一级精品绿帽视频 | 欧美综合色| 在线观看免费高清视频大全追剧 | 免费在线观看成人 | 精品久久久久久久久久岛国gif | 日韩成人免费在线电影 | 丁香色综合 | 国产一区在线不卡 | 天天干,天天射,天天操,天天摸 | 首页国产精品 | 亚洲成a人片77777潘金莲 | 在线免费色视频 | 高清av网站 | 婷婷播播网 | 国产精品入口66mio女同 | 欧美性成人 | 久热爱 | 欧美性色网站 | 国产一二区视频 | 美女网站视频一区 | 日韩精品综合在线 | 亚洲欧洲国产日韩精品 | 久射网| 六月色播 | 91久久黄色 | 国产精品久久久一区二区 | 主播av在线| 福利二区视频 | 在线观看视频你懂的 | 日韩a在线观看 | 亚洲精品玖玖玖av在线看 | 天天做日日做天天爽视频免费 | 人人澡人 | 天天综合网 天天综合色 | 日本精品视频网站 | 免费观看一级特黄欧美大片 | 亚洲精品在线免费观看视频 | 国产精品黄网站在线观看 | 中文字幕一区在线 | 久久久国产电影 | 日韩av不卡播放 | 成人免费共享视频 | 免费一区在线 | 免费观看黄色12片一级视频 | 综合网伊人 | 黄网站色视频免费观看 | 成人av免费电影 | 最新av在线网站 | 国产又粗又硬又爽的视频 | 天天操夜夜想 | 国外成人在线视频网站 | 99视频精品| 国产一级在线播放 | 麻豆va一区二区三区久久浪 | 日韩黄色中文字幕 | 国产精品亚洲a | 97**国产露脸精品国产 | 美女网站色免费 | 片网址| 日韩在观看线 | 欧美日韩国产成人 | 久碰视频在线观看 | 久久9999久久 | 日本中文乱码卡一卡二新区 | 麻豆久久一区二区 | 一级黄色网址 | 69久久夜色精品国产69 | 丁香九月激情 | 国内免费的中文字幕 | 日韩一级理论片 | 久久久久久免费网 | 免费视频久久 | 亚洲精品久久久久中文字幕二区 | 超碰国产在线播放 | 日韩一区在线免费观看 | 成人免费电影 | 国产 日韩 欧美 自拍 | 欧美在线视频第一页 | 伊人亚洲综合网 | 欧美做受高潮1 | 精品91| 色婷婷亚洲精品 | 久久99精品国产91久久来源 | 激情五月伊人 | 久久综合九色综合欧美狠狠 | 一区二区三区四区五区在线 | 中文字幕欧美三区 | 色婷婷色 | 欧美性色网站 | 在线观看视频三级 | 国产黄色av网站 | av在线成人 | 91日韩国产| 久久视频在线免费观看 | 亚洲黄a | 在线观看免费av片 | 三级性生活视频 | 99久久一区 | 成人毛片一区 | 911国产在线观看 | 99久久精品免费 | 日日添夜夜添 | 99精品国产高清在线观看 | 国产日韩欧美在线影视 | 91精品老司机久久一区啪 | 日日夜夜天天综合 | 久草视频在线播放 | 欧美中文字幕久久 | 亚洲精品一区二区网址 | 久久久久人人 | 91片在线观看 | 欧洲在线免费视频 | 久久av不卡 | 欧美精品一区二区三区四区在线 | www.在线观看视频 | 久久理伦片 | 日日干av | 欧美疯狂性受xxxxx另类 | 手机av在线免费观看 | 伊人色**天天综合婷婷 | 亚洲国产精品99久久久久久久久 | 亚洲成人黄色在线 | 91丨九色丨国产女 | 18久久久久 | 99色在线观看| 韩日精品在线 | 狠狠狠干狠狠 | 国产一区二区综合 | 国产精品大片免费观看 | 亚州av成人 | 天天干天天操天天 | 综合中文字幕 | 人人澡超碰碰 | 色婷婷www | 天天插天天操天天干 | 国产日女人| 色全色在线资源网 | 十八岁以下禁止观看的1000个网站 | 少妇bbw撒尿| 狠狠激情中文字幕 | 中文字幕中文中文字幕 | 成人影片在线免费观看 | 福利视频入口 | 国产在线 一区二区三区 | 国产香蕉在线 | 国产精品区一区 | 国产视频精品视频 | 超碰国产在线观看 | 欧美成人亚洲成人 | 国产一级片久久 | 国产原创91 | 国产亚洲成人网 | 久久精品国产精品亚洲 | 日韩午夜在线播放 | 伊人www22综合色 | 日日摸日日添日日躁av | 中文国产字幕在线观看 | 欧美日韩国产伦理 | 国语自产偷拍精品视频偷 | 黄色小说免费在线观看 | 蜜臀av性久久久久av蜜臀三区 | 91pony九色丨交换 | 中文字幕在线播放日韩 | 国产黄a三级三级三级三级三级 | 激情五月综合网 | 婷婷综合亚洲 | 一级性视频 | www天天干 | 久久精品国产精品亚洲 | 色噜噜噜 | 国产成人三级在线 | 久久深夜福利免费观看 | 日韩视频一区二区三区 | 日韩一级黄色片 | 欧美,日韩 | 99精品视频在线观看视频 | 国产一区免费观看 | 久久国产麻豆 | 成人免费看视频 | 丰满少妇一级 | 在线精品国产 | 日韩网站在线看片你懂的 | 国产成人综合精品 | 国产精品第二页 | 国内精品久久久久久久 | 激情导航 | 色吧av色av| 亚洲欧美国产精品18p | 在线中文字幕电影 | 在线不卡视频 | 国产一区欧美一区 | 成人99免费视频 | 国产成人a亚洲精品 | av在线进入 | 国产精品久久久久高潮 | 日韩视频免费在线观看 | 精品免费视频 | 在线欧美日韩 | 国产999视频 | 欧美乱码精品一区二区 | 色婷久久 | 91视频久久久 | 亚洲欧美一区二区三区孕妇写真 | 久久精视频 | 免费在线观看一级片 | 波多野结衣动态图 | 日韩精品中文字幕av | 日韩欧美视频一区 | 欧美精品亚洲精品 | 免费a级观看 | 精品在线视频一区二区三区 | 欧美日韩p片 | 日本久久免费电影 | 久久综合五月 | 日韩综合视频在线观看 | 99欧美| 亚洲综合丁香 | 精品久久久久久亚洲综合网站 | 成人免费观看a | 在线观看一区 | 91人人澡人人爽 | 国产剧情一区二区在线观看 | 日韩综合精品 | 中文字幕日本在线 | 成人宗合网 | 亚洲婷久久 | 免费性网站 | 色狠狠综合天天综合综合 | 爱爱av网 | 国内丰满少妇猛烈精品播放 | a'aaa级片在线观看 | 久久福利综合 | 三级黄色a | 色偷偷中文字幕 | 伊人伊成久久人综合网站 | 4438全国亚洲精品观看视频 | 久久视频在线观看免费 | 亚洲精品日韩一区二区电影 | 欧美一级电影在线观看 | 黄色一级片视频 | 欧美日韩国产一区二区三区在线观看 | 国际精品久久久 | 国产精品美女久久久免费 | 亚洲国产精品va在线看黑人 | 中文字幕欧美三区 | 日韩精品一区二区三区免费视频观看 | 久久国产香蕉视频 | 免费成人在线观看 | 毛片一级免费一级 | 一区二区三区手机在线观看 | 天天躁日日躁狠狠 | 手机在线日韩视频 | 亚洲精品成人免费 | h文在线观看免费 | 久久视频一区二区 | 91成版人在线观看入口 | avhd高清在线谜片 | 韩国视频一区二区三区 | 麻花天美星空视频 | 九九在线视频免费观看 | 99久久精品国产一区二区三区 | 国产精品久久久久久超碰 | 午夜av不卡 | 日韩网站免费观看 | 成人久久精品视频 | 精品在线不卡 | 国产福利在线免费 | 免费色视频网站 | 一区二区三区日韩在线 | 97精品国自产拍在线观看 | 免费观看国产精品 | 国产 在线 高清 精品 | 999久久久欧美日韩黑人 | 97电影网手机版 | 久久综合加勒比 | 欧美人交a欧美精品 | 91av视频播放 | 亚洲人成在线电影 | 久久99久久99精品免视看婷婷 | 日韩欧美精选 | 亚洲视频精品在线 | 亚洲日本国产精品 | 久久综合综合久久综合 | 美女视频黄在线 | 精品久久久久久久久久 | 欧美久久99 | 日韩一级黄色av | 在线免费观看国产黄色 | 国产免费视频在线 | 九九九九九国产 | 婷婷精品在线视频 | 亚洲精品婷婷 | 国产精品电影一区 | 中文在线最新版天堂 | 久久人人艹| 在线成人一区二区 | 国产精品久久免费看 | 最新av在线网站 | 在线va视频| 黄色av成人在线 | 最近中文字幕在线播放 | 久草在线免费在线观看 | 在线观看 亚洲 | 三级av中文字幕 | 国产成a人亚洲精v品在线观看 | 久久乐九色婷婷综合色狠狠182 | 国产精品国产三级国产aⅴ9色 | 日批视频在线 | 午夜精品一区二区国产 | 精品在线你懂的 | 国产成人精品一区二区三区福利 | 免费网站色| 免费看片日韩 | 韩国三级在线一区 | 美女视频免费精品 | 欧美一级特黄aaaaaa大片在线观看 | 久久精品黄色 | 欧美精品久久久久久久久久久 | av看片在线观看 | 51久久夜色精品国产麻豆 | 在线观看视频一区二区三区 | 精品一区免费 | 黄色网址a | 91看片在线免费观看 | 国产成人专区 | 国产精品美女999 | 狠狠狠色丁香综合久久天下网 | 国产一及片 | av再线观看| 色综合天天色 | 国产精品免费久久久久久久久久中文 | 精品成人在线 | 一级黄色免费网站 | 国产成人一区二区三区 | 成x99人av在线www | 欧美精品久久久久久久亚洲调教 | 日狠狠 | 日本中文在线观看 | 狂野欧美激情性xxxx欧美 | 欧美性视频网站 | 成人动漫一区二区三区 | 久久婷婷色综合 | 干综合网| 亚洲最新合集 | 久久撸在线视频 | 99精品国产99久久久久久97 | 日韩在线观看小视频 | 一级免费黄视频 | 五月婷婷视频在线 | 色人久久 | 亚洲黄色免费电影 | 中文字幕之中文字幕 | 国产一区二区手机在线观看 | 狠狠色丁香久久综合网 | 国产麻豆精品传媒av国产下载 | 色a综合 | 免费观看丰满少妇做爰 | 欧美视频xxx| 99精品视频网 | 日韩精品电影在线播放 | 中文字幕乱码在线播放 | 日韩欧美一区二区三区在线观看 | 特级西西人体444是什么意思 | 中文字幕电影高清在线观看 | 国产在线成人 | 日韩av女优视频 | 粉嫩一区二区三区粉嫩91 | 五月天婷婷在线视频 | 国产精品欧美激情在线观看 | 国产精品色视频 | 美女免费电影 | 国产成人久久精品亚洲 | 亚洲一级黄色片 | 狠狠色丁香婷综合久久 | 久久精品影视 | 综合天堂av久久久久久久 | 亚洲一区二区高潮无套美女 | 超碰.com| 国产婷婷vvvv激情久 | 青草视频在线 | 色综合久久88色综合天天人守婷 | 色av婷婷| 成人中心免费视频 | 狠狠干天天 | 999久久久国产精品 高清av免费观看 | 亚洲aⅴ乱码精品成人区 | 日本黄色大片儿 | 国产激情电影综合在线看 | 中文字幕在线免费观看 | 在线99热 | 中文字幕成人av | 99热精品国产一区二区在线观看 | 涩涩网站在线播放 | 99精品视频免费观看视频 | 国产黄色成人 | 波多野结衣视频一区二区 | 美州a亚洲一视本频v色道 | 99久久精品久久久久久清纯 | 人人草天天草 | 国产精品久久久久久久免费大片 | 99精彩视频在线观看免费 | 色丁香久久 | 五月婷婷欧美 | 久久一区二区三区日韩 | 国产亚洲精品久久19p | 香蕉成人在线视频 | 黄色一级免费电影 | 在线黄色免费 | 精品在线免费观看 | 欧美一级日韩免费不卡 | 射综合网 | 96国产在线 | 欧美日韩在线免费观看视频 | 成人免费在线视频观看 | 日韩专区在线播放 | 亚洲视频播放 | 精品国产乱码久久 | 色综合婷婷久久 | 天天搞天天干天天色 | 狠狠色狠狠综合久久 | 五月婷婷综合激情 | av品善网| 久久精品国产亚洲 | 欧美不卡在线 | 丁香激情综合 | 中文字幕中文字幕在线一区 | 伊香蕉大综综综合久久啪 | 欧美 亚洲 另类 激情 另类 | 色资源网免费观看视频 | 色综合天天在线 | 久久亚洲欧美日韩精品专区 | 在线观看日韩视频 | 天天综合网 天天综合色 | 嫩嫩影院理论片 | 中文字幕久久精品亚洲乱码 | 中文字幕乱码一区二区 | 日韩一区二区三区观看 | 国产精品成人自产拍在线观看 | 午夜的福利 | 波多野结衣视频一区 | 成人av.com| 麻豆一级视频 | 国产视频欧美视频 | 伊人手机在线 | 国产精品免费久久久 | 91探花系列在线播放 | 亚洲精品白浆高清久久久久久 | japanesefreesex中国少妇 | 中文字幕一区二区三区四区 | 国产精品久久久久久影院 | 操操操操网 | 国产一级高清视频 | 国产成人一区二区啪在线观看 | 亚洲午夜精品久久久久久久久久久久 | 日韩三级一区 | 中文字幕无吗 | 91日韩在线| 色丁香婷婷 | 91视频成人免费 | 91超碰在线播放 | 久久精品国产精品亚洲 | 日韩视频免费在线观看 | 日产中文字幕 | 国产一级电影网 | 国产成人综合图片 | 亚洲少妇久久 | 激情av一区二区 | 热re99久久精品国产66热 | 黄色天堂在线观看 | 夜夜操天天摸 | 国产精品18久久久久久久久久久久 | 在线视频欧美亚洲 | 国产精品久久99综合免费观看尤物 | 国产99亚洲 | 日本最新中文字幕 | 五月激情视频 | 91在线视频观看 | 视频国产 | 色综合久久久久综合99 | 免费久久99精品国产婷婷六月 | 亚洲国产中文字幕 | 成人免费ⅴa | 久久久久久欧美二区电影网 | 国产美女视频免费观看的网站 | 99久精品| 欧美a在线免费观看 | 日本中文字幕高清 | 日韩色中色 | 欧美精品一区二区三区四区在线 | 欧美黄色特级片 | 亚洲视频免费在线 | 一区二区三区高清在线 | 美女黄频免费 | 久久国产精彩视频 | 日韩一二区在线观看 | 色资源网免费观看视频 | 日本一区二区不卡高清 | 男女拍拍免费视频 | 日韩精品一区二区三区在线视频 | 中国老女人日b | 人人干人人草 | 久久久www成人免费毛片 | 97精品国产一二三产区 | 在线视频亚洲 | 久久久久亚洲精品男人的天堂 | 国产中文自拍 | 国产亚洲午夜高清国产拍精品 | 97超碰精品 | 91精品国产99久久久久久红楼 | 中文字幕有码在线 | www操操操 | 欧美日韩免费看 | 国产精品成人av在线 | 亚洲无人区小视频 | 欧美日韩在线播放一区 | 日韩欧美v | 97视频在线观看播放 | av超碰在线| 97精产国品一二三产区在线 | 日韩精品一区二区三区丰满 | 欧美日韩精品在线免费观看 | 香蕉视频免费在线播放 | 激情在线网址 | 精品国产一区二区三区四区在线观看 | 久久精品国产免费看久久精品 | 97人人爽| 99色免费 | 久久久久久久久久久免费 | 成人三级网站在线观看 | 九九久久免费 | 亚洲精品97 | 五月天婷婷狠狠 | 中文字幕 二区 | 99色亚洲| 99精品在线观看 | 在线国产欧美 | 色的网站在线观看 | 国产在线a不卡 | 一区二区欧美在线观看 | 亚洲国产电影在线观看 | 激情婷婷丁香 | av观看在线观看 | 欧美日韩国产精品一区二区三区 | 蜜臀av夜夜澡人人爽人人桃色 | 久久高清免费视频 | 香蕉久久久久 | 国产高清免费在线播放 | 国内视频在线 | 三三级黄色片之日韩 | 久久精品综合 | 日韩视频一区二区 | 91亚色视频在线观看 | 精品在线亚洲视频 | 国产精品一区免费观看 | 成人在线黄色电影 | 免费av网址在线观看 | 婷婷中文字幕 | 深爱激情站 | 91久久国产自产拍夜夜嗨 | 亚洲高清在线观看视频 | 色99视频| 日韩成人免费在线 | 2019中文最近的2019中文在线 | 天天干天天干 | 亚洲精品久久久久久国 | 久精品视频在线 | 成人国产精品久久久 | 欧美黑人性爽 | 91尤物在线播放 | 欧美日韩性生活 | 色婷婷国产精品 | 日本精品久久久一区二区三区 | 久久精品官网 | 国产精品久久久久久电影 | 国产精品久久久久婷婷二区次 | 欧美日韩高清 | 欧美日韩国产在线观看 | 国产免费一区二区三区最新 | 国产精华国产精品 | 日日干精品 | 97超碰资源总站 | 在线精品国产 | 在线观看视频你懂的 | 国精产品999国精产品岳 | 欧美一区二区在线免费观看 | 99久久久久国产精品免费 | 欧美色综合久久 | 91丨九色丨国产在线 | 国产专区在线播放 | www.天天干| 国产成人福利在线 | 亚洲免费小视频 | 99c视频在线 | 日本中文字幕电影在线免费观看 | 久久久久伦理电影 | 干干日日 | 国产精品 日韩 | 激情欧美丁香 | 日韩色高清 | 99久久婷婷国产 | 久久福利电影 | 免费在线成人av | 国产美女永久免费 | 国产91在线 | 美洲 | av成人动漫| www视频在线播放 | 精品久久久久久国产偷窥 | 中文字幕av网站 | 成人在线你懂得 | 国内精品在线一区 | 婷婷色婷婷 | av大片网址| 色干干| 日韩一区二区三区高清在线观看 | 精品国产一区二区三区av性色 | 国产粉嫩在线 | 色综合综合 | 欧美在线久久 | 色偷偷av男人天堂 | 五月天亚洲激情 | 免费国产在线精品 | 久久久综合色 | 国产亚洲午夜高清国产拍精品 | 五月婷婷视频在线 | 久久99亚洲网美利坚合众国 | 色婷婷亚洲精品 | 亚洲免费专区 | 免费精品在线 | 超碰在线人 | 婷婷丁香狠狠爱 | 久久久久久久久久久成人 | 91免费在线视频 | 成人小视频在线观看免费 | 国产精品中文在线 | 91av超碰| 国产成人精品在线播放 | 99久在线精品99re8热视频 | 综合国产视频 | 91在线区 | 中文字幕一区二区三区乱码不卡 | 日日夜夜91 | 日韩成人邪恶影片 | 日本三级人妇 | 成人精品999 | 久久香蕉国产 | 精品a在线 | 九九热re | 成年人视频在线免费播放 | 毛片一区二区 | 精品国产91亚洲一区二区三区www | 久久一区二区免费视频 | 99色精品视频 | 99c视频在线 | 五月天.com| 日本精品一区二区 | 色在线免费 |