在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于STM32CUBEMX驅動TOF模塊VL6180與VL6180X(1)----單模塊距離獲取的最佳實踐

嵌入式單片機MCU開發 ? 來源:嵌入式單片機MCU開發 ? 作者:嵌入式單片機MCU開 ? 2023-07-27 09:47 ? 次閱讀

概述

VL6180X是基于ST FlightSense?專利技術的最新產品。作為一項突破性技術,它實現了獨立于目標反射率的絕對距離測量。傳統的測量方法通過測量反射光的光量來估算距離,然而這種方法存在一個主要缺點,即被測物體的顏色和表面特性對測量精度產生很大影響。VL6180X采用了一種全新的方法,它精確測量了光線從傳感器照射到最近物體,并在反射回傳感器所需的時間(即飛行時間),從而準確計算出兩者之間的距離。

在這里插入圖片描述

VL6180X模塊集成了一個紅外發射器、一個紅外傳感器和一個環境光傳感器,全部封裝在一個便于集成的三合一回流焊封裝中。這種設計使終端產品制造商能夠減少光學機械設計的優化過程,并降低相關成本。 該模塊具備低功耗操作的特點。測距和環境光感應(ALS)測量可以在用戶定義的時間間隔內自動執行。此外,它支持多種門限和中斷方案,以最大程度地減少主機操作的需要。 主機控制和結果讀取是通過I2C接口實現的,方便快捷。此外,VL6180X還提供兩個可編程的GPIO引腳,用于可選的附加功能,例如測量準備和門限中斷。 通過以上的優化和擴寫,文案更加詳細地描述了VL6180X模塊的工作原理、集成設計的優勢以及支持的功能和接口。這些信息可以幫助讀者更好地了解該模塊的特性和應用價值。 最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請:6_15061293 。

在這里插入圖片描述

視頻教程

