久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6287|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

STM32 OV2640攝像頭黑白照相機實驗的源碼資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:319454 發(fā)表于 2018-4-30 17:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
做黑白照相機的,希望可以給大家參考
實驗器材:
    探索者STM32F4開發(fā)板
   
實驗?zāi)康?
    學(xué)習(xí)OV2640攝像頭,BMP編碼和文件系統(tǒng)的使用,實現(xiàn)一個簡單的照相機.
   
硬件資源:
    1,DS0(連接在PF9),DS1(連接在PF10)
    2,串口1(波特率:115200,PA9/PA10連接在板載USB轉(zhuǎn)串口芯片CH340上面)
    3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模塊(通過FSMC驅(qū)動,FSMC_NE4接LCD片選/A6接RS)
    4,按鍵KEY0(PE4)/KEY1(PE3)/KEY_UP(PA0,也稱之為WK_UP)
    5,SD卡,通過SDIO(SDIO_D0~D4(PC8~PC11),SDIO_SCK(PC12),SDIO_CMD(PD2))連接
    6,蜂鳴器(PF8)
    7,DCMI接口(用于驅(qū)動OV2640攝像頭模塊)
    8,定時器3(用于打印攝像頭幀率等信息)
    9,ALIENTEK OV2640攝像頭模塊,連接關(guān)系為:  
        OV2640模塊 ------------ STM32開發(fā)板
         OV_D0~D7  ------------  PE6/PE5/PB6/PC11/PC9/PC8/PC7/PC6
         OV_SCL    ------------  PD6
         OV_SDA    ------------  PD7
         OV_VSYNC  ------------  PB7
         OV_HREF   ------------  PA4
         OV_RESET  ------------  PG15
         OV_PCLK   ------------  PA6
         OV_PWDN   ------------  PG9

實驗現(xiàn)象:
    本實驗開機的時候先檢測字庫,然后檢測SD卡根目錄是否存在PHOTO文件夾,如果不存在則創(chuàng)建,如果創(chuàng)建失敗,則報錯(提示拍照功能不可用)。在找到SD卡的PHOTO文件夾后,開始初始化OV2640,在初始化成功之后,就一直在屏幕顯示OV2640拍到的內(nèi)容。

    按下KEY0,可以拍bmp圖片照片(分辨率為:LCD辨率)。拍照保存成功之后,蜂鳴器會發(fā)出“滴”的一聲,提示拍照成功。

    DS0還是用于指示程序運行狀態(tài),DS1用于提示DCMI幀中斷。
   
注意事項:
    1,4.3寸和7寸屏需要比較大電流,USB供電可能不足,請用外部電源適配器(推薦外接12V 1A電源).
    2,本例程在LCD_Init函數(shù)里面(在ILI93xx.c),用到了printf,如果不初始化串口1,將導(dǎo)致液晶無法顯示!!
    3,該實驗須自備SD卡和ALIENTEK OV2640模塊各一個.