[https://www.bilibili.com/video/BV1tX4y1q7Zj/]

樣品申請

[https://www.wjx.top/vm/OhcKxJk.aspx#]

完整代碼下載

[https://download.csdn.net/download/qq_24312945/87945855]

所有功能

  • 三合一智能光學模塊
    • 接近傳感器
    • 環境光傳感器
    • VCSEL光源
  • 快速,精確測距
    • 絕對測量范圍從0到超過10 cm(10cm以上的測距取決于具體情況)
    • 不受目標反射率影響
    • 環境光抑制
    • 蓋片的串擾補償
  • 蓋片的串擾補償
    • 主機系統可以用距離和信號電平實現手勢識別
    • 可用演示系統:P-NUCLEO-6180X1 評估板
  • 環境光傳感器
    • 高動態范圍
    • 精確/超低光敏感
    • 校準輸出值(以勒克斯為單位)
  • 方便集成
    • 單回流焊元件
    • 無附加光學元件
    • 單電源
    • 用于器件控制和數據的I2C接口
    • 提供一個文檔化的C可移植 API(應用程序接口)
  • 兩個可編程GPIO
    • 測距和ALS的窗口和門限功能

在這里插入圖片描述

技術規范

該模塊的供電要求為2.8V,適合于低電壓應用場景。它通過I2C接口進行主機控制和數據通信,方便與其他設備的集成。支持最大快速模式速率,達到400k,確保高效的數據傳輸。 此外,VL6180X模塊具備出色的光照強度檢測能力,覆蓋了廣泛的光照強度范圍。從微弱的1 Lux到高達100 kLux的光照強度,該模塊能夠準確測量環境的光照水平。這使得它在需要實時監測光照條件的應用中非常有用,例如室內照明控制、自動調節顯示亮度等。 最后,VL6180X模塊具有一個默認地址為0x29的設備地址,這樣在多個I2C設備共享同一總線時,可以輕松管理和區分不同的模塊。

在這里插入圖片描述

接口

vl6180模塊接口的示意圖如下所示。

在這里插入圖片描述

接口說明

在這里插入圖片描述

最小系統圖

在這里插入圖片描述

生成STM32CUBEMX

用STM32CUBEMX生成例程,這里使用MCU為STM32G030C8。 配置時鐘樹,配置時鐘為64M。

在這里插入圖片描述

串口配置

查看原理圖,PA9和PA10設置為開發板的串口。

在這里插入圖片描述

配置串口。

在這里插入圖片描述

IIC配置

在這個應用中,VL6180模塊通過I2C(IIC)接口與主控器通信。具體來說,VL6180模塊的I2C引腳連接到主控器的PB6(引腳B6)和PB7(引腳B7)兩個IO口。 這種連接方式確保了模塊與主控器之間的可靠數據傳輸和通信。PB6作為I2C總線的串行數據線(SDA),負責數據的傳輸和接收。而PB7則充當I2C總線的串行時鐘線(SCL),用于同步數據傳輸的時序。

在這里插入圖片描述

配置IIC為快速模式,速度為400k。

在這里插入圖片描述

串口重定向

打開魔術棒,勾選MicroLIB

在這里插入圖片描述

在main.c中,添加頭文件,若不添加會出現 identifier "FILE" is undefined報錯。

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

函數聲明和串口重定向:

/* USER CODE BEGIN PFP */
int fputc(int ch, FILE *f){
    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}
/* USER CODE END PFP */

模塊片選

根據提供的表格信息,我們可以得知VL6180模塊的GPIO0/CE引腳用作片選腳(Chip Enable),在需要使用該功能時,需要給該引腳一個高電平信號。 確保在使用GPIO0/CE引腳時,正確設置引腳的電平狀態,并按照VL6180模塊的規格和要求進行相應的配置和操作。這將確保模塊按照預期工作,并滿足特定的功能需求。

在這里插入圖片描述

下面為模塊啟動時序圖。

在這里插入圖片描述

模塊地址

VL6180模塊的默認設備地址為0x29。設備地址是用來識別和通信特定設備的標識符。通過將VL6180模塊的設備地址設置為0x29,您可以確保與該模塊進行正常的通信和控制。

在這里插入圖片描述

雖然VL6180模塊的默認設備地址為0x29,但可以通過使用I2C_SLAVE__DEVICE_ADDRESS {0x212}來修改模塊的設備地址。 通過修改設備地址,可以為VL6180模塊指定一個與默認地址不同的唯一地址。這種靈活性使您能夠在同一I2C總線上連接多個VL6180X模塊或與其他設備進行通信,而無需擔心地址沖突的問題。

在這里插入圖片描述

讀寫位

在I2C總線上,由于可能連接多個設備,主設備在傳輸有效數據之前需要指定從設備的地址。大多數從設備使用7位地址,而一些設備支持10位地址尋址。主設備在需要發送或接收數據時,首先發送所需從設備的地址,并匹配總線上掛載的從設備的地址。然后,主設備可以將數據發送到SDA數據線上。 緊隨地址的第8位是數據方向位(R/W),其中'0'表示發送(寫入),'1'表示請求數據(讀取)。 對于VL6180模塊,默認的7位地址是0x29(二進制為010 1001),加上寫位后為0x52(二進制為0101 0010),加上讀位后為0x53(二進制為0101 0011)。 這意味著當主設備與VL6180模塊進行通信時,要發送0x52地址字節進行寫操作,或發送0x53地址字節進行讀取操作。

在這里插入圖片描述

extern I2C_HandleTypeDef hi2c1;

void VL6180X_WriteByte(uint8_t add,uint16_t reg,uint8_t data)
{
    HAL_I2C_Mem_Write(&hi2c1 ,(add< < 1)|0,reg,I2C_MEMADD_SIZE_16BIT,&data,1,0xffff);

}
void VL6180X_WriteByte_16Bit(uint8_t add,uint16_t reg,uint16_t data)
{
    uint8_t data2[2]={0,0};
    data2[0]=data > >8;
    data2[1]=data;
    HAL_I2C_Mem_Write(&hi2c1 ,(add< < 1)|0,reg,I2C_MEMADD_SIZE_16BIT,data2,2,0xffff);

}

uint8_t VL6180X_ReadByte(uint8_t add,uint16_t reg)
{
    uint8_t data=0;
    HAL_I2C_Mem_Read(&hi2c1 ,(add< < 1)|1,reg,I2C_MEMADD_SIZE_16BIT,&data,1,0xffff);
    return data;
}


uint16_t VL6180X_ReadBytee_16Bit(uint8_t add,uint16_t reg)
{
    uint16_t data=0;
    uint8_t data2[2];
    HAL_I2C_Mem_Read(&hi2c1 ,(add< < 1)|1,reg,I2C_MEMADD_SIZE_16BIT,data2,2,0xffff);
    data=data2[0];
    data=data< < 8;
    data+=data2[1];

    return data;



}

模塊寄存器

對于VL6180,模塊寄存器的地址是16位的,不是8位的。VL6180模塊使用16位的寄存器地址來訪問和配置各種功能和參數。這種擴展的地址空間提供了更大的靈活性和更多的寄存器選項,以滿足不同的應用需求。 在與VL6180模塊進行通信時,主設備需要發送16位的寄存器地址,以指定所需的操作和寄存器位置。這樣可以確保主設備與模塊之間的正確數據交換和通信。

在這里插入圖片描述

所以對于vl6180模塊,讀寫代碼如下所示。

void VL6180X_WriteByte(uint8_t add,uint16_t reg,uint8_t data)
{
    HAL_I2C_Mem_Write(&hi2c1 ,(add< < 1)|0,reg,I2C_MEMADD_SIZE_16BIT,&data,1,0xffff);

}
void VL6180X_WriteByte_16Bit(uint8_t add,uint16_t reg,uint16_t data)
{
    uint8_t data2[2]={0,0};
    data2[0]=data > >8;
    data2[1]=data;
    HAL_I2C_Mem_Write(&hi2c1 ,(add< < 1)|0,reg,I2C_MEMADD_SIZE_16BIT,data2,2,0xffff);

}


uint8_t VL6180X_ReadByte(uint8_t add,uint16_t reg)
{
    uint8_t data=0;
    HAL_I2C_Mem_Read(&hi2c1 ,(add< < 1)|1,reg,I2C_MEMADD_SIZE_16BIT,&data,1,0xffff);
    return data;
}




uint16_t VL6180X_ReadBytee_16Bit(uint8_t add,uint16_t reg)
{
    uint16_t data=0;
    uint8_t data2[2];
    HAL_I2C_Mem_Read(&hi2c1 ,(add< < 1)|1,reg,I2C_MEMADD_SIZE_16BIT,data2,2,0xffff);
    data=data2[0];
    data=data< < 8;
    data+=data2[1];

    return data;



}

初始化

在這里插入圖片描述

首先需要檢查寄存器SYSTEM__FRESH_OUT_OF_RESET {0x16}是否為0x01.

在這里插入圖片描述

可以通過讀取SYSTEM__FRESH_OUT_OF_RESET {0x16}進行判斷設備是否準備好,之后進行6180初始化。 初始化如下所示。

在這里插入圖片描述

在這里插入圖片描述

uint8_t ptp_offset;
uint8_t VL6180X_Init(uint8_t add)
{
    ptp_offset=VL6180X_ReadByte(add,VL6180X_REG_SYSTEM_FRESH_OUT_OF_RESET);
    printf("ptp_offset=%dn",ptp_offset);
//    if(VL6180X_Read_ID(add) == VL6180X_DEFAULT_ID)
    if(ptp_offset==0x01)
    {    
        VL6180X_WriteByte(add,0x0207, 0x01);
        VL6180X_WriteByte(add,0x0208, 0x01);
        VL6180X_WriteByte(add,0x0096, 0x00);
        VL6180X_WriteByte(add,0x0097, 0xfd);
        VL6180X_WriteByte(add,0x00e3, 0x00);
        VL6180X_WriteByte(add,0x00e4, 0x04);
        VL6180X_WriteByte(add,0x00e5, 0x02);
        VL6180X_WriteByte(add,0x00e6, 0x01);
        VL6180X_WriteByte(add,0x00e7, 0x03);
        VL6180X_WriteByte(add,0x00f5, 0x02);
        VL6180X_WriteByte(add,0x00d9, 0x05);
        VL6180X_WriteByte(add,0x00db, 0xce);
        VL6180X_WriteByte(add,0x00dc, 0x03);
        VL6180X_WriteByte(add,0x00dd, 0xf8);
        VL6180X_WriteByte(add,0x009f, 0x00);
        VL6180X_WriteByte(add,0x00a3, 0x3c);
        VL6180X_WriteByte(add,0x00b7, 0x00);
        VL6180X_WriteByte(add,0x00bb, 0x3c);
        VL6180X_WriteByte(add,0x00b2, 0x09);
        VL6180X_WriteByte(add,0x00ca, 0x09);
        VL6180X_WriteByte(add,0x0198, 0x01);
        VL6180X_WriteByte(add,0x01b0, 0x17);
        VL6180X_WriteByte(add,0x01ad, 0x00);
        VL6180X_WriteByte(add,0x00ff, 0x05);
        VL6180X_WriteByte(add,0x0100, 0x05);
        VL6180X_WriteByte(add,0x0199, 0x05);
        VL6180X_WriteByte(add,0x01a6, 0x1b);
        VL6180X_WriteByte(add,0x01ac, 0x3e);
        VL6180X_WriteByte(add,0x01a7, 0x1f);
        VL6180X_WriteByte(add,0x0030, 0x00);

        // Recommended : Public registers - See data sheet for more detail
        VL6180X_WriteByte(add,0x0011, 0x10);       // Enables polling for 'New Sample ready'
                                    // when measurement completes
        VL6180X_WriteByte(add,0x010a, 0x30);       // Set the averaging sample period
                                    // (compromise between lower noise and
                                    // increased execution time)
        VL6180X_WriteByte(add,0x003f, 0x46);       // Sets the light and dark gain (upper
                                    // nibble). Dark gain should not be
                                    // changed. !上半字節要寫入0x4    默認增益是1.0
        VL6180X_WriteByte(add,0x0031, 0xFF);       // sets the # of range measurements after
                                    // which auto calibration of system is
                                    // performed
        VL6180X_WriteByte(add,0x0041, 0x63);       // Set ALS integration time to 100ms
        VL6180X_WriteByte(add,0x002e, 0x01);       // perform a single temperature calibration
                                    // of the ranging sensor

        // Optional: Public registers - See data sheet for more detail
        VL6180X_WriteByte(add,0x001b, 0x09);    //測量間隔    輪詢模式
                                    // period to 100ms    每步10ms- >0-10ms
        VL6180X_WriteByte(add,0x003e, 0x31);      //測量周期    ALS模式
                                    // to 500ms        
        VL6180X_WriteByte(add,0x0014, 0x24);       // Configures interrupt on 'New Sample
                                    // Ready threshold event'


//VL6180X_WriteByte(add,VL6180X_REG_SYSTEM_FRESH_OUT_OF_RESET, 0x00); //不發送00那么讀出來的數值就是01

        return 0;
    }
    else return 1;
}

設備標識號

查詢設備號可以通過0x000指令進行查詢,返回值一般為0xB4。

在這里插入圖片描述

uint8_t VL6180X_Read_ID(uint8_t add)
{
    return VL6180X_ReadByte(add,VL6180X_REG_IDENTIFICATION_MODEL_ID);
}

單次讀取距離長度

在VL6180模塊中,可以使用單次讀取或多次讀取的方式來獲取所需的數據。在這里,我們將使用單次讀取的方式來讀取數據。下圖中紅色框內的部分展示了單次讀取的操作方式。 單次讀取是一種簡單而常用的讀取數據的方法。它涉及到向VL6180模塊發送一個讀取命令,并從模塊的寄存器中讀取所需的數據。 圖示中的紅色框內部所示的讀取操作方式可以作為參考,幫助理解和實施單次讀取操作。

在這里插入圖片描述

由上圖可以得知,讀取的寄存器地址為0x062,0x062寄存器的說明如下所示,單位為mm。

在這里插入圖片描述

代碼如下所示。

uint8_t VL6180X_Read_Range(uint8_t add)
{
    uint8_t range = 0;
    //等待設備準備好進行量程測量
    while(!(VL6180X_ReadByte(add,VL6180X_REG_RESULT_RANGE_STATUS) & 0x01));//VL6180X_REG_RESULT_RANGE_STATUS,0x0d, 自檢0x01連續性測試
    //開始量程測量
    VL6180X_WriteByte(add,VL6180X_REG_SYSRANGE_START,0x01);//VL6180X_REG_SYSRANGE_START,0x018,開啟測距,0x01,單次模
    //輪詢到第2位被設置
    while(!(VL6180X_ReadByte(add,VL6180X_REG_RESULT_INTERRUPT_STATUS_GPIO) & 0x04));//VL6180X_REG_RESULT_INTERRUPT_STATUS_GPIO,中斷等待,0x04,數據等待完畢
    //讀數范圍(毫米)
    range = VL6180X_ReadByte(add,VL6180X_REG_RESULT_RANGE_VAL);//RESULT__RANGE_VAL,0x062,顯示檢測長度
    //清除中斷
    VL6180X_WriteByte(add,VL6180X_REG_SYSTEM_INTERRUPT_CLEAR,0x07);//VL6180X_REG_SYSTEM_INTERRUPT_CLEAR,0x015,清除狀態位
    return range;
}

測試結果

測試結果如下所示。

在這里插入圖片描述

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8718

    瀏覽量

    152019
  • ST
    ST
    +關注

    關注

    32

    文章

    1141

    瀏覽量

    129202
  • STM32
    +關注

    關注

    2273

    文章

    10926

    瀏覽量

    357778
  • TOF
    TOF
    +關注

    關注

    9

    文章

    485

    瀏覽量

    36512
  • stm32cubemx
    +關注

    關注

    5

    文章

    284

    瀏覽量

    15051
收藏 人收藏

    評論

    相關推薦

    基于STM32CUBEMX驅動TOF模塊VL6180VL6180X(2)----修改測量范圍

    當使用VL6180傳感器進行測距時,可以通過修改縮放因子來改變可測量的距離范圍。VL6180是一種基于飛行時間原理的傳感器,通過測量光信號的往返時間來確定物體與傳感器之間的距離
    的頭像 發表于 12-01 13:52 ?704次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅動</b><b class='flag-5'>TOF</b><b class='flag-5'>模塊</b><b class='flag-5'>VL6180</b>與<b class='flag-5'>VL6180X</b>(2)----修改測量范圍

    基于STM32CUBEMX驅動TOF模塊VL6180VL6180X(3)----修改設備地址

    本章主要介紹如何修改VL6180X傳感器的I2C地址,并成功驅動設備以使用新的地址。VL6180X是一種多功能、高性能的接近和環境光傳感器,常用于測量物體與傳感器之間的距離、檢測物體的
    的頭像 發表于 12-01 14:30 ?732次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅動</b><b class='flag-5'>TOF</b><b class='flag-5'>模塊</b><b class='flag-5'>VL6180</b>與<b class='flag-5'>VL6180X</b>(3)----修改設備地址

    基于STM32CUBEMX驅動TOF模塊VL6180VL6180X(4)----測量環境光

    在本章中,我們將介紹如何配置VL6180X傳感器以測量環境光,并獲取環境光的強度值。VL6180X是一種多功能、高性能的接近和環境光傳感器,其環境光測量功能可以用于檢測周圍環境的亮度水平。
    的頭像 發表于 12-01 14:34 ?938次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅動</b><b class='flag-5'>TOF</b><b class='flag-5'>模塊</b><b class='flag-5'>VL6180</b>與<b class='flag-5'>VL6180X</b>(4)----測量環境光

    基于STM32CUBEMX驅動TOF模塊VL6180VL6180X(5)----驅動多個VL6180X

    驅動多個VL6180X傳感器進行距離測量和光強測量。VL6180X傳感器在VL6180的基礎上增加了光強測量功能,這使得它們能夠提供關于環境
    的頭像 發表于 12-01 14:36 ?1125次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅動</b><b class='flag-5'>TOF</b><b class='flag-5'>模塊</b><b class='flag-5'>VL6180</b>與<b class='flag-5'>VL6180X</b>(5)----<b class='flag-5'>驅動</b>多個<b class='flag-5'>VL6180X</b>

    尋找手冊中引用的F401和VL6180板的mbed資源

    我正在尋找手冊中引用的F401和VL6180板的mbed資源。 可以嗎?#vl6180x以上來自于谷歌翻譯以下為原文 I was looking for mbed resources
    發表于 09-21 16:57

    VL6180X該設備的功耗是多少?

    親, VL6180X的功耗是多少? 問候。 一個。#proximity-sensor#vl6180x以上來自于谷歌翻譯以下為原文 Dear, What is the power
    發表于 09-25 17:21

    VL6180X包含多少個傳感器?

    VL6180X包含多少個傳感器? #vl6180x#vl6180x-outline-drawing #sensor以上來自于谷歌翻譯以下為原文 How many sensors does
    發表于 09-25 17:14

    VL6180X操作如何測量距離

    的問題是:由于VL6180X計算距離作為發射和接收紅外線之間的時間,它如何測量距離(例如約1cm),其對應于皮秒級的飛行時間? 謝謝#vl6180x
    發表于 10-10 10:47

    VL6180X:什么是線性誤差率?

    親, VL6180X的線性誤碼率是多少? Tks和問候。 一個。 #proximity-sensor#vl6180x以上來自于谷歌翻譯以下為原文 Dear, What
    發表于 10-22 16:29

    VL6180X范圍偏移怎么更改

    大家好我在自定義主板上使用了一些VL6180X設備。 然后,它們的范圍偏移似乎每次啟動都會改變大約mm5mm,盡管我按應用說明中的指示調整了偏移。什么影響范圍偏移?在正常情況下,只需一次調整就夠了嗎
    發表于 10-23 16:52

    VL6180X增加了范圍

    嗨,我想增加VL6180X的范圍,但我不知道我必須修改哪個寄存器。我看到RangingAndALS_NucleoXXX樣本中的代碼,但我不明白VL6180X寄存器是如何被修改的,以便增加測量范圍
    發表于 04-08 16:02

    距離測量VL6180X錯誤

    嘿,我正在使用VL6180X衛星傳感器進行測距測量。連接后,我收到一些測量值 - 但它們是錯誤的。傳感器不會對0mm和~50mm之間的距離變化做出反應。它不斷向我顯示'4 mm'的值。超過50毫米
    發表于 05-13 07:13

    請問VL6180X的基本功能有哪些?

    VL6180X的基本功能有哪些? #vl6180x #features以上來自于谷歌翻譯以下為原文 What are the basic features of VL6180X ?#vl61
    發表于 06-05 09:26

    Vl6180x 官方蓋玻片模型的使用

    本帖最后由 yppc 于 2019-12-31 12:09 編輯 我最近在使用Vl6180x芯片,因為應用環境,我準備增加蓋玻片防塵,我在ST官網上查詢到Vl6180芯片的蓋玻片模型,我想咨詢
    發表于 12-31 11:41

    使用VL6180X ToF傳感器與Particle Argon控制伺服器

    電子發燒友網站提供《使用VL6180X ToF傳感器與Particle Argon控制伺服器.zip》資料免費下載
    發表于 10-19 09:52 ?0次下載
    使用<b class='flag-5'>VL6180X</b> <b class='flag-5'>ToF</b>傳感器與Particle Argon控制伺服器
    主站蜘蛛池模板: 丁香激情六月 | 免费三级网站 | 中文字字幕码一二区 | 韩国xxxxx视频在线 | 日韩欧美黄色 | 国产成人一级片 | 干成人网| 四虎地址8848最新章节 | 美女扒开尿口给男人桶动态图 | 看片在线观看免费 | 国产精品久久久久久久久久免费 | 四虎影院在线免费 | 日本一区二区视频 | 美女脱裤子屁屁视频 | 日本高清视频成人网www | 好男人www社区影视在线 | 在线播放国产一区 | 真人实干一级毛片aa免费 | 色视频在线看 | 色多多·com 色多多18免费观看 色多多a | 国产人人艹 | 国产黄色一级网站 | 国产美女久久久 | 国产精品福利视频手机免费观看 | 西西人体大胆高清啪啪欧洲 | 免费 视频 | 天天做天天添婷婷我也去 | 四虎www成人影院观看 | 手机看片福利视频 | 福利一区二区在线观看 | 日本黄页网| 亚洲国产精品乱码一区二区三区 | 翘臀白浆 | 四虎最新在线 | 日本不卡高清免费 | 免费一级毛片无毒不卡 | 国产拍拍拍免费视频网站 | 韩国最新三级网站在线播放 | 四虎影视永久在线观看 | 国产欧美亚洲精品第二区首页 | 性人久久久久 |