(攝像頭初始化為YUV422格式,輸送到LCD屏上顯示,當(dāng)按下拍照鍵后,讀取屏幕點數(shù)據(jù),把RGB565格式的雙字節(jié)提取為單字節(jié)的Y量,即亮度值,而后,逐點寫入SD卡后生成灰度BMP文件。)

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"  
  3. #include "usart.h"   
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "key.h"  
  7. #include "usmart.h"   
  8. #include "sram.h"
  9. #include "malloc.h"
  10. #include "w25qxx.h"   
  11. #include "sdio_sdcard.h"
  12. #include "ff.h"  
  13. #include "exfuns.h"   
  14. #include "fontupd.h"
  15. #include "text.h"       
  16. #include "piclib.h"       
  17. #include "string.h"       
  18. #include "math.h"       
  19. #include "dcmi.h"       
  20. #include "ov2640.h"       
  21. #include "beep.h"       
  22. #include "timer.h"



  23. u8 ov2640_mode=0;                                                //工作模式:0,RGB565模式;1,JPEG模式

  24. #define jpeg_dma_bufsize        5*1024                //定義JPEG DMA接收時數(shù)據(jù)緩存jpeg_buf0/1的大小(*4字節(jié))
  25. volatile u32 jpeg_data_len=0;                         //buf中的JPEG有效數(shù)據(jù)長度(*4字節(jié))
  26. volatile u8 jpeg_data_ok=0;                                //JPEG數(shù)據(jù)采集完成標(biāo)志
  27.                                                                                 //0,數(shù)據(jù)沒有采集完;
  28.                                                                                 //1,數(shù)據(jù)采集完了,但是還沒處理;
  29.                                                                                 //2,數(shù)據(jù)已經(jīng)處理完成了,可以開始下一幀接收
  30.                                                                                
  31. u32 *jpeg_buf0;                                                        //JPEG數(shù)據(jù)緩存buf,通過malloc申請內(nèi)存
  32. u32 *jpeg_buf1;                                                        //JPEG數(shù)據(jù)緩存buf,通過malloc申請內(nèi)存
  33. u32 *jpeg_data_buf;                                                //JPEG數(shù)據(jù)緩存buf,通過malloc申請內(nèi)存

  34. //處理JPEG數(shù)據(jù)
  35. //當(dāng)采集完一幀JPEG數(shù)據(jù)后,調(diào)用此函數(shù),切換JPEG BUF.開始下一幀采集.
  36. void jpeg_data_process(void)
  37. {
  38.         u16 i;
  39.         u16 rlen;//剩余數(shù)據(jù)長度
  40.         u32 *pbuf;
  41.         if(ov2640_mode)//只有在JPEG格式下,才需要做處理.
  42.         {
  43.                 if(jpeg_data_ok==0)        //jpeg數(shù)據(jù)還未采集完?
  44.                 {
  45.                         DMA2_Stream1->CR&=~(1<<0);                //停止當(dāng)前傳輸
  46.                         while(DMA2_Stream1->CR&0X01);        //等待DMA2_Stream1可配置
  47.                         rlen=jpeg_dma_bufsize-DMA2_Stream1->NDTR;//得到剩余數(shù)據(jù)長度       
  48.                         pbuf=jpeg_data_buf+jpeg_data_len;//偏移到有效數(shù)據(jù)末尾,繼續(xù)添加
  49.                         if(DMA2_Stream1->CR&(1<<19))for(i=0;i<rlen;i++)pbuf[i]=jpeg_buf1[i];//讀取buf1里面的剩余數(shù)據(jù)
  50.                         else for(i=0;i<rlen;i++)pbuf[i]=jpeg_buf0[i];//讀取buf0里面的剩余數(shù)據(jù)
  51.                         jpeg_data_len+=rlen;                        //加上剩余長度
  52.                         jpeg_data_ok=1;                                 //標(biāo)記JPEG數(shù)據(jù)采集完按成,等待其他函數(shù)處理
  53.                 }
  54.                 if(jpeg_data_ok==2)        //上一次的jpeg數(shù)據(jù)已經(jīng)被處理了
  55.                 {
  56.                         DMA2_Stream1->NDTR=jpeg_dma_bufsize;//傳輸長度為jpeg_buf_size*4字節(jié)
  57.                         DMA2_Stream1->CR|=1<<0;                        //重新傳輸
  58.                         jpeg_data_ok=0;                                        //標(biāo)記數(shù)據(jù)未采集
  59.                         jpeg_data_len=0;                                //數(shù)據(jù)重新開始
  60.                 }
  61.         }
  62. }
  63. //jpeg數(shù)據(jù)接收回調(diào)函數(shù)
  64. void jpeg_dcmi_rx_callback(void)
  65. {
  66.         u16 i;
  67.         u32 *pbuf;
  68.         pbuf=jpeg_data_buf+jpeg_data_len;//偏移到有效數(shù)據(jù)末尾
  69.         if(DMA2_Stream1->CR&(1<<19))//buf0已滿,正常處理buf1
  70.         {
  71.                 for(i=0;i<jpeg_dma_bufsize;i++)pbuf[i]=jpeg_buf0[i];//讀取buf0里面的數(shù)據(jù)
  72.                 jpeg_data_len+=jpeg_dma_bufsize;//偏移
  73.         }else //buf1已滿,正常處理buf0
  74.         {
  75.                 for(i=0;i<jpeg_dma_bufsize;i++)pbuf[i]=jpeg_buf1[i];//讀取buf1里面的數(shù)據(jù)
  76.                 jpeg_data_len+=jpeg_dma_bufsize;//偏移
  77.         }        
  78. }
  79. //切換為OV2640模式
  80. void sw_ov2640_mode(void)
  81. {
  82.         OV2640_PWDN=0;//OV2640 Power Up
  83.         //GPIOC8/9/11切換為 DCMI接口
  84.         GPIO_AF_Set(GPIOC,8,13);        //PC8,AF13  DCMI_D2
  85.         GPIO_AF_Set(GPIOC,9,13);        //PC9,AF13  DCMI_D3
  86.         GPIO_AF_Set(GPIOC,11,13);        //PC11,AF13 DCMI_D4  
  87. }
  88. //切換為SD卡模式
  89. void sw_sdcard_mode(void)
  90. {
  91.         OV2640_PWDN=1;//OV2640 Power Down
  92.         //GPIOC8/9/11切換為 SDIO接口
  93.           GPIO_AF_Set(GPIOC,8,12);        //PC8,AF12
  94.         GPIO_AF_Set(GPIOC,9,12);        //PC9,AF12
  95.         GPIO_AF_Set(GPIOC,11,12);        //PC11,AF12  
  96. }
  97. //文件名自增(避免覆蓋)
  98. //mode:0,創(chuàng)建.bmp文件;1,創(chuàng)建.jpg文件.
  99. //bmp組合成:形如"0:PHOTO/PIC13141.bmp"的文件名
  100. //jpg組合成:形如"0:PHOTO/PIC13141.jpg"的文件名
  101. void camera_new_pathname(u8 *pname,u8 mode)
  102. {         
  103.         u8 res;                                         
  104.         u16 index=0;
  105.         while(index<0XFFFF)
  106.         {
  107.                 if(mode==0)sprintf((char*)pname,"0:PHOTO/PIC%05d.bmp",index);
  108.                 else sprintf((char*)pname,"0:PHOTO/PIC%05d.jpg",index);
  109.                 res=f_open(ftemp,(const TCHAR*)pname,FA_READ);//嘗試打開這個文件
  110.                 if(res==FR_NO_FILE)break;                //該文件名不存在=正是我們需要的.
  111.                 index++;
  112.         }
  113. }
  114. //OV2640拍照jpg圖片
  115. //返回值:0,成功
  116. //    其他,錯誤代碼
  117. u8 ov2640_jpg_photo(u8 *pname)
  118. {
  119.         FIL* f_jpg;
  120.         u8 res=0;
  121.         u32 bwr;
  122.         u16 i;
  123.         u8* pbuf;
  124.         f_jpg=(FIL *)mymalloc(SRAMIN,sizeof(FIL));        //開辟FIL字節(jié)的內(nèi)存區(qū)域
  125.         if(f_jpg==NULL)return 0XFF;                                        //內(nèi)存申請失敗.
  126.         ov2640_mode=1;
  127.         sw_ov2640_mode();                //切換為OV2640模式
  128.         dcmi_rx_callback=jpeg_dcmi_rx_callback;//回調(diào)函數(shù)
  129.         DCMI_DMA_Init((u32)jpeg_buf0,(u32)jpeg_buf1,jpeg_dma_bufsize,2,1);;//DCMI DMA配置(雙緩沖模式)
  130.         OV2640_JPEG_Mode();                //切換為JPEG模式
  131.         OV2640_ImageWin_Set(0,0,1600,1200);                         
  132.         OV2640_OutSize_Set(1600,1200);//拍照尺寸為1600*1200
  133.         DCMI_Start();                         //啟動傳輸
  134.         while(jpeg_data_ok!=1);        //等待第一幀圖片采集完
  135.         jpeg_data_ok=2;                        //忽略本幀圖片,啟動下一幀采集
  136.         while(jpeg_data_ok!=1);        //等待第二幀圖片采集完,第二幀,才保存到SD卡去.
  137.         DCMI_Stop();                         //停止DMA搬運
  138.         ov2640_mode=0;
  139.         sw_sdcard_mode();                //切換為SD卡模式
  140.         res=f_open(f_jpg,(const TCHAR*)pname,FA_WRITE|FA_CREATE_NEW);//模式0,或者嘗試打開失敗,則創(chuàng)建新文件         
  141.         if(res==0)
  142.         {
  143.                 printf("jpeg data size:%d\r\n",jpeg_data_len*4);//串口打印JPEG文件大小
  144.                 pbuf=(u8*)jpeg_data_buf;
  145.                 for(i=0;i<jpeg_data_len*4;i++)//查找0XFF,0XD8
  146.                 {
  147.                         if((pbuf[i]==0XFF)&&(pbuf[i+1]==0XD8))break;
  148.                 }
  149.                 if(i==jpeg_data_len*4)res=0XFD;//沒找到0XFF,0XD8
  150.                 else//找到了
  151.                 {
  152.                         pbuf+=i;//偏移到0XFF,0XD8處
  153.                         res=f_write(f_jpg,pbuf,jpeg_data_len*4-i,&bwr);
  154.                         if(bwr!=(jpeg_data_len*4-i))res=0XFE;
  155.                 }
  156.         }
  157.         jpeg_data_len=0;
  158.         f_close(f_jpg);
  159.         sw_ov2640_mode();                //切換為OV2640模式
  160.         OV2640_RGB565_Mode();        //RGB565模式
  161.         DCMI_DMA_Init((u32)&LCD->LCD_RAM,0,1,1,0);//DCMI DMA配置   
  162.         myfree(SRAMIN,f_jpg);
  163.         return res;
  164. }  
  165. int main(void)
  166. {        
  167.         u8 res;                                                         
  168.         u8 *pname;                                //帶路徑的文件名
  169.         u8 key;                                        //鍵值                  
  170.         u8 i;                                                 
  171.         u8 sd_ok=1;                                //0,sd卡不正常;1,SD卡正常.
  172.         u8 scale=1;                                //默認(rèn)是全尺寸縮放
  173.         u8 msgbuf[15];                        //消息緩存區(qū)

  174.         Stm32_Clock_Init(336,8,2,7);//設(shè)置時鐘,168Mhz
  175.         delay_init(168);                        //延時初始化  
  176.         uart_init(84,115200);                //初始化串口波特率為115200
  177.         LED_Init();                                        //初始化LED
  178.         usmart_dev.init(84);                //初始化USMART
  179.         TIM3_Int_Init(10000-1,8400-1);//10Khz計數(shù),1秒鐘中斷一次
  180.         LCD_Init();                                        //LCD初始化  
  181.         FSMC_SRAM_Init();                        //初始化外部SRAM.
  182.         BEEP_Init();                                //蜂鳴器初始化
  183.         KEY_Init();                                        //按鍵初始化   
  184.         W25QXX_Init();                                //初始化W25Q128
  185.         my_mem_init(SRAMIN);                //初始化內(nèi)部內(nèi)存池
  186.         my_mem_init(SRAMEX);                //初始化內(nèi)部內(nèi)存池  
  187.         my_mem_init(SRAMCCM);                //初始化CCM內(nèi)存池
  188.         exfuns_init();                                //為fatfs相關(guān)變量申請內(nèi)存  
  189.           f_mount(fs[0],"0:",1);                 //掛載SD卡  
  190.         POINT_COLOR=RED;      
  191.         while(font_init())                 //檢查字庫
  192.         {            
  193.                 LCD_ShowString(30,50,200,16,16,"Font Error!");
  194.                 delay_ms(200);                                  
  195.                 LCD_Fill(30,50,240,66,WHITE);//清除顯示             
  196.                 delay_ms(200);                                  
  197.         }           
  198.         Show_Str(30,50,200,16,"Explorer STM32F4開發(fā)板",16,0);                                              
  199.         Show_Str(30,70,200,16,"照相機實驗",16,0);                                             
  200.         Show_Str(30,90,200,16,"KEY0:拍照(bmp格式)",16,0);                                     
  201.         Show_Str(30,110,200,16,"KEY1:拍照(jpg格式)",16,0);                                                     
  202.         Show_Str(30,130,200,16,"WK_UP:FullSize/Scale",16,0);                                             
  203.         Show_Str(30,150,200,16,"2014年5月16日",16,0);
  204.         res=f_mkdir("0:/PHOTO");                //創(chuàng)建PHOTO文件夾
  205.         if(res!=FR_EXIST&&res!=FR_OK)         //發(fā)生了錯誤
  206.         {                    
  207.                 Show_Str(30,150,240,16,"SD卡錯誤!",16,0);
  208.                 delay_ms(200);                                  
  209.                 Show_Str(30,170,240,16,"拍照功能將不可用!",16,0);
  210.                 sd_ok=0;         
  211.         }        
  212.         jpeg_buf0=mymalloc(SRAMIN,jpeg_dma_bufsize*4);        //為jpeg dma接收申請內(nèi)存       
  213.         jpeg_buf1=mymalloc(SRAMIN,jpeg_dma_bufsize*4);        //為jpeg dma接收申請內(nèi)存       
  214.         jpeg_data_buf=mymalloc(SRAMEX,300*1024);                //為jpeg文件申請內(nèi)存(最大300KB)
  215.         pname=mymalloc(SRAMIN,30);//為帶路徑的文件名分配30個字節(jié)的內(nèi)存         
  216.         while(pname==NULL||!jpeg_buf0||!jpeg_buf1||!jpeg_data_buf)        //內(nèi)存分配出錯
  217.         {            
  218.                 Show_Str(30,190,240,16,"內(nèi)存分配失敗!",16,0);
  219.                 delay_ms(200);                                  
  220.                 LCD_Fill(30,190,240,146,WHITE);//清除顯示             
  221.                 delay_ms(200);                                  
  222.         }   
  223.         while(OV2640_Init())//初始化OV2640
  224.         {
  225.                 Show_Str(30,190,240,16,"OV7670 錯誤!",16,0);
  226.                 delay_ms(200);
  227.             LCD_Fill(30,190,239,206,WHITE);
  228.                 delay_ms(200);
  229.         }       
  230.         Show_Str(30,190,200,16,"OV2640 正常",16,0);
  231.         delay_ms(2000);
  232. //        OV2640_RGB565_Mode();        //JPEG模式
  233.         OV2640_YUV422_Mode();
  234.         DCMI_Init();                        //DCMI配置
  235.         DCMI_DMA_Init((u32)&LCD->LCD_RAM,0,1,1,0);//DCMI DMA配置  
  236.         OV2640_OutSize_Set(lcddev.width,lcddev.height);
  237.         DCMI_Start();                         //啟動傳輸
  238.         while(1)
  239.         {       
  240.                 key=KEY_Scan(0);//不支持連按
  241.                 if(key&&key!=KEY2_PRES)
  242.                 {
  243.                         DCMI_Stop(); //停止顯示
  244.                         if(key==WKUP_PRES)
  245.                         {                               
  246.                                 u16 i,l,color1,color2;
  247.                                 scale=!scale;  
  248.                                 if(scale==0)
  249.                                 {
  250.                                         OV2640_ImageWin_Set((1600-lcddev.width)/2,(1200-lcddev.height)/2,lcddev.width,lcddev.height);//1:1真實尺寸
  251.                                         OV2640_OutSize_Set(lcddev.width,lcddev.height);
  252.                                         sprintf((char*)msgbuf,"Full Size 1:1");
  253.                                 }else
  254.                                 {
  255.                                         OV2640_ImageWin_Set(0,0,1600,1200);                                //全尺寸縮放
  256.                                         OV2640_OutSize_Set(lcddev.width,lcddev.height);
  257.                                         sprintf((char*)msgbuf,"Scale");
  258.                                 }
  259.                                 LCD_ShowString(30,50,210,16,16,msgbuf);//顯示提示內(nèi)容
  260.                                
  261.                                 /*
  262.                                 for(i=0;i<240;i++)
  263.                                 {
  264.                                         for(l=0;l<800;l++)
  265.                                         {
  266.                                                 color1=LCD_ReadPoint(l,i);

  267.                                                 color2=(((color1>>0)&0xf800)+((color1>>5)&0x07e0)+((color1>>11)&0x001f));

  268.                                                 LCD_Fast_DrawPoint(l,240+i,color2);
  269.                                         }
  270.                                 }*/
  271.                                 delay_ms(800);        
  272.                         }else if(sd_ok)//SD卡正常才可以拍照
  273.                         {   
  274.                                 sw_sdcard_mode();        //切換為SD卡模式
  275.                                 if(key==KEY0_PRES)        //BMP拍照
  276.                                 {
  277.                                         camera_new_pathname(pname,0);//得到文件名       
  278.                                         res=bmp_encode(pname,0,0,lcddev.width,lcddev.height,0);
  279.                                 }else if(key==KEY1_PRES)//JPG拍照
  280.                                 {
  281.                                         camera_new_pathname(pname,1);//得到文件名       
  282.                                         res=ov2640_jpg_photo(pname);
  283.                                         if(scale==0)
  284.                                         {
  285.                                                 OV2640_ImageWin_Set((1600-lcddev.width)/2,(1200-lcddev.height)/2,lcddev.width,lcddev.height);//1:1真實尺寸
  286.                                                 OV2640_OutSize_Set(lcddev.width,lcddev.height);
  287.                                         }else
  288.                                         {
  289.                                                 OV2640_ImageWin_Set(0,0,1600,1200);        //全尺寸縮放
  290.                                         }
  291.                                         OV2640_OutSize_Set(lcddev.width,lcddev.height);                                        
  292.                                 }
  293.                                 sw_ov2640_mode();        //切換為OV2640模式
  294.                                 if(res)//拍照有誤
  295.                                 {
  296.                                         Show_Str(30,130,240,16,"寫入文件錯誤!",16,0);                 
  297.                                 }else
  298.                                 {
  299.                                         Show_Str(30,130,240,16,"拍照成功!",16,0);
  300.                                         Show_Str(30,150,240,16,"保存為:",16,0);
  301.                                         Show_Str(30+42,150,240,16,pname,16,0);                    
  302.                                         BEEP=1;        //蜂鳴器短叫,提示拍照完成
  303.                                         delay_ms(100);
  304.                                 }                          
  305.                         }else //提示SD卡錯誤
  306.                         {                                            
  307.                                 Show_Str(30,130,240,16,"SD卡錯誤!",16,0);
  308.                                 Show_Str(30,150,240,16,"拍照功能不可用!",16,0);                            
  309.                         }          
  310.                         BEEP=0;                        //關(guān)閉蜂鳴器
  311.                         if(key!=WKUP_PRES)delay_ms(1800);//非尺寸切換,等待1.8秒鐘
  312.                         DCMI_Start();         //開始顯示  
  313.                 }
  314.                 delay_ms(10);
  315.                 i++;
  316.                 if(i==20)//DS0閃爍.
  317.                 {
  318.                         i=0;
  319.                         LED0=!LED0;
  320.                 }
  321.         }
  322. }


復(fù)制代碼

所有資料51hei提供下載:
黑白照相機實驗.rar (1008.85 KB, 下載次數(shù): 64)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:318517 發(fā)表于 2018-5-2 15:36 | 只看該作者
項目需要,準(zhǔn)備著,學(xué)起來。
回復(fù)

使用道具 舉報

板凳
ID:336358 發(fā)表于 2018-5-23 14:50 | 只看該作者
今天上午看到的,等到下載后才發(fā)現(xiàn)錯誤的下載了另一個
回復(fù)

使用道具 舉報

地板
ID:955119 發(fā)表于 2021-8-10 17:10 | 只看該作者
請問能實現(xiàn)簡單的照相效果嗎
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女久久久久久久网站 | 羞羞视频在线网站观看 | 国产一区二区在线免费观看 | 超碰成人在线观看 | 欧美成人在线免费 | 天堂色| 中文字幕一区在线 | 久久久久国产一区二区三区不卡 | 亚洲人免费视频 | 久久伊人精品 | 九九激情视频 | 二区三区在线观看 | 亚洲人在线 | 成人午夜精品 | 国产一级一级国产 | 亚洲高清在线观看 | 黄色中文字幕 | 精品视频在线观看 | 精品国产乱码久久久久久影片 | 欧美久久精品一级黑人c片 91免费在线视频 | 9porny九色视频自拍 | 精品福利在线 | 精品美女久久久 | 精品一区国产 | 国产免费va | 美日韩中文字幕 | 欧美日韩久久 | 欧美精品一区二区三区在线 | 国产2区 | 午夜综合 | 婷婷99 | 午夜免费av| 亚洲男人网 | 日韩精品一区在线 | 欧美日韩一区不卡 | 亚洲色图婷婷 | 久久一区 | 久久久久久久久久久久久久国产 | 国产精品成人在线播放 | 成人在线视频免费观看 | 少妇精品亚洲一区二区成人 |