鲁鲁免费五月天视频_美美女免免费亚洲片国视频_日本精品在线不卡中文字幕_一级毛片看看_aw字幕中文一区二区三区_精品资源在线视频_国产三级无遮挡在线播放_丰满少妇蜜桃av_AV色综合青青草原加勒比_久久成人影院精品99

當(dāng)前位置:首頁 > 服務(wù)支持 > 博客

從零開始手把手教你寫一個基于nRF54L15的BLE工程作者:迅通科技    時間:2024-12-30

最近收到了Nordic最新的旗艦級BLE芯片 nRF54L15的開發(fā)板,大概研究了一下,今天教大家怎么在上面把BLE跑起來。

前言:開發(fā)板概覽

 1、打開包裝之后里面是用防靜電袋包裝的開發(fā)板和NFC天線,nRF54L15DK的代號是PCA10156,但是nRF54L15的開發(fā)板對比nRF52832的開發(fā)板來看,nRF54L15的開發(fā)板沒有再采用Arduion接口將IO引出。開發(fā)板上用到的元器件也少了很多,看下來只用到五顆主芯片。


 開發(fā)板的JLINK芯片用的是Nordic的nRF5340,JLINK的USB口換成了Typc-C口。


 電源芯片用上了Nordic自己的PMIC nPM1300


 最后來看一下nRF54L15部分,這里外掛了一個MXIC 64Mbit的flash,nRF54L15最小系統(tǒng)的元器件也少了很多。


在網(wǎng)上可以找到nRF54L15的資料:

介紹:https://www.nordicsemi.com/Products/nRF54L15
規(guī)格書:https://docs-be.nordicsemi.com/bundle/ps_nrf54L15/attach/pdf/nRF54L15_nRF54L10_nRF54L05_Datasheet_v0.7.pdf
硬件設(shè)計:https://www.nordicsemi.com/-/media/Software-and-other-downloads/Reference-Layouts/nRF54L15/nRF54L15-QFAA-Reference-Layout-0_7.zip

 2、環(huán)境搭建

根據(jù)我原廠的朋友的說法,新的nRF54L15需要用到NRF Connect SDK去開發(fā),

這里環(huán)境搭建可以參考官方的文檔:Installing the nRF Connect SDK (nordicsemi.com)

最新的文檔已經(jīng)推薦使用nrfutil來下載SDK了,但是我個人還是更喜歡用west的方式

這里可以參考中國區(qū)原廠FAE的博客:開發(fā)你的第一個nRF Connect SDK(NCS)/Zephyr應(yīng)用程序 - iini - 博客園 (cnblogs.com)

按照博客中的方法安裝好Choco和相關(guān)的工具之后,直接執(zhí)行下面兩條命令即可:

west init -m https://github.com/nrfconnect/sdk-nrf --mr v2.9.0

west update
nRF54系列的SDK要使用NCS 2.7.0及以上的版本,下載SDK的時候需要注意。

NRF CONNECT SDK現(xiàn)在的編譯環(huán)境也換成了VS Code + Nordic插件的方式,這里的編譯環(huán)境搭建也可以參考上面中國區(qū)原廠FAE的博客。


一、在nRF54L15D上運(yùn)行你的第一個程序
1、搭建好環(huán)境之后,首先我們從SDK中Copy一個Hello World的工程


2、編譯在NRF54L15DK上運(yùn)行,這里需要注意NCS2.7.x及以上的版本在編譯的時候需要選擇SysBuild


3、程序編譯之后下載到nRF54L15DK中,打開串口我們可以看到串口打印如下:

分別是NCS和Zephyr的版本,以及Hello World!和Boards的型號


 4、我們打開這個工程的main.c,可以看到這個工程非常簡單,就是調(diào)用了printf來打印Hello World!和CONFIG_BOARD_TARGET這個宏


二、添加LOG模塊
上面的Hello World使用了printf來打印,在我們的程序里面可以調(diào)用LOG模塊來打印調(diào)試日志,這樣方便我們后續(xù)在產(chǎn)品量產(chǎn)的時候關(guān)閉LOG模塊
1、這里我們先在hello_world/prj.conf中下面這些的宏,開啟LOG
復(fù)制代碼
#Config logger
CONFIG_LOG=y
CONFIG_USE_SEGGER_RTT=n
CONFIG_LOG_BACKEND_RTT=n
CONFIG_LOG_BACKEND_UART=y
CONFIG_LOG_DEFAULT_LEVEL=3
復(fù)制代碼
2、在main.c中加入下面這些頭文件,調(diào)用LOG的庫,并注冊LOG模組
復(fù)制代碼
//Add Log Library file
#include <zephyr.h>
#include <zephyr/logging/log.h>

//Register LOG Module
#define LOG_MODULE_NAME ble_hello_world
LOG_MODULE_REGISTER(LOG_MODULE_NAME);
復(fù)制代碼
3、這里我們提前寫一個bluetooth_init的函數(shù),并在bluetooth_init中加入一些LOG信息

復(fù)制代碼
int bluetooth_init(void)
{
    int err_code;

    LOG_INF("Initiallzing BLE");

    err_code = 0;

    return err_code;
}
復(fù)制代碼
4、、在main函數(shù)中調(diào)用函數(shù) bluetooth_init

復(fù)制代碼
int main(void)
{
    int err_code;

    err_code = bluetooth_init();
    if(err_code){
        LOG_ERR("Bluetooth_init returnrd %d", err_code)
    }
    printf("Hello World! %s\n", CONFIG_BOARD_TARGET);
}
復(fù)制代碼
5、我們來編譯并下載程序到nRF54L15DK中會看到程序進(jìn)入了bluetooth_init 并在串口打印了LOG:


三、使能協(xié)議棧

1、接下來,我們需要加入BLE相關(guān)的頭文件

//Add BLE Library file
#include <zephyr/bluetooth/bluetooth.h>
#include <zephyr/bluetooth/uuid.h>
#include <zephyr/bluetooth/gatt.h>
#include <zephyr/bluetooth/hci.h>
2、prj.conf中加入這些宏,開啟BLE相關(guān)的宏

復(fù)制代碼
#Config BLE
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="BLE_Hello_World"
CONFIG_BT_DEVICE_APPEARANCE=0
CONFIG_BT_LL_SOFTDEVICE=y
CONFIG_BT_MAX_CONN=1

CONFIG_ASSERT=y
復(fù)制代碼
3、在 bluetooth_init中調(diào)用bt_enable,這是一個庫函數(shù),這個函數(shù)的定義的bluetooth.h中,因?yàn)閎t_enable只負(fù)責(zé)調(diào)度BLE協(xié)議棧的啟動,而在執(zhí)行其他函數(shù)之前需要確保協(xié)議棧完成了啟動,所以我們要做一個簡單判斷

復(fù)制代碼
int bluetooth_init(void)
{
    int err_code;

    err_code = bt_enable(bt_ready_callback);
    if(err_code)
    {
        LOG_ERR("BLE Enable returned %d",err_code);
     return err_code;
    }

    LOG_INF("Initiallzing BLE");
    return err_code;
}
復(fù)制代碼
3、我們?nèi)タ匆幌逻@個函數(shù)的用法,這里看到bt_enable需要一個回調(diào)函數(shù)

復(fù)制代碼
/**
 * @brief Enable Bluetooth
 *
 * Enable Bluetooth. Must be the called before any calls that
 * require communication with the local Bluetooth hardware.
 *
 * When @kconfig{CONFIG_BT_SETTINGS} is enabled, the application must load the
 * Bluetooth settings after this API call successfully completes before
 * Bluetooth APIs can be used. Loading the settings before calling this function
 * is insufficient. Bluetooth settings can be loaded with settings_load() or
 * settings_load_subtree() with argument "bt". The latter selectively loads only
 * Bluetooth settings and is recommended if settings_load() has been called
 * earlier.
 *
 * @param cb Callback to notify completion or NULL to perform the
 * enabling synchronously. The callback is called from the system workqueue.
 *
 * @return Zero on success or (negative) error code otherwise.
 */
int bt_enable(bt_ready_cb_t cb);
復(fù)制代碼
我們再去看bt_ready_cb_t這個參數(shù)的定義,從這個注釋中可以得知這個回調(diào)的作用是通知BLE已使能

復(fù)制代碼
/**
 * @typedef bt_ready_cb_t
 * @brief Callback for notifying that Bluetooth has been enabled.
 *
 * @param err zero on success or (negative) error code otherwise.
 */
typedef void (*bt_ready_cb_t)(int err);
復(fù)制代碼
所以為了確保BLE協(xié)議棧已經(jīng)完成了使能,我們需要自己寫一個回調(diào)函數(shù)

復(fù)制代碼
/*BLE Enable Callback function*/
void bt_ready_callback(int err_code)
{
    if(err_code)
    {
        LOG_ERR("BLE Enable callback returned %d",err_code);
    }
}
復(fù)制代碼
4、這里我們在bluetooth_init中添加一個信號量,等待bt_ready_cb_t通知協(xié)議棧已使能,這里我們調(diào)用K_SEM_DEFINE初始化一個信號量,并將其計數(shù)設(shè)為 1、界限設(shè)為 1,然后在bluetooth_init中調(diào)用k_sem_take()獲取這個信號量,因?yàn)槲覀儗⒂嫈?shù)設(shè)置為了1,所以程序會一直在bt_enable()這里等待協(xié)議棧使能完成,當(dāng)然可以將K_FOREVER設(shè)置為一個時間,超時之后程序會繼續(xù)往下執(zhí)行。

復(fù)制代碼
static K_SEM_DEFINE(ble_init_ok, 1, 1);

int bluetooth_init(void)
{
    int err_code;
   
   LOG_INF("Initiallzing BLE");

    err_code = bt_enable(bt_ready_callback);
    if(err_code)
    {
        LOG_ERR("BLE Enable returned %d",err_code);
     return err_code;
    }
  k_sem_take(&ble_init_ok, K_FOREVER);  return err_code;
}
復(fù)制代碼
因?yàn)檫@里我們要確保BLE協(xié)議棧使能完成,所以我們可以在bt_ready_callback()中釋放這個信號量,這樣我們可以通過信號量的同步得知BLE協(xié)議棧已經(jīng)被使能。

復(fù)制代碼
/*BLE Enable Callback function*/
void bt_ready_callback(int err_code)
{
    if(err_code)
    {
        LOG_ERR("BLE Enable callback returned %d",err_code);
    }
  k_sem_give(&ble_init_ok);
}
復(fù)制代碼
5、最后我們編譯看一下有什么效果,這里可以看到BLE協(xié)議棧已經(jīng)被使能,并打印了版本信息等LOG


 四、開啟廣播

使能BLE協(xié)議棧之后,我們接下來要做的就是開啟一個BLE廣播

1、我們來設(shè)置廣播包的內(nèi)容,我們可以在廣播包中加入UUID,這里我們可以寫一個宏來定義UUID的號碼

/** @brief UUID of the Hello World Service. **/
#define BT_UUID_HOWD_VAL \
    BT_UUID_128_ENCODE(0x6e400001, 0xb5a3, 0xf393, 0xe0a9, 0xe50e24dcca9e)
#define BT_UUID_HOWD_SERVICE   BT_UUID_DECLARE_128(BT_UUID_HOWD_VAL)
2、我們寫一個宏來設(shè)置廣播名稱,這個宏最終調(diào)用的是在prj.conf中CONFIG_BT_DEVICE_NAME的值,這里我的定義是CONFIG_BT_DEVICE_NAME="BLE_Hello_World"

/*Config BLE Device Name*/
#define DEVICE_NAME CONFIG_BT_DEVICE_NAME
#define DEVICE_NAME_LEN    (sizeof(DEVICE_NAME) - 1)
3、最后我們把上面的UUID和名稱放在廣播包數(shù)據(jù)中,這里我把UUID放在了Scan response里面

復(fù)制代碼
/*Config BLE Advertising Data*/
static const struct bt_data ad[] = {
    BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)),
    BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN),
};
/*Config BLE Scan repsponse Data*/
static const struct bt_data srd[] = {
    BT_DATA_BYTES(BT_DATA_UUID128_ALL, BT_UUID_HOWD_VAL),
};
復(fù)制代碼
4、完成廣播數(shù)據(jù)定義之后,我們就可以在bluetooth_init()中調(diào)用bt_le_adv_start()來開啟廣播了。

復(fù)制代碼
int bluetooth_init(void)
{
    int err_code;
    
    LOG_INF("Initiallzing BLE");

    bt_conn_cb_register();

    err_code = bt_enable(bt_ready_callback);
    if(err_code)
    {
        LOG_ERR("BLE Enable returned %d",err_code);
        return err_code;
    }
    k_sem_take(&ble_init_ok, K_FOREVER);

    err_code = bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad), srd,
                  ARRAY_SIZE(srd));
    if (err_code) {
        LOG_ERR("Advertising failed to start (err_code %d)", err_code);
        return 0;
    }

    return err_code;
}
復(fù)制代碼
這里我們可以去看一下bt_le_adv_start()這個函數(shù)的用法,這是一個庫函數(shù),可以在bluetooth.h中找到聲明,可以看到這個函數(shù)一共有5個入?yún)?,分別是

1)const struct bt_le_adv_param *param,是包括廣播周期、廣播類型等參數(shù)

2)const struct bt_data *ad, size_t ad_len,分別是廣播包數(shù)據(jù)和廣播包的長度

3)const struct bt_data *sd, size_t sd_len,分別是掃描響應(yīng)包數(shù)據(jù)和掃描響應(yīng)包的長度

/**
* @brief Start advertising
 *
 * Set advertisement data, scan response data, advertisement parameters
* and start advertising.
*
* When the advertisement parameter peer address has been set the advertising
 * will be directed to the peer. In this case advertisement data and scan
* response data parameters are ignored. If the mode is high duty cycle
10 * the timeout will be @ref BT_GAP_ADV_HIGH_DUTY_CYCLE_MAX_TIMEOUT.
11 *
12 * This function cannot be used with @ref BT_LE_ADV_OPT_EXT_ADV in the @p param.options.
13 * For extended advertising, the bt_le_ext_adv_* functions must be used.
14 *
15 * @param param Advertising parameters.
16  * @param ad Data to be used in advertisement packets.
17  * @param ad_len Number of elements in ad
18  * @param sd Data to be used in scan response packets.
19 * @param sd_len Number of elements in sd
20  *
21  * @return Zero on success or (negative) error code otherwise.
22 * @return -ENOMEM No free connection objects available for connectable
23  *                 advertiser.
24  * @return -ECONNREFUSED When connectable advertising is requested and there
25 *                       is already maximum number of connections established
26  *                       in the controller.
27  *                       This error code is only guaranteed when using Zephyr
28  *                       controller, for other controllers code returned in
29  *                       this case may be -EIO.
30  */
31 int bt_le_adv_start(const struct bt_le_adv_param *param,
32  const struct bt_data *ad, size_t ad_len,
33   const struct bt_data *sd, size_t sd_len);
在上面的代碼中,廣播參數(shù)也調(diào)用了一個現(xiàn)成的宏,這個宏在bluetooth.h中可以找到,在這個宏里面可以看到參數(shù)主義是定義了廣播類型為可連接廣播,快速廣播的最小周期和最大周期。此外廣播包中還定義了一下flag等,感興趣的讀者可以自行去看下面這幾個宏

BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)
#define BT_LE_ADV_CONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE, \
                       BT_GAP_ADV_FAST_INT_MIN_2, \
                       BT_GAP_ADV_FAST_INT_MAX_2, NULL)
復(fù)制代碼
#define BT_GAP_ADV_FAST_INT_MIN_2               0x00a0  /* 100 ms   */
#define BT_GAP_ADV_FAST_INT_MAX_2               0x00f0  /* 150 ms   */
    /**
     * @brief Advertise as connectable.
     *
     * Advertise as connectable. If not connectable then the type of
     * advertising is determined by providing scan response data.
     * The advertiser address is determined by the type of advertising
     * and/or enabling privacy @kconfig{CONFIG_BT_PRIVACY}.
     */
    BT_LE_ADV_OPT_CONNECTABLE = BIT(0),
復(fù)制代碼
此外bluetooth.h中除了BT_LE_ADV_CONN BT_LE_ADV_PARAM之外,還有其他好多個廣播參數(shù),感興趣的讀者可以去看看其他的宏分別定義了一些什么。

5、最后我們編譯工程來看一下有什么效果,我們可以使用nRF Connect app去查看一下廣播數(shù)據(jù)



 6、練習(xí):如果你熟悉nRF5 SDK,你會發(fā)現(xiàn)在NCS上定義個廣播參數(shù)和廣播數(shù)據(jù)會比nRF5 SDK上要簡單,不需要去寫參數(shù)眾多的指針變量,甚至可以直接用現(xiàn)成定義好的宏,許多參數(shù)甚至可以直接在prj.conf中定義即可,這大大減少了代碼開發(fā)的工作量。這里感興趣的讀者可以去自行修改Appearance,這個參數(shù)可以通過下面這個宏來定義,修改這個宏的值然后在nRF Connect app的廣播設(shè)備的圖標(biāo)會出現(xiàn)變化,SIG定義了一些標(biāo)準(zhǔn)具體的值,例如心率設(shè)備、HID設(shè)備等,具體去SIG這個網(wǎng)站查詢:https://www.bluetooth.com/specifications/assigned-numbers

CONFIG_BT_DEVICE_APPEARANCE=0
 
五、BLE的連接回調(diào)

在nRF5 SDK中BLE初始化的時候會注冊一個回調(diào)函數(shù)ble_evt_handler來處理BLE連接、斷開連接、更新PHY、Timeout等時候的中斷事件

復(fù)制代碼
/*nRF5 SDK中的BLE中斷事件*/
/**@brief Function for handling BLE events.
 *
 * @param[in]   p_ble_evt   Bluetooth stack event.
 * @param[in]   p_context   Unused.
 */
static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
{
    uint32_t err_code;

    switch (p_ble_evt->header.evt_id)
    {
        case BLE_GAP_EVT_CONNECTED:
            NRF_LOG_INFO("Connected");
            err_code = bsp_indication_set(BSP_INDICATE_CONNECTED);
            APP_ERROR_CHECK(err_code);
            m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
            err_code = nrf_ble_qwr_conn_handle_assign(&m_qwr, m_conn_handle);
            APP_ERROR_CHECK(err_code);
            break;

        case BLE_GAP_EVT_DISCONNECTED:
            NRF_LOG_INFO("Disconnected");
            // LED indication will be changed when advertising starts.
            m_conn_handle = BLE_CONN_HANDLE_INVALID;
            break;

        case BLE_GAP_EVT_PHY_UPDATE_REQUEST:
        {
            NRF_LOG_DEBUG("PHY update request.");
            ble_gap_phys_t const phys =
            {
                .rx_phys = BLE_GAP_PHY_AUTO,
                .tx_phys = BLE_GAP_PHY_AUTO,
            };
            err_code = sd_ble_gap_phy_update(p_ble_evt->evt.gap_evt.conn_handle, &phys);
            APP_ERROR_CHECK(err_code);
        } break;

        case BLE_GAP_EVT_SEC_PARAMS_REQUEST:
            // Pairing not supported
            err_code = sd_ble_gap_sec_params_reply(m_conn_handle, BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP, NULL, NULL);
            APP_ERROR_CHECK(err_code);
            break;

        case BLE_GATTS_EVT_SYS_ATTR_MISSING:
            // No system attributes have been stored.
            err_code = sd_ble_gatts_sys_attr_set(m_conn_handle, NULL, 0, 0);
            APP_ERROR_CHECK(err_code);
            break;

        case BLE_GATTC_EVT_TIMEOUT:
            // Disconnect on GATT Client timeout event.
            err_code = sd_ble_gap_disconnect(p_ble_evt->evt.gattc_evt.conn_handle,
                                             BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
            APP_ERROR_CHECK(err_code);
            break;

        case BLE_GATTS_EVT_TIMEOUT:
            // Disconnect on GATT Server timeout event.
            err_code = sd_ble_gap_disconnect(p_ble_evt->evt.gatts_evt.conn_handle,
                                             BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
            APP_ERROR_CHECK(err_code);
            break;

        default:
            // No implementation needed.
            break;
    }
}
復(fù)制代碼
在NCS中,我們也可以這樣來做,這個章節(jié)我們將演示如何在連接和斷開連接的時候,打印LOG和點(diǎn)亮\熄滅DK的LED1。

 1、首先我們在bluetooth_init()加入一個回調(diào)注冊函數(shù)bt_conn_cb_register(),這個函數(shù)在conn.h,我們來看一下這個函數(shù)的聲明,可以看到這個函數(shù)的主要作用就是注冊一個callback用來在連接狀態(tài)下監(jiān)控相關(guān)事件。

復(fù)制代碼
/** @brief Register connection callbacks.
 *
 *  Register callbacks to monitor the state of connections.
 *
 *  @param cb Callback struct. Must point to memory that remains valid.
 *
 * @retval 0 Success.
 * @retval -EEXIST if @p cb was already registered.
 */
int bt_conn_cb_register(struct bt_conn_cb *cb);
復(fù)制代碼
從注釋中我們可以看到這個函數(shù)需要輸入 struct bt_conn_cb *cb 這個結(jié)構(gòu)體作為入?yún)?,這個結(jié)構(gòu)體的聲明也在conn.h中,我們?nèi)タ匆幌逻@個結(jié)構(gòu)體的注釋,可以看到這個結(jié)構(gòu)體中給出的相關(guān)BLE回調(diào)函數(shù)是和nRF5 SDK中給出的case是相似的,感興趣的讀者可以自行查看注釋來進(jìn)一步做對比。

復(fù)制代碼
/** @brief Connection callback structure.
 *
 *  This structure is used for tracking the state of a connection.
 *  It is registered with the help of the bt_conn_cb_register() API.
 *  It's permissible to register multiple instances of this @ref bt_conn_cb
 *  type, in case different modules of an application are interested in
 *  tracking the connection state. If a callback is not of interest for
 *  an instance, it may be set to NULL and will as a consequence not be
 *  used for that instance.
 */
struct bt_conn_cb {
    /** @brief A new connection has been established.
     *
     *  This callback notifies the application of a new connection.
     *  In case the err parameter is non-zero it means that the
     *  connection establishment failed.
     *
     *  @note If the connection was established from an advertising set then
     *        the advertising set cannot be restarted directly from this
     *        callback. Instead use the connected callback of the
     *        advertising set.
     *
     *  @param conn New connection object.
     *  @param err HCI error. Zero for success, non-zero otherwise.
     *
     *  @p err can mean either of the following:
     *  - @ref BT_HCI_ERR_UNKNOWN_CONN_ID Creating the connection started by
     *    @ref bt_conn_le_create was canceled either by the user through
     *    @ref bt_conn_disconnect or by the timeout in the host through
     *    @ref bt_conn_le_create_param timeout parameter, which defaults to
     *    @kconfig{CONFIG_BT_CREATE_CONN_TIMEOUT} seconds.
     *  - @p BT_HCI_ERR_ADV_TIMEOUT High duty cycle directed connectable
     *    advertiser started by @ref bt_le_adv_start failed to be connected
     *    within the timeout.
     */
    void (*connected)(struct bt_conn *conn, uint8_t err);

    /** @brief A connection has been disconnected.
     *
     *  This callback notifies the application that a connection
     *  has been disconnected.
     *
     *  When this callback is called the stack still has one reference to
     *  the connection object. If the application in this callback tries to
     *  start either a connectable advertiser or create a new connection
     *  this might fail because there are no free connection objects
     *  available.
     *  To avoid this issue it is recommended to either start connectable
     *  advertise or create a new connection using @ref k_work_submit or
     *  increase @kconfig{CONFIG_BT_MAX_CONN}.
     *
     *  @param conn Connection object.
     *  @param reason BT_HCI_ERR_* reason for the disconnection.
     */
    void (*disconnected)(struct bt_conn *conn, uint8_t reason);

    /** @brief A connection object has been returned to the pool.
     *
     * This callback notifies the application that it might be able to
     * allocate a connection object. No guarantee, first come, first serve.
     *
     * Use this to e.g. re-start connectable advertising or scanning.
     *
     * Treat this callback as an ISR, as it originates from
     * @ref bt_conn_unref which is used by the BT stack. Making
     * Bluetooth API calls in this context is error-prone and strongly
     * discouraged.
     */
    void (*recycled)(void);

    /** @brief LE connection parameter update request.
     *
     *  This callback notifies the application that a remote device
     *  is requesting to update the connection parameters. The
     *  application accepts the parameters by returning true, or
     *  rejects them by returning false. Before accepting, the
     *  application may also adjust the parameters to better suit
     *  its needs.
     *
     *  It is recommended for an application to have just one of these
     *  callbacks for simplicity. However, if an application registers
     *  multiple it needs to manage the potentially different
     *  requirements for each callback. Each callback gets the
     *  parameters as returned by previous callbacks, i.e. they are not
     *  necessarily the same ones as the remote originally sent.
     *
     *  If the application does not have this callback then the default
     *  is to accept the parameters.
     *
     *  @param conn Connection object.
     *  @param param Proposed connection parameters.
     *
     *  @return true to accept the parameters, or false to reject them.
     */
    bool (*le_param_req)(struct bt_conn *conn,
                 struct bt_le_conn_param *param);

    /** @brief The parameters for an LE connection have been updated.
     *
     *  This callback notifies the application that the connection
     *  parameters for an LE connection have been updated.
     *
     *  @param conn Connection object.
     *  @param interval Connection interval.
     *  @param latency Connection latency.
     *  @param timeout Connection supervision timeout.
     */
    void (*le_param_updated)(struct bt_conn *conn, uint16_t interval,
                 uint16_t latency, uint16_t timeout);
#if defined(CONFIG_BT_SMP)
    /** @brief Remote Identity Address has been resolved.
     *
     *  This callback notifies the application that a remote
     *  Identity Address has been resolved
     *
     *  @param conn Connection object.
     *  @param rpa Resolvable Private Address.
     *  @param identity Identity Address.
     */
    void (*identity_resolved)(struct bt_conn *conn,
                  const bt_addr_le_t *rpa,
                  const bt_addr_le_t *identity);
#endif /* CONFIG_BT_SMP */
#if defined(CONFIG_BT_SMP) || defined(CONFIG_BT_CLASSIC)
    /** @brief The security level of a connection has changed.
     *
     *  This callback notifies the application that the security of a
     *  connection has changed.
     *
     *  The security level of the connection can either have been increased
     *  or remain unchanged. An increased security level means that the
     *  pairing procedure has been performed or the bond information from
     *  a previous connection has been applied. If the security level
     *  remains unchanged this means that the encryption key has been
     *  refreshed for the connection.
     *
     *  @param conn Connection object.
     *  @param level New security level of the connection.
     *  @param err Security error. Zero for success, non-zero otherwise.
     */
    void (*security_changed)(struct bt_conn *conn, bt_security_t level,
                 enum bt_security_err err);
#endif /* defined(CONFIG_BT_SMP) || defined(CONFIG_BT_CLASSIC) */

#if defined(CONFIG_BT_REMOTE_INFO)
    /** @brief Remote information procedures has completed.
     *
     *  This callback notifies the application that the remote information
     *  has been retrieved from the remote peer.
     *
     *  @param conn Connection object.
     *  @param remote_info Connection information of remote device.
     */
    void (*remote_info_available)(struct bt_conn *conn,
                      struct bt_conn_remote_info *remote_info);
#endif /* defined(CONFIG_BT_REMOTE_INFO) */

#if defined(CONFIG_BT_USER_PHY_UPDATE)
    /** @brief The PHY of the connection has changed.
     *
     *  This callback notifies the application that the PHY of the
     *  connection has changed.
     *
     *  @param conn Connection object.
     *  @param info Connection LE PHY information.
     */
    void (*le_phy_updated)(struct bt_conn *conn,
                   struct bt_conn_le_phy_info *param);
#endif /* defined(CONFIG_BT_USER_PHY_UPDATE) */

#if defined(CONFIG_BT_USER_DATA_LEN_UPDATE)
    /** @brief The data length parameters of the connection has changed.
     *
     *  This callback notifies the application that the maximum Link Layer
     *  payload length or transmission time has changed.
     *
     *  @param conn Connection object.
     *  @param info Connection data length information.
     */
    void (*le_data_len_updated)(struct bt_conn *conn,
                    struct bt_conn_le_data_len_info *info);
#endif /* defined(CONFIG_BT_USER_DATA_LEN_UPDATE) */

#if defined(CONFIG_BT_DF_CONNECTION_CTE_RX)
    /** @brief Callback for IQ samples report collected when sampling
     *        CTE received by data channel PDU.
     *
     * @param conn      The connection object.
     * @param iq_report Report data for collected IQ samples.
     */
    void (*cte_report_cb)(struct bt_conn *conn,
                  const struct bt_df_conn_iq_samples_report *iq_report);
#endif /* CONFIG_BT_DF_CONNECTION_CTE_RX */

#if defined(CONFIG_BT_TRANSMIT_POWER_CONTROL)
    /** @brief LE Read Remote Transmit Power Level procedure has completed or LE
     *  Transmit Power Reporting event.
     *
     *  This callback notifies the application that either the remote transmit power level
     *  has been read from the peer or transmit power level has changed for the local or
     *  remote controller when transmit power reporting is enabled for the respective side
     *  using @ref bt_conn_le_set_tx_power_report_enable.
     *
     *  @param conn Connection object.
     *  @param report Transmit power report.
     */
    void (*tx_power_report)(struct bt_conn *conn,
                const struct bt_conn_le_tx_power_report *report);
#endif /* CONFIG_BT_TRANSMIT_POWER_CONTROL */

#if defined(CONFIG_BT_PATH_LOSS_MONITORING)
    /** @brief LE Path Loss Threshold event.
     *
     *  This callback notifies the application that there has been a path loss threshold
     *  crossing or reporting the initial path loss threshold zone after using
     *  @ref bt_conn_le_set_path_loss_mon_enable.
     *
     *  @param conn Connection object.
     *  @param report Path loss threshold report.
     */
    void (*path_loss_threshold_report)(struct bt_conn *conn,
                const struct bt_conn_le_path_loss_threshold_report *report);
#endif /* CONFIG_BT_PATH_LOSS_MONITORING */

#if defined(CONFIG_BT_SUBRATING)
    /** @brief LE Subrate Changed event.
     *
     *  This callback notifies the application that the subrating parameters
     *  of the connection may have changed.
     *  The connection subrating parameters will be unchanged
     *  if status is not BT_HCI_ERR_SUCCESS.
     *
     *  @param conn   Connection object.
     *  @param params New subrating parameters.
     */
    void (*subrate_changed)(struct bt_conn *conn,
                const struct bt_conn_le_subrate_changed *params);
#endif /* CONFIG_BT_SUBRATING */

#if defined(CONFIG_BT_CHANNEL_SOUNDING)
    /** @brief LE CS Read Remote Supported Capabilities Complete event.
     *
     *  This callback notifies the application that the remote channel
     *  sounding capabilities have been received from the peer.
     *
     *  @param conn Connection object.
     *  @param remote_cs_capabilities Remote Channel Sounding Capabilities.
     */
    void (*le_cs_remote_capabilities_available)(struct bt_conn *conn,
                            struct bt_conn_le_cs_capabilities *params);

    /** @brief LE CS Read Remote FAE Table Complete event.
     *
     *  This callback notifies the application that the remote mode-0
     *  FAE Table has been received from the peer.
     *
     *  @param conn Connection object.
     *  @param params FAE Table.
     */
    void (*le_cs_remote_fae_table_available)(struct bt_conn *conn,
                         struct bt_conn_le_cs_fae_table *params);

    /** @brief LE CS Config created.
     *
     *  This callback notifies the application that a Channel Sounding
     *  Configuration procedure has completed and a new CS config is created
     *
     *  @param conn Connection object.
     *  @param config CS configuration.
     */
    void (*le_cs_config_created)(struct bt_conn *conn, struct bt_conn_le_cs_config *config);

    /** @brief LE CS Config removed.
     *
     *  This callback notifies the application that a Channel Sounding
     *  Configuration procedure has completed and a CS config is removed
     *
     *  @param conn Connection object.
     *  @param config_id ID of the CS configuration that was removed.
     */
    void (*le_cs_config_removed)(struct bt_conn *conn, uint8_t config_id);

    /** @brief Subevent Results from a CS procedure are available.
     *
     * This callback notifies the user that CS subevent results are
     * available for the given connection object.
     *
     * @param conn Connection objects.
     * @param result Subevent results
     */
    void (*le_cs_subevent_data_available)(struct bt_conn *conn,
                          struct bt_conn_le_cs_subevent_result *result);

    /** @brief LE CS Security Enabled.
     *
     *  This callback notifies the application that a Channel Sounding
     *  Security Enable procedure has completed
     *
     *  @param conn Connection object.
     */
    void (*le_cs_security_enabled)(struct bt_conn *conn);

    /** @brief LE CS Procedure Enabled.
     *
     *  This callback notifies the application that a Channel Sounding
     *  Procedure Enable procedure has completed
     *
     *  @param conn Connection object.
     *  @param params CS Procedure Enable parameters
     */
    void (*le_cs_procedure_enabled)(
        struct bt_conn *conn, struct bt_conn_le_cs_procedure_enable_complete *params);

#endif

    /** @internal Internally used field for list handling */
    sys_snode_t _node;
};
復(fù)制代碼
2、這里我們還是來演示如何使用CONNECT和DISCONNECT這兩個回調(diào)來在BLE斷開和連接的時候處理相關(guān)任務(wù)。首先我們來寫一個結(jié)構(gòu)體ble_connection_callback ,這個結(jié)構(gòu)體里面包括兩個函數(shù)ble_on_connected和ble_on_connected

struct bt_conn_cb ble_connection_callback = {
    .connected    = ble_on_connected,
    .disconnected = ble_on_disconnected,
};
這里我們需要調(diào)用bt_conn_get_dst這個函數(shù)來獲取對端設(shè)備的MAC地址,并調(diào)用bt_addr_le_to_str將獲取到的地址轉(zhuǎn)成字符串用于打印。

復(fù)制代碼
/** @brief Get destination (peer) address of a connection.
 *
 *  @param conn Connection object.
 *
 *  @return Destination address.
 */
const bt_addr_le_t *bt_conn_get_dst(const struct bt_conn *conn);

/** @brief Converts binary LE Bluetooth address to string.
 *
 *  @param addr Address of buffer containing binary LE Bluetooth address.
 *  @param str Address of user buffer with enough room to store
 *  formatted string containing binary LE address.
 *  @param len Length of data to be copied to user string buffer. Refer to
 *  BT_ADDR_LE_STR_LEN about recommended value.
 *
 *  @return Number of successfully formatted bytes from binary address.
 */
static inline int bt_addr_le_to_str(const bt_addr_le_t *addr, char *str,
                    size_t len)
復(fù)制代碼
在連接和斷開異常的時候我們還可以調(diào)用bt_hci_err_to_str來獲取相關(guān)的錯誤代碼。

復(fù)制代碼
/** Converts a HCI error to string.
 *
 * The error codes are described in the Bluetooth Core specification,
 * Vol 1, Part F, Section 2.
 *
 * The HCI documentation found in Vol 4, Part E,
 * describes when the different error codes are used.
 *
 * See also the defined BT_HCI_ERR_* macros.
 *
 * @return The string representation of the HCI error code.
 *         If @kconfig{CONFIG_BT_HCI_ERR_TO_STR} is not enabled,
 *         this just returns the empty string
 */
#if defined(CONFIG_BT_HCI_ERR_TO_STR)
const char *bt_hci_err_to_str(uint8_t hci_err);
#else
static inline const char *bt_hci_err_to_str(uint8_t hci_err)
復(fù)制代碼
最后調(diào)用dk_set_led_on和dk_set_led_off來點(diǎn)亮和熄滅nRF54L15 DK的LED1。

3、接下來我們來寫ble_on_connected和ble_on_connected這兩個回調(diào)函數(shù)

復(fù)制代碼
static void ble_on_connected(struct bt_conn *conn, uint8_t err)
{
    char addr[BT_ADDR_LE_STR_LEN];
  /*Print err code when the connection is error*/
    if (err) {
        LOG_ERR("Connection failed, err 0x%02x %s", err, bt_hci_err_to_str(err));
        return;
    }
  
  /*Print the MAC address of Central Deevice*/
    bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
    LOG_INF("Connected %s", addr);
  
  /*Count the coennection*/  
    current_conn = bt_conn_ref(conn);

    dk_set_led_on(DK_LED1)
);
}
復(fù)制代碼
復(fù)制代碼
static void ble_on_disconnected(struct bt_conn *conn, uint8_t reason)
{
    char addr[BT_ADDR_LE_STR_LEN];

    /*Get the MAC address of central and print it when the connection is disconnected*/
    bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
    LOG_INF("Disconnected: %s, reason 0x%02x %s", addr, reason, bt_hci_err_to_str(reason));
    
    /*Decrement a connection's reference count and off LED1 of DK*/
    if (current_conn) {
        bt_conn_unref(current_conn);
        current_conn = NULL;
        dk_set_led_off(DK_LED1);
    }
}
復(fù)制代碼
這里我們引入了一個全局變量current_conn用于計數(shù)已連接的設(shè)備數(shù)量,所以需要做一個聲明

static struct bt_conn *current_conn;
此外我們調(diào)用了LED1這個外設(shè)用來指示BLE的連接情況,所以我們還需要在main中初始化LED1這個外設(shè),這里我們需要加入一些頭文件并在prj.conf中使能相關(guān)的宏,最后在main中調(diào)用configure_gpio。

//Add LED and Button drivers Library file
#include <dk_buttons_and_leds.h>
# Enable DK LED and Buttons library
CONFIG_DK_LIBRARY=y
CONFIG_GPIO=y
復(fù)制代碼
static void configure_gpio(void)
{
    int err_code;

    err_code = dk_leds_init();
    if (err_code) {
        LOG_ERR("Cannot init LEDs (err: %d)", err_code);
    }
}
復(fù)制代碼
4、完成上述步驟之后,我們將ble_connection_callback這個函數(shù)注冊到bluetooth_init中

復(fù)制代碼
int bluetooth_init(struct bt_conn_cb *ble_cb)
{
    int err_code;
    
    LOG_INF("Initiallzing BLE");
    if (ble_cb == NULL)
    {
        return -NRFX_ERROR_NULL;
    }
    bt_conn_cb_register(ble_cb);

    err_code = bt_enable(bt_ready_callback);
    if(err_code)
    {
        LOG_ERR("BLE Enable returned %d",err_code);
        return err_code;
    }
    k_sem_take(&ble_init_ok, K_FOREVER);

    err_code = bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad), srd,
                  ARRAY_SIZE(srd));
    if (err_code) {
        LOG_ERR("Advertising failed to start (err_code %d)", err_code);
        return 0;
    }

    return err_code;
}
復(fù)制代碼
復(fù)制代碼
int main(void)
{
    int err_code;

    configure_gpio();

    err_code = bluetooth_init(&ble_connection_callback);
    if(err_code)
    {
        LOG_ERR("Bluetooth_init returnrd %d", err_code);
    }
    printf("Hello World! %s\n", CONFIG_BOARD_TARGET);
}
復(fù)制代碼
5、最后我們編譯下載工程到nRF54L15的DK中,使用nRF Connect APP連接可以看到連接和斷開之后分別打印了手機(jī)端的MAC地址


 同時DK的LED1在連接之后常亮


六、添加一個Service

1、從上面的圖片中可以看到,APP連接nRF54L15 DK之后只有一些通用的Service,這一步我們來演示如何添加一個自定義的Service,在nRF5 SDK中我們需要在service_init中初始化給相關(guān)的指針寫入值,但在NCS中我們可以直接調(diào)用BT_GATT_SERVICE_DEFINE來實(shí)現(xiàn)

復(fù)制代碼
/**
 *  @brief Statically define and register a service.
 *
 *  Helper macro to statically define and register a service.
 *
 *  @param _name Service name.
 */
#define BT_GATT_SERVICE_DEFINE(_name, ...)                \
    const struct bt_gatt_attr attr_##_name[] = { __VA_ARGS__ };    \
    const STRUCT_SECTION_ITERABLE(bt_gatt_service_static, _name) =    \
                    BT_GATT_SERVICE(attr_##_name)

#define _BT_GATT_ATTRS_ARRAY_DEFINE(n, _instances, _attrs_def)    \
    static struct bt_gatt_attr attrs_##n[] = _attrs_def(_instances[n])

#define _BT_GATT_SERVICE_ARRAY_ITEM(_n, _) BT_GATT_SERVICE(attrs_##_n)
復(fù)制代碼
2、這里我直接用了NUS服務(wù)的UUID,當(dāng)然你可以自己定義一個UUID看一下有什么效果

復(fù)制代碼
/** @brief UUID of the NUS Service. **/
#define BT_UUID_HOWD_VAL \
    BT_UUID_128_ENCODE(0x6e400001, 0xb5a3, 0xf393, 0xe0a9, 0xe50e24dcca9e)
#define BT_UUID_HOWD_SERVICE   BT_UUID_DECLARE_128(BT_UUID_HOWD_VAL)

#define SERVICE_NAME nus_svc
BT_GATT_SERVICE_DEFINE(SERVICE_NAME, 
                       BT_GATT_PRIMARY_SERVICE(BT_UUID_HOWD_SERVICE)
                       );
復(fù)制代碼
3、最后編譯一下工程下載的nRF54L15DK,并使用nRF Connect APP連接中可以看到多了一個NUS服務(wù)。


七、添加特征值并定義其屬性

1、完成上述步驟之后,BLE多了一個Service,但是這個Service中沒有Characteristic(特征值),這里我們還可以在BT_GATT_SERVICE_DEFINE中調(diào)用BT_GATT_CHARACTERISTIC,將特征值放在Service下面,這個結(jié)構(gòu)就像APP上Service下面有特征值那樣,非常直觀。這里我們?nèi)タ匆幌翨T_GATT_CHARACTERISTIC,會發(fā)現(xiàn)它一共有6個入?yún)?/div>

1)_uuid是特征值的UUID

2)_props是特征值的屬性,比如:read,write,Notify,indicate等

3)_perm是屬性的訪問權(quán)限,比如:普通、加密、配對等

4)_read、_write是分別是讀取和寫入的回調(diào)函數(shù)

5)_user_data是留給用戶自定義的一些數(shù)據(jù),一般不用

復(fù)制代碼
/**
 *  @brief Characteristic and Value Declaration Macro.
 *
 *  Helper macro to declare a characteristic attribute along with its
 *  attribute value.
 *
 *  @param _uuid Characteristic attribute uuid.
 *  @param _props Characteristic attribute properties,
 *                a bitmap of ``BT_GATT_CHRC_*`` macros.
 *  @param _perm Characteristic Attribute access permissions,
 *               a bitmap of @ref bt_gatt_perm values.
 *  @param _read Characteristic Attribute read callback
 *               (@ref bt_gatt_attr_read_func_t).
 *  @param _write Characteristic Attribute write callback
 *                (@ref bt_gatt_attr_write_func_t).
 *  @param _user_data Characteristic Attribute user data.
 */
#define BT_GATT_CHARACTERISTIC(_uuid, _props, _perm, _read, _write, _user_data) \
    BT_GATT_ATTRIBUTE(BT_UUID_GATT_CHRC, BT_GATT_PERM_READ,                 \
              bt_gatt_attr_read_chrc, NULL,                         \
              ((struct bt_gatt_chrc[]) {                            \
                BT_GATT_CHRC_INIT(_uuid, 0U, _props),           \
                           })),                         \
    BT_GATT_ATTRIBUTE(_uuid, _perm, _read, _write, _user_data)
復(fù)制代碼
2、這里因?yàn)槲覀冞@個特征值的屬性是Read,所以我們需要在寫一個回調(diào),在里面將Button的鍵值通過GATT接口發(fā)送出去,這需要用到一個庫函數(shù)bt_gatt_attr_read,這個函數(shù)的聲明在gatt.h中,可以看到這個函數(shù)的作用是將本地數(shù)據(jù)通過Read屬性上傳

復(fù)制代碼
/** @brief Generic Read Attribute value helper.
 *
 *  Read attribute value from local database storing the result into buffer.
 *
 *  @param conn Connection object.
 *  @param attr Attribute to read.
 *  @param buf Buffer to store the value.
 *  @param buf_len Buffer length.
 *  @param offset Start offset.
 *  @param value Attribute value.
 *  @param value_len Length of the attribute value.
 *
 *  @return number of bytes read in case of success or negative values in
 *          case of error.
 */
ssize_t bt_gatt_attr_read(struct bt_conn *conn, const struct bt_gatt_attr *attr,
              void *buf, uint16_t buf_len, uint16_t offset,
              const void *value, uint16_t value_len);
復(fù)制代碼
3、我們來嘗試加一個Read屬性的特征值,讀取按鍵DK上按下的Button的鍵值,從BT_GATT_CHARACTERISTIC的注釋中可以看到,要使用這個宏需要寫一個回調(diào)函數(shù),首先來聲明以下這個回調(diào)函數(shù),并將bt_gatt_attr_read的入?yún)⒆鳛榛卣{(diào)函數(shù)的入?yún)?/div>

ssize_t read_button_characteristic_cb(struct bt_conn *conn, const struct bt_gatt_attr *attr,
                                   void *buf, uint16_t len, uint16_t offset);
這個函數(shù)的實(shí)際功能是在Read這個特征值的時候,將鍵值上傳給GATT,所以我們來定義一個全局變量來獲取button的鍵值

static uint8_t button_value = 0;
然后將button_value通過bt_gatt_attr_read上傳給GATT

復(fù)制代碼
ssize_t read_button_characteristic_cb(struct bt_conn *conn, const struct bt_gatt_attr *attr,
        void *buf, uint16_t len, uint16_t offset)
{
    return bt_gatt_attr_read(conn, attr, buf, len, offset, &button_value, sizeof(button_value));

}
復(fù)制代碼
4、將這個回調(diào)放入BT_GATT_CHARACTERISTIC中,并寫入這個Read特征值的屬性等相關(guān)配置。

這里的特征值的UUID我用了NUS服務(wù)TX的特征值;

BT_GATT_CHRC_READ表示特征值的屬性是Read

BT_GATT_PERM_READ表示特征值的訪問權(quán)限為普通讀取

讀取的回調(diào)使用我們寫好的read_button_characteristic_cb這個函數(shù)

因?yàn)檫@個特征值只是Read屬性,所以不需要Write的回調(diào),也不需要用戶自定義數(shù)據(jù),所以最后兩個入?yún)⑻顚憺镹ULL

復(fù)制代碼
#define BT_UUID_NUS_TX_VAL \
    BT_UUID_128_ENCODE(0x6e400003, 0xb5a3, 0xf393, 0xe0a9, 0xe50e24dcca9e)
#define BT_UUID_NUS_TX        BT_UUID_DECLARE_128(BT_UUID_NUS_TX_VAL)

BT_GATT_SERVICE_DEFINE(SERVICE_NAME, 
BT_GATT_PRIMARY_SERVICE(BT_UUID_NUS_SERVICE),
    BT_GATT_CHARACTERISTIC(BT_UUID_NUS_TX,
            BT_GATT_CHRC_READ,
            BT_GATT_PERM_READ,
            read_button_characteristic_cb, NULL, NULL),
);
復(fù)制代碼
GATT的屬性和權(quán)限除了上述兩個參數(shù)之外,還有其他類型,感興趣的讀者具體可以去gatt.h中查看相關(guān)注釋說明。

5、至此我們已經(jīng)完成了BLE數(shù)據(jù)上傳部分的代碼編寫,接下來我們來讀取Button的鍵值,并將這個值給到全局變量button_value即可。這里我們寫一個函數(shù)來傳遞button的鍵值

void set_button_value(uint8_t btn_value)
{
  button_value = btn_value;
}
我們還需要通過GPIO外設(shè)來讀取鍵值,和點(diǎn)亮LED一樣,需要先將DK的Button初始化,這里要調(diào)用dk_buttons_init來完成,它是一個庫函數(shù),函數(shù)聲明在dk_buttons_and_leds.h中。

復(fù)制代碼
/** @brief Initialize the library to read the button state.
 *
 *  @param  button_handler Callback handler for button state changes.
 *
 *  @retval 0           If the operation was successful.
 *                      Otherwise, a (negative) error code is returned.
 */
int dk_buttons_init(button_handler_t button_handler);

/**
 * @typedef button_handler_t
 * @brief Callback that is executed when a button state change is detected.
 *
 * @param button_state Bitmask of button states.
 * @param has_changed Bitmask that shows which buttons have changed.
 */
typedef void (*button_handler_t)(uint32_t button_state, uint32_t has_changed);
復(fù)制代碼
從注釋可以看到這個函數(shù)需要一個button的回調(diào)函數(shù),用于處理button時候的中斷。我們來寫這個回調(diào),在里面處理不同按鍵按下之后,定義不同的鍵值,并通過LOG打印鍵值,最后調(diào)用set_button_value將鍵值傳遞給全局變量button_value。

復(fù)制代碼
void button_handler(uint32_t button_state, uint32_t has_changed)
{
    int button_pressed = 0;

    if (has_changed & button_state) {
        if (DK_BTN1_MSK & has_changed) {
            button_pressed = 1;
        }

        if (DK_BTN2_MSK & has_changed) {
            button_pressed = 2;
        }

        if (DK_BTN3_MSK & has_changed) {
            button_pressed = 3;
        }

        if (DK_BTN4_MSK & has_changed) {
            button_pressed = 4;
        }
        LOG_INF("Button %d pressed", button_pressed);
        set_button_value(button_pressed);
    }
}
復(fù)制代碼
最后在GPIO初始化里面調(diào)用dk_buttons_init并寫入回調(diào)函數(shù)button_handler即可。

復(fù)制代碼
static void configure_gpio(void)
{
    int err_code;

    err_code = dk_buttons_init(button_handler);
    if (err_code) {
        LOG_ERR("Cannot init buttons (err: %d)", err_code);
    }

    err_code = dk_leds_init();
    if (err_code) {
        LOG_ERR("Cannot init LEDs (err: %d)", err_code);
    }
}
復(fù)制代碼
6、最后編譯工程,并使用nRF Connect APP連接nRF54L15DK的廣播,可以看到NUS Service下多了一個Read屬性,當(dāng)我們按下DK上的Button的時候,可以讀取到對應(yīng)的鍵值。




 持續(xù)未完........
久久偷拍视频大全| 亚州一极生活片| 日韩手机在线欧美| 人与人恔配视频免费看| 亚洲AV无码专区久久性色| 国外午夜视频网址| 激情内射人妻1区2区3区| 色综合福利视频一区二区三区| 丁香五月天中文字幕| 久久亚洲色WWW成人不卡天美| 日韩国产成人精品视频人| 久久精品国产欧美高潮| 国产真实迷j在线观看网站 | 一级AA大片免费| 精品国产无码一区| 国产欧美日韩资源在线观看| 小草在线久草视频免费播放| 欧美一区二区三区成人片在线| 亚洲欧美日韩在线网| 国产裸体美女视频| 男男做a爱过程免费视频| 视频一区二区无码制服师生| 国产欧美中文字幕日韩| 无码专区人妻视频在线| 中文字幕你懂的| 欧美日韩国产性行为在线观看| 国产欧美日本亚洲精品一5区| 欧美极品少妇×xxxbbb| 99vv1在线看国产| 免费日本成人黄色| 无码国模国产在线无码精品| 综合青草青草久热精品视频| 免费高清V片在线观看| 国产精品第一综合首页| 亚洲av乱码久久免费 | 国产美女嫩模午夜福利| 91精品成人综合| 停停五月激情网络| 日本一本a不卡高清| 中文有码在线播放| 亚洲一区二区三区国产精品无码| 伊人成综合网一级视频在线观看 | 糖心logo官网在线| 精品久久久久久久久久久下载| 久久国产午夜精品一区二区三区 | 国产a不卡片精品免费观看| 最近中文字幕2024免费看| 99亚洲一区二区三区在线观看| 日韩啪啪国产欧美| 久久超碰亚洲综合| 亚洲精品天堂成人片A∨在线播放| 青青自拍视频| 亚洲 欧美 制服 动漫| 久久精品高清视频一区二区| 精欧美一区二区国产三区| 日韩在线播放不卡网| 欧美成人精品不卡在线观看| 亚洲综合天堂久久| 成人漫画网羞羞免费漫画 | 天堂午夜成人福利在线| 香蕉视频成人在线观看| 色综合AV在线伊人网站在线观看| 男同无码岛国大片在线观看| 国产超清无码在线无删减| 尤物国产成人精品福利一区| 二攻一受4p嗯啊巨肉寝室| 亚洲老师人人香蕉AⅤ| 国产亚洲综合欧美一区二区| 国产自产不卡福利| 不卡日本免费A∨片免费| 青青草国产一区二区三区| 亚洲成人áv在线一区久久精品| 亚洲性爱无码视频| 最新69国产成人精品视频| 最新欧美在线| 亚洲欧美中文日韩在线V日本| 欧美国产日韩久久| 国内精品大屁股白浆一区二区| 日韩欧美精品免费综合久久| 久久久久久亚洲精品美女| 欧美高清黄片永久免费| 亚洲精品av一区二区三区四区| 国产日韩在线永久免费观看?v| 亚洲一区二区另类视频| 国产乱码精品一区二区跑去四川人 | 天天色婷婷色偷偷色网址| 婷婷丁香五月综合在线| 影音先锋另类精品中文字幕| 亚洲AV无码一区东京热久久妖精| 国产探花精品一区在线| 成人网站亚洲欧美| 亚洲综合日韩欧美| 国产69精品久久久久乱码韩国| 伊伊人成亚洲综合人网香| 一级黄片一级毛片一级黄片 | 亚洲最大的成人网站| 成人精品无码一二三区性色| 国产成人无码无卡在线| 强行挺进警花紧窄娇嫩小说| 最新亚洲人无码无线在线| 国产三a无码大片| 日本妞高清毛茸茸| 女人被狂c到高潮视频网站| 欧美日韩国产性行为在线观看| 国产香蕉日韩线精品视频| 深喉护士12p在线天堂8| 亚洲香蕉在线观看| 伊人思思久99久女女精品视频| 无码AV啪啪一区二区三区| www高潮无码免费看| 性爱国产亚洲AV禁18成人毛片一级在线 | 亚洲女教师丝祙在线播放| 国产一国产一级无码秋霞影院| 校园春色在线视频| 国产一级精品免费在线观看播放| 中文字幕视频三区| 精品少妇国语对白视频| 国产剧情一区在线| 亚洲波多野结衣一区二区三区| 三根撑到极致哭着求饶H| 日韩一级在线视频| 日韩欧美精品一区在线播放| 禁止18勿入国产精品视频| 一级不卡中文字幕精品片| 国产精品嫩草影院永久在| 免费精品无码毛片视频在线播放| 亚洲国产中文无码视频在线观看 | 国产欧美曰韩久久久 | 热亚洲热中文热日韩| 域名停靠app盘她射门下载免费 | 亚洲激情人妻| 天天操小姐夜夜操美女| 日韩成人av在线日韩美女一级 | 草莓视频ios在线| 人妻人人操综合网| 久热国产v视频在线观看| 性生大片免费观看网站精彩| 四川丰满少妇被弄到高潮| 私密按摩师在线观看| 亚洲av乱码久久免费 | 女人张开双腿被男人狂桶| 不卡日本免费A∨片免费| 国产r级激情在线观看| 亚洲一区二区三区高清在线视频 | av鲁丝片一区二区免费| 91香蕉短视频污下载| 国内少妇人妻精品视频| 亚洲最大日夜无码中文字幕| 国产伦精品一区二区高清版 | 特级特黄一级毛片免费| 亚洲春色AⅤ无码专区| 自拍偷拍欧美视频| 亚洲天堂视频在线观看视频| 日韩无码视频一区二区免费播放| 亚洲成人áv在线一区久久精品| 在线观看国产美女主播| 一级做受毛片免费大片| 天天视频免费观看高清完整| 亚洲gay免费网址| 一区二区日本网站| 國產精品久久久一區二區三區| 日韩AV天堂久久无码| 欧美一区亚洲自拍| 国产v大片淫在线免费观看| 亚洲综合色一区| 午夜日韩高清在线观看| 人人爽人人草| 夫の目の前犯中文字幕| 国产欧美日韩不卡一区二区| 国产一级爱做人c片| 日韩欧美~中文字幕| 国产一区二区高清视频在线观看| 国产一区二区三区在线精品专区| 亚洲一区二区AV人片在线观看| 国产黄色三级视频真人一级毛片| 2012精品视频在线观看免费毛片| 欧美日韩国产午夜激情| 亚洲欧美在线不卡| 国产免费观看avvvv| 亚洲一区午夜福利久久丁香| 亚洲免费久久精品| 欧美麻豆乱伦中文字幕| 久久亚洲色WWW成人不卡天美 | 亚洲最大日夜无码中文字幕| 蜜臀色V人妻精品一区二区三区| 久青青国产综合视频在线观看| 日韩精品亚洲专区在线观看| 欧美性爱在线视频播放| 欧美精品一区二区精品久久水多| 亚洲v欧美v日韩v| 中文字幕夫妇交换乱叫av| 国产精品少妇一区二区| 網友分享99久热国产精品视频尤物不卡心得 | 日韩高清在线播放不卡| 5a级动作片在线观看| 欧美十八禁柔术极品xx| 久久亚区不卡日本| 国内午夜免费鲁丝片| 草B网免费视频试看| 青草99精品欧美国产| 亚洲欧美国产高清久久| 亚洲AV无码一区二区久久观看| 国产黄色A一片免费看| 四虎影视永国产精品亚洲精品| 国产无乱码手机在线αv片| 91香焦国产欧美一区精品| 国产白丝袜美女久久久久久久| 最近精品免费中文字幕在线观看| 国产αV无码日韩αV无码网站 | 日韩精品亚洲专区在线观看| 夜色毛片永久免费| 欧美久久精品成人| 国产一区二区亚洲污在线观看| 日本高清在线观看| 99久久久久久国产精品婷婷综合| 亚洲精品十八禁在线| 日本三级中文字幕网站| 国产精品大屁股白浆久久| 蜜桃久久久亚洲精品| 好深啊好涨好硬叫床| 天美麻花星空和麻豆是什么关系| 国产 香蕉 av 在线| 最新av网站免费| 免费人成视频X8X8入口AA| 天天躁夜夜躁狠狠综合20| 狠狠狠色丁香婷婷綜合久久五月| 国产精品一区三区免费视频| 沈阳老熟女高潮喷水| 亚洲合法成人av网站| 好屌妞这里只有视频色中色| 日本一本一道av无码专区| 女人被狂c到高潮视频网站| 无码成人AAAA级婬片| 亚洲AV无码成h人动漫无遮网站| 亚洲av无码乱码在线观看性色扶| 黄片在线免费看最新的| 国产精品免费人成网站等最新內容| 刻晴ちゃんが部下を什么意思| 日本高清有码在线播放| 国产三级爽死你个荡货| 国产r级激情在线观看| 国产日韩欧美网站| 沈阳老熟女高潮喷水| 亚洲欧美日韩久久精品国产| 亚洲三级毛片女人18水好多| 亚洲精品成人456在线播放| 国产又色又爽又黄又刺激视频| 日本三级特黄三级| 黄色三级网站在线观看不卡| 欧美 一区二区 在线| 午夜福利波多野结衣| 亚洲一级毛片淫片| 交换配乱吟粗大SNS84O| 亚洲激情91大神在线观看| 亚洲一区二区三区久久久久久天堂 | 亚洲精品欧美精品| 欧美一区二区三区午夜| 成年人毛片在线观看| 欧美性猛少妇xxx| 97国产最新免费公开视频| 亚洲国产精品欧美日韩| 免费观看又色又爽又湿的软件| 免费国产高清在线中文字幕一区| 三观视频在线观看毛片| 人妻18毛片a级毛片免费看| 蜜桃久久久亚洲精品| 中文字幕第一页无码久久网| 大伊香蕉av最新播放东京热| 91热亚洲精品在线国产| 午夜福利+无码+自拍| 日本中文字幕风情手机永久| 国产成人av一区二区三区在线| 国产成人黄色小视频| 天天操美女天天干| 欧美熟妇色xxxx| 少妇极品少妇无码精品| 日本三级香港三级成人网| 99视频全部看免费观| 妖精视频成人精品日韩一区| 四虎国产精品永久在线播放| 老少配XXX性老少配| 国产超碰97精品免费| 三级视频黄色| 精品无码制服丝袜自拍APP欧美| 免費精品99久久國產綜合精品| 无码极品人妻| 亚洲熟女一区| 国内天码乱码一区二区| 人成高清毛片亚洲| 怡春院怡红院国产a∨| 91九色精品无码片一区二区三区| 蜜臀色欲av一区二区三区dd| 国产免费成人一区| 久久天天躁狠狠躁夜夜中文字幕| 青草久久国产99超碰| 国产成人不卡顿视频在线观看免费 | 久久国产这里只有精品| 日本AAA片爽快免费中国| 久久久精品一区二区三区四季?V| 男人强撕开奶罩揉吮奶头视频| 99热热这里只有精品| 国产91校花jk小仙女白丝| 欧美性大战xxxxx久久久| 国产怡红院在线观看福利| 亚洲一区二区另类视频| 乱人伦欧美在线| 精品精品国产自在久国产| 成在线人视频免费视频| 亚洲色大成网站www同| 激情五月婷婷无码电影| 精选国产一区二区三区| 亚洲欧美一级片在线观看| 日韩欧美一区二区熟女| 2021无码电影在线| 欧洲亚洲色一区二区色99| 欧美一级视频免费| 国产A级理论片免费网站| 成人有声小说有哪些| 三级视频网站在线观看| 久久午夜福利电影| 亚洲色大成网站WWW永久网站| 最新国产不卡无码一区二区| 亚洲AV午夜成人无码网站色优| 一区二三区国产中文字幕播放| 2012精品视频在线观看免费毛片 | 最新国产不卡无码一区二区| 亚洲欧美高清精品一区二区不卡| 天天躁日日躁狼狼超碰97| 国产剧情18禁免费网站| 亚洲欧美国产卡通动漫| 精品人妻无码一区二区三区换脸| 亚洲av成人无码日韩久久精品| 一道本不卡的日韩高清av| 在线观看视频中文字幕你懂的| 国产久99热这里只有精品品| 老怡红院av在线永久免费| 亚洲欧美日产综合在线免费看| 一本大道久久无码AV天堂| 黄色一级毛片免费| 成人午夜福利剧场一区二区| 国产校花露脸在线观看| 国产精品久久久久天天影院| 午夜爽喷水无码成人18禁三| 中文字幕版免费电影网站| 欧美第一页浮力影院| 白丝M字开腿强制呻吟| 日本特大a级猛片在线观看| 亚洲性爱 国语对白| 高潮无遮挡猛烈国产| 五月天丁香婷婷最新| 精品高清国产日本| 99国产精品久久99久久久| 亚洲黄色免费网站| 麻豆一區二區三區av| 欧美高清性色生活片免费观看 | 真人片免费视频网站| 在线一级观看免费观看大全| 日韩精品久久久久av电影| 日本一卡二卡四卡无卡乱码视频免费 | 中文字幕亚洲欧美色图| 日本高清有码在线播放| 成人动漫一区二区三区四区| 男女高潮激烈免费观看中文| 第一亚洲国产成人网站| 97色偷偷福利视频| 国产中字幕幕久久| 精品精品欲天堂| 四虎影院在线网址| 香蕉国产偷在线| 亚欧av在线播放| 日出水了好深好涨h文| 久久久久成人精品| 日韩乱伦一二三区| 国外在线视频一区二区不卡| 日韩女人毛片在线| 少妇人妻无一区二区三区| 影音先锋人妻AV在线电影| 99久久久无码国产精品性男男 | 四虎综合九九色九九综合色| 亚洲最大日夜无码中文字幕| 国产裸体美女视频| 第一亚洲国产成人网站| 又大又猛又爽又黄视频| 亚洲欧美国产高清久久| 国产有码久久一区精品| 美女极品内射17C蜜芽| 最新欧美在线| 亚洲国产中文无码视频在线观看 | 在线日本aⅴ免费网站| 亚洲人妻中文字幕精品一区人妻| 爆乳无码A∨一区二区三区| 日本熟妇乱人伦a| 少妇尝试又粗又大久久| 亚欧一区在线播放| 天天摸夜夜添夜夜添| 欧美日本一道一区二区三区| 手机在线视频国产片欧美| 天美影视传媒有限公司| 亚洲欧美中文日韩另类特别| 国产精品香蕉在线| 日本高清不卡全码视频| 第一亚洲国产成人网站| 免费人成在线视频无码精品 | 精选国产网站无码不卡| 丁香五月天中文字幕| 国产一区二区三区性爱视频| 午夜国产一区二区视频| 久久亚洲欧美国产日韩导航| 无码熟妇人妻AV在线影片最多 | 巨爆中文字幕巨爆区爆乳| 在线视频手机在线亚洲欧美| 黑又大又粗又大欧美视频| 日韩国产中文视频| 国产一级精品理论片在线观看| 精品国产三级国产av中文| 欧美亚洲精品二区久久久| 波多野结衣高潮喷水在线观看| 精品国产自在现偷99| 中文字幕一区不卡| 四虎影视永国产精品亚洲精品| 中文字幕 久久小次郎| 久久国产频频| awyy爱我影院午夜| 亚洲国产精品日韩区| 日韩中文字幕日韩精品| 亚洲日韩 偷拍 综合| 真正国产ts人妖系列视频| 国产精品淫荡人成视频免费vod | 亚洲国产日韩欧美高清片18| 天天爽夜夜春| 美国av不卡在线观看| 亚洲国产中字在线精品| 色欲āⅤ蜜臀āV免费观看| 日韩欧美黄色一级视频| 噜噜免费在线欧美| 久久影院国产精品视频| 久久久九色综合亚洲成色777| 一级不卡中文字幕精品片| 日本免AⅤ欧美在线观看| 真实的和子乱拍在线观看| 日本久久久久精品免费| 亚洲欧美久久精品中文字幕| 亚洲一级av在线天天看| 黄豆奶视频亚洲一区手机版| 亚洲国产精品欧美日韩| 欧美日本一道一区二区三区| 国产91学生粉嫩喷水| 久久久婷婷婷| 无码一区二区免费波多野播放搜索| 一级黄片视频直播无码| 精品国产自在在线| 911欧美日韩国产永久免费| 久久黄色片三级片黄色网址| 久久亚洲欧美国产日韩导航| 1314com免费网站免费观看| 国产精品18p年美女网站色免费| a丨明星自慰18禁网站| 黑人巨大欧美一区二区视频| 天美麻花星空和麻豆是什么关系| 在线看片免费人成视频久试看| 色噜噜亚洲一本在线视频| 国产真人高清无码| 亚洲av成人一二三区观看2| 中文字幕无码AV免费在线| 日韩免费看视频三区中文字幕| 中文字幕国产片视频在线观看| 久热国产v线观看视频| 国产欧美日本亚洲精品一5区| 亚洲综合色一区| 疯狂做受xxxⅹ高潮男女韩国 | 国产三级自拍看亚洲A级一级毛片亚洲AV片 | 国产色网一区二区三区| avtt中文字幕无码一区| 真实国产乱子伦沙发视频片 | 四虎影院在线网址| 亚洲色大成网站www同| 久久精品视频一级二级| 成人午夜电影达达兔| 91人人澡人人妻蜜桃vvvvvv| 再深点灬舒服灬太大了添小书| 欧美日韩国内一区二区三区| 日本高清在线观看久久| 日韩美女观看成人片在线观看网站 | 少妇无码av无码专区在| 久久久婷婷五月亚洲97号色 | 久久伊人免费观看| 翁熄乩伦小说32篇| 国产中文在线视频| 国产又大又粗又长在线无码视频| 制服诱惑亚洲精品| 日韩亚洲一区视频二区| 亚洲日韩不卡在线| 卡通动漫亚洲综合第一页| 色五月婷婷亚洲天堂| 国产午夜福利app导航在线观看| 国产精品一区二区亚洲动漫医妃| 欧美美女性爱喷水网址| 在线一区二区三区国产| 2022无码视频网站| 夫の目の前侵犯新婚人妻| 久久久亚洲欧洲国产av线| 在线视频国产日韩色欲| 视频国产∨在线观看| 欧美亚洲变态另类重口在线| 最新69国产成人精品视频| 亚洲欧美日韩在线网| 国产r级激情在线观看| 国产亚洲视频在线观看视频在线| 免费高清不卡视频日本| tubexxxxmovies中文巨大超乳在线播放 | 我色综合亚洲欧美综合网| 国产99精品婷婷天天逼插| 三根一起玩真的会坏掉| 黄色片国产视频网站| 国产一级做a爰片久久毛片小说| 国产亚洲不卡综合av| 无码一区二区三区亚洲人妻| 午夜国产一区二区视频| 亚洲国产中出无码 | 特黄特色大片免费播放器试看 | 日产岛国精品一区| yiren22亚洲综合高清一区| 成人AAA级免费视频| 中文字幕码一二三区在线| 9299yy看片婬黄大片软件| 无码人妻高清碎红楼| 高清在线观看无码国产| 在线免费成人日韩亚洲一区网| 97国产浪潮a∨无码的视频| 亚洲国产日韩精品二三四区91 | 免费观看又色又爽又湿的软件 | 亚洲国产精久久久| 亚洲欧洲av一区二区三区| 国产精品久久久久久久美男| 日韩有无码网站一区二区| www插插插无码视频网站| 91大片淫黄大片在线天堂| 日韩欧乱色一区二区三区在线| 亚洲一区二区A| 欧美理论精品一区二区三区 | 超prom国产在线观看| A级黑粗大硬长爽猛视频| 久久一热久久这里只有精品图片| 日韩一区二区三区四区高清不卡免费观看 | 风韵中年熟妇呻吟视频| 国产三a无码大片| 性变态sM虐女重口文| 日本不卡一区更新二区| 三级片一级中文版| 手机在线看免费毛片| 人妻公交被从后面进去| 日韩美女精品免费视频| 桃花视频一区二区| 亚洲av午夜精品三区| GB当你把他抄哭了| 最新亚洲成人无码网站在线观看| 国产精品一区二区国模私拍| 小屁孩与大人A片视频| 精品高清国产日本| 日韩一区二区三区四区高清不卡免费观看 | 日本日本中文熟妇在线视| 夜夜夜夜夜精品一区二区| 欧美理论精品一区二区三区| 锵锵锵锵锵免费完整观看豆瓣| 亚洲综合在线5区| 国产亚洲午夜福利在线在线视频| 無码中文字幕av王| 亚洲日韩精品中文hd无码不卡| 2018亚洲偷偷的一区二区| 亚洲自拍偷拍宗合| 老伦熟女一区二区三区红豆| 蜜桃污视频APP下载| 疯狂做受xxxⅹ高潮男女韩国| 日韩电影无码一卡| 国产亚洲欧洲日韩在线91区| 久久精品国产亚洲av吃奶 | 囯闪偷自拍99在线| 日本A级毛不卡一区二区三区| 国产成人啪精品网站| 操逼无码视频| 国产真实乱XXX视频| 亚洲国产日韩欧美高清片18 | 五月六月婷婷| 又粗又大又硬无码AV| 青草影院在线观看| 国产v大片淫在线免费观看| 影音先锋成人无码电影| 最新二日韩区福利午夜视频| 中文字幕第一页无码久久网| 国产精品欧美激情aaaa | 好男人视频在线观看免费高清ww.| 午夜激情福利影院| 小屁孩与大人A片视频| 夫の目の前犯中文字幕| 中文字幕久久电影免费。| 天天爽夜夜春| 青草热在线精品视频99app| 91精品91久久久中文字幕app| 成品人短视频软件大全免费下载| 午夜国产在线观看| 桃色tv无码人妻中文字幕| 亚洲V日韩V精品v无码一区二区| 夜添久久精品亚洲国产精品 | 日本按摩高潮中文A级| 最新亚洲人无码无线在线| 一区2区欧美日韩| 蜜臀va亚洲va欧美va天堂| 入禽色网视频免费看| 亚洲欧洲中日韩手机在线床| 国产成人免费高清Av多毛熟女| 亚洲av午夜精品人妻| 宝贝你的小缝好紧好滑| 日韩 欧美 国产 综合 在线| 午夜一区二区福利| 国产99精品婷婷天天逼插| 日本私人网站在线观看| 91精品国产亚洲九色| 欧美一区二区三区成人片在线| 欧美黄色片子午夜福利| 中文字幕爱爱| 在线观看国产一级黄片视频| 真人两个男生做酿酿酱酱| 欧美麻豆婷婷丁香五月综合激情 | 久久无码精品福利海天翼| 亚洲高清国产精品熟女| 人妻被按摩到潮喷中文字幕久久| 我色综合亚洲欧美综合网| 亚洲无人区免费视频在线观看| 国产精品99久久久久久久人美貌| 亚州一极生活片| 四虎影院在线网址| 91久久国产丁香| 欧美理论精品一区二区三区| 国产好痛疼轻点好爽的视频 | 中文字菷夫前侵犯人妻| 亚洲天堂中文字幕免费视频| 99久久久无码国产精品免费手机| 老少配XXX性老少配| 欧美日韩人妻| 91资源在线是一款面向视频和91香蕉直播| 欧美熟妇乱伦色网视频 | 久久精品香蕉| 一捏胸一边打扑克全程视频| 337p日本欧洲噜噜噜噜| 久久国产一级137片| 无码亚欧激情视频在线观看| 韩国做爰三级在线观看| 欧美破苞流血视频| 国产成人Av一区二区一一三区| 黄色片免费在线观看视频| 色综合激情在线观看视频| 爱操视频在线观看| 国产av日韩精品一区二区| 黄片AV在线免费播放| 免费看精彩激情久久| 久久高清毛片一级| 国产成人A∨在线网| 最新国产孕妇孕交视频| 日韩 国产 欧美 视频| 日本免费视频一区一区| 成年人毛片在线观看| 成人区人妻精品一区二区不卡不卡| 777歐美午夜精品影院| 老司机精品一区二区三区在线| 久久精品日本理论片久久久| www.视频在线观看| 欧美老妇牲交videos| 日韩片欧美一道本一区二区三区| 国产精品一进一出黄色| 国产欧洲野花A级| av视频在线观看撸| 在线日本片人中文字幕小电影 | 内射极品少妇xxxxxhd| 停停五月激情网络| 国产户外调教视在线播放| 久久99久久99精品免费看小说| 男人天堂久久久久| 成人在线国产调教视频| 在线高清不卡日韩| 午夜dj在线观看高清亚洲| 国产成人不卡顿视频在线观看免费| 国产精品九九精品久久免费 | 产乳奶水文h男男喂奶| 国产一区二区三区视频在线观看| 欧美日韩国产系列播放在线观看| 午夜一区二区福利| 99久久久无码国产精品免费手机 | 伊人久久少妇| 无码AV啪啪一区二区三区| 蜜臀va亚洲va欧美va天堂| ?愛妃?色婷婷六月亚洲综合香蕉| 张婉莹视频暑假作业网站| 三根撑到极致哭着求饶H| 天天狠天天插| 美国农夫导航| 成人动漫一区二区三区四区| 亚AVAV天AV在线不卡| 91精品成人综合| 激情在线观看污视频| 91香蕉污污视频| 粉嫩在线资源视频| 日本免费视频一区一区 | 国产av成人一区二区三区| 最近中文字幕视频免费| 最新国产不卡无码一区二区| 亚洲av午夜精品三区| 特一级黄色毛片| 在线观看不卡播放的av| 惠民福利日韩免费A级毛片无码| 欧美日韩国产在线观看88888| 猛男的大粗鳮巴1久久精品综合热久久 | 免费人成在线视频无码精品 | 麻豆一區二區三區av| 欧美人妻aⅴ中文字| 激性欧美在线播激性欧美| 免费鲁丝片无码一级在线观着| 人妻va精品va欧美va图片| 岛国黄色在线观看视频用手扣下面| 亚洲AV无码无删减在线观看网址| 自拍偷拍欧美视频| 丁香五月激情啪啪啪啪啪| 日韩无码中文字幕亚洲视频 | 神马影院三级| 亚洲无码 一区二区三区 波多野结衣 | 日韩钻石无码专区| 欧日一道本dvd在线无码| 最新国产无码在线直播| 日本美女性爱高清在线| 在线A级毛片无码免费真| 中文字母色婷婷| 老熟妇乱子伦系列视频| 中文久久中文字幕| 青青亚洲国产成一综合在线 | 2019久久综合网| 日韩激情小电影在线免费观看| 久久精品香蕉| 欧美日韩精品黄漫在线观看| 理伦片理伦影院| 香蕉视频成人在线观看| 夜添久久精品亚洲国产精品| 性高湖婬aaa片a片中国| 手机能看的AV在线网站| 停停五月激情网络| 国产成人伦精品一区二区 | 亚洲精品国产精品粉嫩av | 欧美十八禁柔术极品xx| 大香蕉无码在线视频整| 日本a在线免费观看| 欧美大片aaaaa免费观看| 中文字幕无码笫一页| 久久久久久久伊人电影| 办公室强伦片免费看| 国产一区免费公开在线观看| 亚洲av午夜成人片精品| 欧美15一18sex性成人影片| 乱伦亚洲欧美中文| 男生女生差差差下载| 亚洲丁香婷婷久久一区二区| 日韩无码中文字幕亚洲视频 | 黄豆奶视频亚洲一区手机版| 国产一级精品精冻电话| 亚洲无码片在线gv网站| 日产无人区一线二线三线观看| 好黄好色一区二区| 午夜dy888无码视频在线看| 国产一级成人片免费视频野外| 性欧美videofree高清杂交| 国产裸体美女视频| 久久精品國產亞洲AV成人| 中国少妇毛茸茸| a级高清特黄色片| xxxxx免费视频在线观看| 女人被狂c到高潮视频网站| 午夜欧美激情网99国产欧美久久久精品| 囯闪偷自拍99在线| 日韩精品视频在线一区二区三区| 免费夜色污私人影院在线观看| 午夜福利+无码+自拍| 都是在线观看无码精品| 久久亚洲综合精品人妻| 九色在线亚洲自拍| 白云精品視頻國產專區| 另类小说图片区日本久久大视频| 国产刘玥在线视频观看| 男人又大又硬又粗好爽视频| 亚洲一区日韩精品| 一区二三区国产中文字幕播放| 久久无码精品福利海天翼| 日本一级理论片公妇乱| 国产成人不卡综合亚洲看片| 51国偷自产一区二区三区的来源| 97色伦综合在线欧美视频| 在线视频手机在线亚洲欧美| 天天操美女天天干| 香蕉青草久久成人网| 久久香蕉精品视频| 久久香蕉国产线看播放| 人妻人人操综合网| 无码人妻高清碎红楼| 男女做性猛烈叫床视频免费| 亚洲精品av一区二区三区四区| 久久久亚洲欧洲日产国码二区| 欧美国产一级片| 久久 国产精品 亚洲| 国产精品亚洲专区无码WEB| 麻豆91精品91久久久久久| 老司机午夜福利免费视频| 另类小说区超碰97资源站| 国产又色又猛又黄的网站| 国产成人无码AA精品区| 国产在线高潮流白浆视频| 性爱国产亚洲AV禁18成人毛片一级在线| 秋霞2016午夜限制电影在线| 国产成人高潮免费观看精品| 精品水蜜桃久久久久久久| 色五月婷婷亚洲天堂| 蜜臀久久人妻一区二区| 中文字幕AV有码在线| 精品少妇熟女av一区二区| 日本在线一区中文在线69| 91香蕉污污视频| 成人免费精品视频| 性开放的交换艳妇俱乐部小说| 软萌小仙女自慰粉嫩小泬网站| 色综合福利视频一区二区三区| 中文字幕亚洲分区| 久久精品国产精品第一区| 久久亚洲综合精品人妻| 首页综合国产亚洲丝袜日本| 国产精品免费无需播放器看| 女人被狂躁到高潮20次| 成都私人家庭影院的推荐理由韩国 | 囯产免费一区二区三区在线播放| 91大片淫黄大片在线天堂| 俄罗斯老熟女18一HD| 伊人天堂在线视频短片| 欧美大属黑人吊粗大| 欧美国产日产一区二区三区| 欧洲熟妇色XXXX欧美老妇多毛图片| 国产精品97影院激情偷乱人伦一区| 久久久这里有免费精品99| 国产 日韩 欧美动漫| 日本特大a级猛片在线观看| 久久97成人欧美日韩网站| 成人动漫一区二区三区四区| 激情在线日韩视频免费| 国产一区免费公开在线观看| 精品久久久久久久久久久下载| 午夜性做爰aaaaa| 国产大学生高清在线一区二区| 日本暖视频一区二区三区| 国产午夜成年免费视频| 久久香蕉国产线看播放| 国产精品午睡沙发系列| 制服丝袜亚洲绿岛| 宝贝你的小缝好紧好滑| 亚洲欧美国产日本在线观看| 欧美成一级片欧美成一级片| 午夜三级a三级三点窝558888| 日韩字幕西瓜视频在线观看| 高清无码在线你懂的| 2012中文字幕视频大全| 少妇高潮惨叫正在播放对白| 国产精品免费一区二区三区视频观看| 日韩精品aⅴ一区二区| 一区二三区国产中文字幕播放| 亚洲va中文字幕天码毛片| 亚洲日韩中文字幕一级在线播| 了解最新国产精品久久久久久一级毛片 | 一级欧美一级日韩视频| 日韩钻石无码专区| 国产AV无码精品色| 卡通动漫一区二区亚洲欧美| 97色偷偷福利视频| 91精品国产无线乱码在线观看| tubexxxxmovies中文巨大超乳在线播放| 天堂а√在线最新版在线8 | 91久久电影国产高清| 久久视频精品3线视频在线观看| 国产二区视频在线| 中文字幕在线中一区| 久久久亚洲欧洲日产国码二区| 别揉我奶头~嗯啊精品成人| 亚洲动漫无码二区| sao虎视频在线精品永久| 欧美一区二区三区久久综合W| 中文字幕+欧美+日韩| 日韩久久中文| 黄色片免费在线观看视频| 欧美国产美女在线观看| 免费无码婬片AAAA片小蓝| 午夜福利不卡一区二区| 久久久久久久伊人电影| 国产乱子轮XXX农村| 日本在线一区中文在线69| 亚洲无码中文字幕色网视频| 18成人看AV无遮挡床震| 中文在线国产人妻乱码| 奇米四色aⅴ在线视频| 中文字幕版免费电影网站| 狼人精品一区二区无码视频| 亚洲无码 一区二区三区 波多野结衣| 超碰97人人网人人澡青青色| 无码三级视频xxxx69| 欧美成人版A片超级英雄系列 | 337P日本大胆欧洲色| 亚洲vs日本vs韩国vs国产 | 日韩精品aⅴ一区二区| 亚洲精品国产自产| 人妖亚洲一区二区| 亚洲 欧美 日韩 综合 中字| 制服丝袜亚洲绿岛| 91久久精品福利资源| 性开放的交换艳妇俱乐部小说| 亚洲精品久久久久久国| 亚洲国产精久久久| 精品手机电影| 精品少妇人妻系列无码| 国产一级AAAAA免费播放| 亚洲av中文不卡| 直接免费看黄色视频| 亚洲日韩精品中文hd无码不卡| 国产精品亚洲精品久久品尚网| 日韩亚洲成人精品午夜在线| 成人免費一區二區三區 | 国产一区二区乐插| 亚洲第页国产精品| 国产一区二区亚洲污在线观看| 国内午夜免费鲁丝片| 午夜爽喷水无码成人18禁三| 亚洲熟女一区| 快色1024美女插| 欧美一级在线观看| 国产精品乱码一区二区三77| 亚洲AV美日韩AV丝袜美腿| 日韩免费无码人妻波多野| 天堂а√8在线最新版在线| 久久99一区二区三区| 亚洲最大的成人网站| 强制侵犯系列中文字幕av| 99re在线这里只有精品| 日韩一级二级无码视频| 一二三四在线观看免费播放电影 | 美女视频久久久久久| 无码AV免费在线| 久久国产一级137片| 无码高清传媒中文字幕在线| 小早川怜子国内精品久久久久| 自拍偷拍欧美视频| 精品国产三级片| 玩小雪跪趴把腿分到最大影视频| 国产女人高潮抽搐喷水视频免费 | 免费观看的毛片一区二区三区 | 成人无码AV网站在线观看| 日韩一区二区不卡无码网站| 国产精品一级桃花视频| 男女做性猛烈叫床视频免费| 欧美中文字幕精品一区 | 午夜福利久久精品2023| 免费看h片的网站| 国产精品一进一出黄色| 黄色刺激视频免费在线观看| 中文字幕乱码亚洲V日本1| 国产成人Av一区二区一一三区| 波多野结衣系列亚洲一区二区| 亚洲AV午夜成人无码网站色优 | 日韩 欧美 国产 综合 在线| 国产亚洲日本欧美在线| 最近中文在线中文| 男男做a爱过程免费视频| 三观视频在线观看毛片 | 翁熄乩伦小说32篇| 2019国产三级在线观看| 精品自拍自产一区二区三区高清| 免费观看污片不要钱| 事物的秘密截取水中一段| 国产古装全黄A级视频一本久久精品一区二区 | 久久国产精品成人av| 亚洲 欧美 制服 动漫| 日本特大a级猛片在线观看| 四虎影院在线网址| 国产亚洲清纯唯美视频在线| 久久高清毛片一级| 粉嫩在线资源视频| 国产极品精彩视频在线| 777歐美午夜精品影院| 美妙人妇系列1~100| 天天操人人爽| jiuse国产精品视频| 国产人成高清在线99| 一本大道久久无码AV天堂| 99久久久无码国产精品免费手机| 久久國產精品1區2區3區網頁| 国产毛片久久精品| 国产超级在线观看视频一区二区| 黄色刺激视频免费在线观看| 一本色道久久综合亚洲av| 国产精品一区二区亚洲动漫医妃| 沈阳老熟女高潮喷水| 欧美一区二区三区一级| 伊人大杳蕉久久综合| 日本福利在线| 制服丝袜无码人妻日韩一区| 日韩亚洲一区视频二区| 老师你乖乖的可以让你少吃点苦头| 蜜臀色V人妻精品一区二区三区| 中文字幕有码av| 精品久久久久成人无码免费| 人成高清毛片亚洲| 真实国产乱子伦沙发视频片 | 狼人精品一区二区无码视频| 在线观看免费播放黄污| 精品国产三级中文字幕| 天堂午夜成人福利在线| 武松叼着潘金莲奶头的是谁扮演的 | 国产精品久久久久免费A下载| yy成人免费影院| 800av在线免费观看| 欧美性与交视频在线观看| 中文乱理在线看片| 欧美午夜福利视频| 樱桃视频污污在线免费观看 | 国产2o岁美女一级毛片| 久久成人激情免费视频| 国产99在线男女一级大黄| (凹凸)亚洲国产精品18久久久久久| (凹凸)青草制服丝袜一区第一页| 精欧美一区二区国产三区| 丝袜美女的下面狂喷白浆视频| 日本三级香港三级成人网| 黑人多次强迫白人女子| 黑人多次强迫白人女子| 视频一区欧美日韩中文字幕| 久久婷婷综合国产青草| 国产成人Av一区二区一一三区 | 久久青青草国产第一页在线视频观看日韩11页 | 日韩综合一区二区三区| 久久婷婷色香五月综合激情| 精品不卡电影AV| 日韩专区无码一区二区三区视频| 一本一本久久a久久精品综合麻豆| 日本美女被男子插高潮啊啊啊 | 又粗又大又硬无码AV| 国产精品九九精品久久免费| 亚洲欧洲成人在线一区二区| 老少配XXX性老少配| 精产嫩模国品一二三区| 91资源在线是一款面向视频和91香蕉直播 | 国产又爽又黄免费下载| 日韩亚洲欧美香蕉精品区| 久久99久久99精品免费看小说| 在线观看黄色软件| japan白嫩丰满少妇videoshd| 中文字幕 日韩 人妻 无码app| 久久国产乱子伦精品免费草莓| 在线观看av日韩| 制服诱惑亚洲精品| 1314com免费网站免费观看| 99久久国产综合精品2020电影| 美国一级欧美三级| 奇米四色aⅴ在线视频| 国产精品久久久久综合| 歐美日韓在線觀看視頻| 国产欧美一区二区三区在线播放 | 国产一区二区丰满| 免费看黄在线观看网站| 夜添久久精品亚洲国产精品 | 男同无码岛国大片在线观看| 欧美日韩一区二区黄色| 亚洲黄色免费网站| 国产精品偷伦费观看| 亚洲天堂视频在线观看视频| 激情亚洲一区国产精品婷婷九月| 国产精品欧美激情aaaa | 国产91制服丝袜在线无码| 欧美一级黄色大片| 国产精品亚洲专区无码WEB| 久久亚洲综合精品人妻| 麻豆人妻无码中出| 久久国产精品成人av| 春药按摩人妻弓中文字幕| 亚洲vs日本vs韩国vs国产 | 亚洲激情人妻| 黄色片国产视频网站| 三根撑到极致哭着求饶H| 欧美一区二区三区人妻束缚| 亚洲欧洲无码bt下载| 国产99在线男女一级大黄| 制服.丝袜.亚洲.另类.中文 | 亚洲国产中文无码视频在线观看| 色哟哟资源视频在线观看 | awyy爱我影院午夜| 亚洲日韩妇女av一区二区| 国产精品免费一区二区三区视频观看 | 色综合激情在线观看视频| 国产亚洲视频在线观看视频在线 | 婷婷综合网五月天丁香花| 456亚洲人成高清在线| 影音先锋人妻AV在线电影| 欧日韩av一区二区三区四区| 欧美日韩人妻| 青青青青青青久久久免费观看 | 中文乱理在线看片| 秘书被c摁办公H嗯啊s视频| 免费v片免播在线| 国产极品91在线免费观看| 精品一区二区三区高清av| 日本无毛视频韩日精品| 蜜臀va亚洲va欧美va天堂| 国产真人无码作爱视频免费久| 久久99日韩中文字幕| 久久久久人妻一区精品性色av| 四虎影院在线网址| 國產一級久久久久久毛片| 亚洲手机无码电影在线| 精品少妇国语对白视频| 女人的精水喷出来视频| 国产在线h视频| av鲁丝片一区二区免费| 久久精品国产亚洲av无码成都| 雏鸟pro2儿童版特色| 午夜福利+无码+自拍| 国产 日韩 在线 亚洲 字幕 中文| 中文乱码人妻系列一区| 国产精品嫩草影院99| 亚洲精品中文字幕乱码4区| 欧美亚洲精品二区久久久| 久久不见久久见www电影| 亚洲无码人妻av| 国产v大片淫在线免费观看| 国产演艺明星婬乱视频不卡| 亚洲mv无码播放| 国产一区二区亚洲污在线观看| 亚洲无码一区二区三区在线观看| 高清在线观看最新电影和热门影视剧| 激情综合五月婷婷| 亚洲国产成人αV人片久久网站| 日韩精品午夜无码专区福利| 日韩免费午夜视频| 武松叼着潘金莲奶头的是谁扮演的| 简单av网在线播放免费| 欧美一级性爱A级| 熟妇人妻精品中文字幕| 亚洲中文在线精品国产| 久久综合网久久综合爱| 亚洲国产精品亚洲人成| 少妇人妻精品午夜无码| 337p日本欧洲噜噜噜噜| 影音先锋成人无码电影| 色哟哟资源视频在线观看 | 最新亚洲av资源| 国产午夜福利app导航在线观看| 中文国产无码日韩 | 日本一道精品一区二区一个人| 大屁股迷人少妇在线观看| 黄色刺激视频免费在线观看| 一级做受毛片免费大片| 架着她的腿疯狂进出视频| 中文字幕有码av| 黄豆奶视频亚洲一区手机版| 久草热视频免费的网址| 成人漫画网羞羞免费漫画| 九色视频免费看亚洲国产一久网摸| 玖玖这里只有精品38| 国产美女在线免费福利| 亚洲人妻中文字幕精品一区人妻 | 张婉莹视频暑假作业网站| 国产精品久久久久免费A下载| 久热国产区二三四| 精品无码受辱人妻| 久久成人毛片免费看| 欧美日韩a在线视频| 精品一区在线观看成人1| 精品激情极品视频在线观看| 亚洲国产一区二区三区中文字幕影视日韩精品 | 国产激情二区欧美三区| 三根一起玩真的会坏掉 | 亚洲 欧美 制服 动漫| 久久99久久99精品免费看小说| 好黄好色一区二区| 色哟哟资源视频在线观看| 欧美一级视频免费| 精欧美一区二区国产三区| 国产一级高潮片免费| 亚洲日本免费不卡一二三区| 日韩一区二区不卡无码网站| 美女视频久久久久久| 在线观看国产午夜福利片668| 夫の目の前犯中文字幕| 中文字幕人妻精品一区| 日韩av一区二区三| 亚洲天堂男人免费视频在线| 人妻诱惑中文字幕在线视频 | 黄色片免费在线观看视频| 欧美日韩精品区久久久| 麻豆爱爱视频| 囯产熟女视频精品免费看| 无码极品人妻| 自拍中文欧美三级| 人妻蜜肉动漫中文| 国产免费观看avvvv| 打扑牌不盖被子怎么办| 99视频久九热精品| 一捏胸一边打扑克全程视频| 四虎永久在线精品免费视频观看| 国产粗大劲爆内射| 在线亚洲午夜片av大片动图| 一级毛片免费不卡| 国产一级特黄aaaa大片毛片| 亚洲精品国产精品粉嫩av| 精品少妇无码流白浆视频| 欧美日韩精品成人在线| 国产午夜福利影音资源| 锵锵锵锵锵免费完整观看豆瓣| 國產精品免費在線播放| 亚洲日韩高清蜜芽在线观看| 色欲天天婬色婬香视频综合网| 国产不卡一级无码视频| 狠狠色丁香婷婷综合五月| 8090yy亚洲人精品久久| 久久偷拍高潮免费视频| 啪啪性爱视频网站免费看| 中文字幕有码av| 天天躁夜夜躁狠狠综合20| h片在线观看免费无码网站| 在线播放免费人成日韩视频| 亚洲九九黑人视频| 日韩中文字幕日韩精品| 潮喷中文字幕在线精品无码| 日产精品一线二线三线区人妻激情偷乱视频一区二区三区 | 国产最新婷婷综合一区| 亚洲一级a级片| 91激情视频手机在线安卓版| 国产无遮挡又爽又刺激的在线观看| 国产2019全部在线视频| 5a级动作片在线观看| 亚洲剧场午夜在线观看| 日本高清不卡视频一区二区三区| 日本va欧美va国产va| 最新无码专区91在线| 青草热在线精品视频99app| 欧美中文字幕在线视频区| 青青草久热精品视频在线观看| 亚洲av成人一二三区观看2| 国产一级AAAAA免费播放| 国产福利在线观看视频观看互动交流 | 欧美日韩中文字幕视频在线看 | 久久國產精品1區2區3區網頁| 精品国自产拍天天青青草原| 99re8精品热爱在线视频| 久久久亚洲欧洲日产国码二区| 日韩亚洲成人精品午夜在线| 16—17女人毛片毛片同性| 国产一级做a爰片久久毛片小说| 欧美又黄又裸乳的视频| 免费无码黄网站在线看| 午夜dj在线观看高清亚洲| 无码人妻精品一区二区三区?v片| 91精品国产无线乱码在线观看 | 一捏胸一边打扑克全程视频| 成人一区二区三区www视频 | 色婷婷三级在线观看| 制服丝袜无码人妻日韩一区| 日韩精品国产欧美| 免费精品无码毛片视频在线播放| 中文字幕有码视频不卡| 亚洲三级毛片女人18水好多| 国产精品户露AV在线户外直播| 国产小情侣激情小视频免费看| 中文字幕亚洲乱码高清| 亚洲啪在线午夜福利| 韩国人体vps国产在线视频| av鲁丝片一区二区免费| 无码?V蜜臀?Ⅴ色欲在线观看| 亚洲乱码v中文一区二区| 白云精品視頻國產專區| 无码一区二区久久中文| 国产三级高清无码视频| 最新狠狠色狠狠色综合| 97国产最新免费公开视频| 日韩精品一区二区三区四茋| 91最猥琐眼镜摄影师国模丝丝| 中文字幕有码av| 亚洲欧美日韩精品综合| 5a级动作片在线观看| 久久偷拍视频大全| 在线播放免费人成日韩视频| 天天欢夜夜爽精品人妻 | 色婷婷大香蕉超碰| 一级做a爰性色毛片免费| 高清无码爆乳护士在线播放| 校园春色在线视频| 麻豆精产国品一二三产区别| 桶机免费大全app网站| 麻豆Aⅴ传媒在线播放免费观看| 粗大挺进朋友未婚妻| 亚洲精品成人片在线观看精品| 成人无码AV网站在线观看| 荫蒂添的好舒服嗯快嗯呢来了视频 | 国产亚洲不卡综合av| 无码AV啪啪一区二区三区| 欧美成一级片欧美成一级片| 欧美亚洲色图小说| 最近中文在线中文| 欧美一级精品高清在线观看网站| 亚洲黄色免费网站| 欧美亚洲成人日韩| 免费在在线观看一二三区欧美电影| 欧美日韩精品黄漫在线观看| 99re热这里只有精品视频电影排行榜 | 国产一级一片视频播放| 亚洲欧美自拍中文字幕| 亚洲精品国产乱码在线措| 国产色综合久久| 日韩精品欧美成人国产不卡| 了解最新国产网站免费在线观看| 91粉色视频在线观看| 成人无码AV网站在线观看| 无码一区二区久久中文| 色一情一乱一伦一区二区三区影视| 欧美GAY巨大动漫3D| 狼友精品在线观看| 在线日本aⅴ免费网站| 欧美在线视频导航| 国产一级片射精免费看| julia中文字幕在线观看| 国产亚洲不卡综合av| (凹凸)亚洲国产精品18久久久久久| 一区二区三区啪偷拍视频| 囯产熟女视频精品免费看| 亚洲欧美日本在线一区麻豆| 中文字幕人妻高清亂碼 | 欧美亚洲丁香五月社区| 中文文精品字幕一区二区| 国产日韩在线永久免费观看?v| 青青草国产一区二区三区| 亚洲欧美婷婷五月色综合| 波多野结衣系列亚洲一区二区| 亚洲韩国无码一区二区| 惠民福利日韩免费A级毛片无码| 乱码视频在线播放专区| 国产 日韩 欧美动漫| 自拍高清无码三级| 我色综合亚洲欧美综合网| 亚洲一区日韩精品| 亚洲 欧美 中文 AⅤ在线视频| 成人AAA级免费视频| 国产手机在线国内精品| 国产精品视频aa| 区二区三区在线| 男同无码岛国大片在线观看| av福利网址网站| 免费毛片av无码专区| 影音先锋亚洲熟女av网| 99亚洲一区二区三区在线观看| 亚洲国产中文日韩一区三区| 韩国电影爱的色放在线观看| 神马影院秋霞一区二区三区| 青青青国产在线91| 欧美娇小XXXX性| 成人国产精品一级毛片了| 中文字幕′在线精品只精品| 亚洲AV无码专区久久性色| 久久97成人欧美日韩网站| 国产精品一区女同日常| 国内精品成人在线观看| 日本丁香五月激情| 伊人思思久99久女女精品视频| 国产视频一区二区三区蜜臀 | 丝袜美女的下面狂喷白浆视频| 久久国产福利国产秒拍大全| 国产手机在线精品亚洲| 日韩无码视频一区二区免费播放| 97色伦亚洲自偷久久久| 永久地址网址亚洲国产| 性一交一乱一猛一从视频| 天美影视传媒有限公司| 免费视频一区二区三区在线观看| 在线免费成人日韩亚洲一区网| 国内盗摄视频一区二区三区| 800av在线免费观看| 国产成人久久精品二区三区爱涩| 日韩欧美黄色一区二区| 中文一区二区视频在线| 欧美熟女性爱视频| 亚洲熟女偷拍日韩精品| 久久國產精品1區2區3區網頁| 亚洲国产精品亚洲人成| 狠狠躁天天躁综合网| 日韩高清无码中文字幕综合一二三区 | 国产超短裙美女在线观看| 欧美日韩国产在线观看88888| 国产美女在线一区二区| 国产三级在线观看性色av| 午夜欧美午夜激情在线观看| 免费国产成人高清在线视频| 国产超碰97精品免费| 精品国产三级国产av中文| 免费看片在线网站| 日本福利在线| 刻晴ちゃんが部下を什么意思 | 免费刺激国产麻豆视频| 婷婷色网中文字幕两男一女| 精品少妇熟女av一区二区| 午夜1区2区3区4区5区入口| 热久久真实少妇| 国产女主播勾搭外卖在线播放| 亚洲精品成人无码在线导航| 成人十八禁影院在线观看| 公交车大龟廷进我身体里图| 精品国产自在在线| 欧美第一黄片视频| 国产超级在线观看视频一区二区| 日韩一aa级欧美一aa级特黄| 高清在线不卡无码av| 欧美高清黄片永久免费| 亚洲av无码一区二区三区6| 欧美三级一级片免费看| 高清国产黄a毛片| 苍井空一区二区波多野结衣| 国产亚洲A v手机在线观看| 日韩av第一页在线观看| 911欧美日韩国产永久免费| 黑人巨摘花第一次出血| 日韩有无码网站一区二区| 日本成熟电影不卡www| 国产精品网曝门在线一区| 国产无码一区二区二区二区| 国产αV无码日韩αV无码网站| tubexxxxmovies中文巨大超乳在线播放 | 久久www免费毛片| 波多野结衣教师btsp| 日韩字幕西瓜视频在线观看 | 色婷婷三级在线观看| 欧美日韩国产性行为在线观看| 91精品视须免费在线观看| 一道本不卡的日韩高清av| 粗大猛烈进出高潮视频大全| 毛片不卡最新网址| 四川丰满少妇被弄到高潮 | 无码三级视频xxxx69| 自慰喷潮国产在线观看| 超碰最新公开无码97廣大網友最新影片 | 午夜日韩高清在线观看| 积积对积积桶免费网站入口软件| 亚洲国产精品欧美日韩久久久| 亚洲成av人片天堂网无码动漫| 亚洲老师人人香蕉AⅤ| 最近中文字幕2024免费看 | 午夜成人性色欧美视频在线播放| xxxxx免费视频在线观看| 国产美女一级做视须爱| 激情五月婷婷无码电影| 国产三级爽死你个荡货| 草莓视频app下载无限看| 日韩欧美精品一区在线播放| 高清日韩精品更新视频| 9299yy看片婬黄大片软件| 91粉色视频在线观看| 欧美熟妇乱伦色网视频| 人与人恔配视频免费看| 国产精品无码专区吃奶| 高潮绝顶抽搐大叫久久精| 成人无码视频在线观看免费播放| 欧洲亚洲色一区二区色99| 无码啪啪视频免费| 99精品热在线在线观看视频| 夜添久久精品亚洲国产精品| 狠狠色综合激情丁香五月172.| 成人黄网站免费观看| 成人视频网站在线观看| 国产一级 级内射视频网站| 男女高潮激烈免费观看中文| 国产精品欧美青青草| 婷婷丁香激情五月天| 国产精品99久久免费黑人人妻| 国产午夜av在线秒播| 激情五月亚洲色图| 欧美精品亚洲精品日韩精品一| 国产毛片久久精品| 夫の目の前犯中文字幕| 小乌酱女警双丝脚足在线看| 免费一区二区视频| 黄色刺激视频免费在线观看| 亚洲无码人妻av| 日本中文字幕视频一区二区三区| 久热国产区二三四| 日本一区二区免费视频播放| 欧美亚洲精品二区久久久| 一二三四影院网在线观看免费互動交流 | 国产又色又猛又黄的网站 | 制服丝袜无码人妻日韩一区 | 亚洲最大的成人网站| 无码一区二区三区亚洲人妻 | 国产一区二区三区视频在线观看| 另类图片一区二区三区久久久 | 成年女人免费毛视频| 国产三级爽死你个荡货| 久久久精品欧美潮喷三级| 国产精品成人久久久久A级| 国产欧美一区二区三区在线播放| 国产公开免费人成视频观看视频 | 午无影院免费看视频| 征服好友的保守人妻| 男生和女生差30分很痛app下载| 亚洲V日韩V精品v无码一区二区 | 成人性大片免费观看网站yy一| 2021亚洲产中文字幕无码| 国产精品18久久久久网站| 婷婷丁香激情五月天| 饥渴少妇一区二区视频| 色婷婷成人网| 人妻va精品va欧美va图片| 久久精品香蕉| 久久久噜噜噜久久免费| 久久国产自产亚洲天堂| 成人漫画网羞羞免费漫画| 亚洲综合无码18p| 香蕉国产偷在线| 日韩电影无码一卡| 2021无码电影在线| 最近综合中文字幕| 性高湖婬aaa片a片中国| 色就是色亚洲欧洲视频在线观看免费| 中国一区二区三区毛片| 特级天码a级毛片特黄| 日韩热码一区二区视频| 日韩动漫在线一区二区观看中文字幕| 亚洲欧美国产激情在线| 亚洲欧洲av一区二区三区| 91最猥琐眼镜摄影师国模丝丝| 明星mv换脸造梦视频大全| 日产岛国精品一区| 免费人成在线视频无码精品| 欧美一级欧美三级在线观看午夜精品| 91久久人澡人人添人人爽| 国产午夜亚洲精品不卡免下载| 思思99精品国产自在现线| 亚洲V日韩V精品v无码一区二区| 亚洲国产日韩欧美综合79146| 天堂在线中文在线最新版ll| 惠民福利国产高潮流白浆免费观看 | 亚洲高清国产精品熟女| 四虎影视永国产精品亚洲精品| 日韩欧美手机在线观看第一页| 米奇影院日韩免费| 97日本岛国动作片免费观看| 欧美性猛交xxxx免费看久久| 一级特黄无码毛片?v一区二区| 巨茎挺进李淑芬的体内视频| 西西大胆裸体4444WwW| 免费日本成人黄色| 13萝自慰喷白浆| 26uuu欧美日本在线播放| 国产成人黄色小视频| 亚洲毛片无码专区亚洲乱 | 成人区人妻精品一区二区不卡不卡| 国产91美眉黑丝在线观看| 亚洲无码天堂一区二区三区| 91久久久久成人无码一区二区| 一区二区三区四区精品乱码| 91香蕉污污视频| 国产亚洲A v手机在线观看| awyy爱我影院午夜| 97人妻碰碰碰久久久| 国产一区二区亚洲污在线观看| 高清在线观看最新电影和热门影视剧| 久久超碰亚洲综合| 国产精品18p年美女网站色免费| 欧美性猛交ⅹⅹⅹⅹ免费观看| 国产精品成人h片在线| 都是在线观看无码精品| 禁止18勿入国产精品视频| AV无码一区二区二三区| 饥渴少妇一区二区三区| www中文字幕日本| 日本韓國亞洲三級片一區二區三區| 国产成人无码AⅤ片| 久久日韩精品在线免费观看| 37pao成人国产永久免费视频| 国产精品免费线观看视频 | 一本大道香蕉视频大在线| 国产欧美一区二区精品在线观看| 快色1024美女插| 激情五月天婷婷在线视频 | 亚洲一区二区三区少妇无码| 国产专区亚洲欧美另类在线91| 妓女在线一区二区三区| 96久久精品人人妻人人搡| 成人视频网站在线观看| 日韩欧美在线精品| 午夜视频悠悠在线观看| 自拍高清无码三级| 色91日韩国产在线| 成品短视频app下载免费合集| 欧美极品少妇×xxxbbb| 国产欧美一区二区精品在线观看 | 久久影院国产精品视频| 噜噜免费在线欧美| 欧美videos另类精品| 97久久久人妻一区精久久| 亚洲av无码av男人的天堂| 日本一道本不卡免费| 国产美女一级做视须爱| 囯产精品久久久蜜桃的用户体验| 亚洲精品成人456在线播放| 香蕉视频最污的APP| 午夜爽喷水无码成人18禁三| 蝴蝶谷成人网| 精品成在人线aⅴ无码免费看| 免费国产成人高清在线视频| 奇米影视亚洲狠狠色| 让你变得红润中文字幕无码免费不卡视频 | 12周岁女裸体啪啪自慰网站 | 在线A级毛片无码免费真| 超碰国产人人草人人爽| 东京无码熟妇人妻AV在线网址| 久久精品国产亚洲av吃奶| 亚洲熟女系列精品之熟女中文字幕| 青青青国产在线91| 最近中文在线中文| 麻豆精品福利视频| 三根一起玩真的会坏掉| 伊人天堂在线视频短片| 未成满18禁止免费无码网站| 打扑牌不盖被子怎么办| 国产一国产一级无码秋霞影院| 亚洲妇熟XXXX妇色黄无码| 无码 综合 色 在线| 亚洲国产精品岛国片日本| 国产αV国片精品一区二区| 男人又大又硬又粗好爽视频| 国产真人高清无码| 国产农村乱对白刺激视频欧美性爱亚洲 | 可看黄的软件| 成人a免费α片在线视频网站 | 日本一级理论片公妇乱| yiren22亚洲综合高清一区| 绯色欧美日韩亚洲| 成人十八禁影院在线观看| 免费黄片大全www| 亚洲vs日本vs韩国vs国产| 又黄又粗暴120秒免费gif视频| 伊伊人成亚洲综合人网香| 成人精品视频免费国产网站| 亚洲日韩av在线不卡互動交流| 亚洲欧美人成在线观看| 了解最新在线一级毛片| 草B网免费视频试看| 国内精品成人在线观看| 丁香五月精品无码在线观看 | 国产在线高潮流白浆视频| 免费色网视频wwwyyy在线观看| 久久久久久一级毛片| 国产有码久久一区精品| 久草免费福利资源视频在线观看| 国一产区视频| 玖玖这里只有精品38| 天堂午夜成人福利在线| 国产精品嫩草影院99| 精品无码制服丝袜自拍APP欧美| 日韩 欧美 国产 综合 在线| 亚洲AV午夜成人无码网站色优| 在線播放人成午夜免費視頻| 国产中字幕幕久久| 妖精视频黄版下载| 91久久精品在这里色伊人| 另类小说图片区日本久久大视频| 亚洲综合天堂久久| 欧美日韩激情精品蜜桃 | 日韩一级二级无码视频| 亚洲无码一区二区三区在线观看| 优女AV成人手机在线电影| 久久精品香蕉| 亞洲日韓中文字幕無碼一區| AV无毒无缓冲在线| 国产精品亚洲精品久久品尚网| 国产美女嫩模午夜福利| 亚洲精品久久久久久国| AV三级高清在线观看| 欧美大屁股bbbbxxxx| 国产日韩av网址| 四虎永久在线精品免费视频观看| 午夜日韩高清在线观看| 亚洲欧美中文日韩另类特别| 日韩国产中文视频| 无码国模国产在线观看| 亚洲一区二区三区国产精品无码| 日韩人妻制服av| 99视久久精品人人槡人妻人人玩| 久久久久成人精品| 欧美少妇一级婬片免费放 | 欧美日韩精品黄漫在线观看| 97色老久久精品偷偷鲁| 亚洲一级a级片| 国产裸体美女视频| 成人免費一區二區三區| 色色资源网av一区二区三区 | 亚州高清无码做a免费观看| 在线观看免费播放黄污| 在线免费观看无码电影| 香蕉视频最污的APP| 国产精品自产拍在线观看涩| 国产一级片内射视频蜜臀| 三级片黄色国产在线| 日韩中文无码AV系列电影| 久久久久亚洲精品网站| 日韩精品亚洲专区在线观看| 亚洲aⅴ无码一区二区波多| 波多野结衣无码电影大长腿| 亚洲午夜精品久久久久久白云| 午夜人成免费视频观看| 国产精品一区女同日常| 欧美在线播放不卡| 久久国产福利国产秒拍大全| 少妇被粗大的猛烈进出的免费视频| 国产成人av一区二区三区在线 | 被操高潮在线| 亚洲三级毛片女人18水好多| 欧美性大战xxxxx久久久| 2012中文字幕视频大全| 激性欧美在线播激性欧美| 日本免费视频一区一区 | 午夜人成免费视频观看| 国产专区亚洲欧美另类在线91| 国产三级久久久精品麻豆 | 欧美麻豆婷婷丁香五月综合激情| 91香蕉污污视频| 亚洲国产人在线| 日本亚洲欧美激情| 91在线看片无码永久免费| 韩国人体vps国产在线视频| 天天爽夜夜春| 永久地址网址亚洲国产| 国产三级久久久精品麻豆| 日本高清不卡视频一区二区三区| 日韩精品aⅴ一区二区| 久久久久久亚洲精品美女| 久久久亚洲精品综合| 免费人成在线视频无码精品| 男人j桶女人p免费视频国产| 樱桃视频污污在线免费观看| av帝国在线无码影视观看网址| 岛国黄色在线观看视频用手扣下面| 欧美日韩精品成人在线| 男女高潮激烈免费观看中文 | 亚洲无码免费在线观看视频| 亚洲国产精品日韩区| 无码一区二区三区三级小说| 亚洲妇熟XXXX妇色黄无码| 色噜噜91成人网在线观看| 国产一区二区欧美专区| 亚洲欧美日本大片在线观看| 国产一级毛片亚洲一级毛片| a级国产片AV观看| 精品国自产拍天天青青草原| 青青草原上五月婷婷视频| 国产一二三区韩国女主播| 制服诱惑亚洲精品| a级别无码高清黄色电影| 亚洲国产中出无码| 亚洲成人áv在线一区久久精品| 日本AAA片爽快免费中国| 欧美人妻aⅴ中文字| 中国精品人妻| 激情亚洲激情五月| 人妻18毛片a级毛片免费看| 性感美女内射一区二区三区| Free熟女裸体舞HD| 亚洲av成人影院在线观看| 夜夜突夜夜澡人摸人人添| 麻豆Aⅴ传媒在线播放免费观看 | 欧美日韩?片一区二区久久精品| 小黄片污污在线观看| 无码国产福利αV私拍| 爆乳无码A∨一区二区三区| 美精品a∨在线观看| 黄豆奶视频亚洲一区手机版| 国产精品视频免看一级?| 国产男女爽爽爽爽爽免费视频| 午夜刺激爽爽视频免费观看| 国产精品视频播放器亚洲| 中文字幕一区二区在线不卡人妻| 97久久精品人人槡人妻人人玩| 亚洲人妻中文字幕精品一区人妻| 中文字幕ⅴ亚洲日本在线电影| 欧美一区二区三区久久综合W| 事物的秘密截取水中一段| 波多野结衣高潮喷水在线观看| 国产精品亚洲精品久久品尚网| ..日韩av毛片精品久久久| 免费VA国产欧美一区高清| 惠民福利国产高潮流白浆免费观看| 日本美女被男子插高潮啊啊啊| 国产一区二区丰满| 波多野结衣少妇的寂寞| 国产一级免费在线| 成人精品国产永久免费网站| 96久久精品人人妻人人搡| 国产午夜av在线秒播| 天天人人综合影院123| 亚洲经典一区二区的| 久久99久国产精品黄毛片色诱| 亚洲av午夜精品人妻| 最新国产无码在线直播| 國產精品免費在線播放| 夜夜夜夜夜精品一区二区| 久热国产v线观看视频| 日韩禁区视频在线观看直播免费| 欧美日韩a在线视频| 亚洲av午夜成人片精品| AV无码一区二区二三区| 2019久久视频只有精品| 尤物在线一区二区三区| 男女高潮激烈免费观看中文| 国产精品一区二区爱插插| 国产不卡一级无码视频| 亚洲色噜噜成人网站| 伊人天堂在线视频短片| 亚洲人成无码网WWW电影榴莲| 国产亚洲精品观看91在线| 午夜国产福利电影| 青青草国产免费久久久91| 在线观看国产美女主播| 最新日优天堂高清AV| 天堂а√8在线最新版在线 | H性视频在线播放| 国产精品18久久久久网站| 国产午夜福利影音资源| 欧美V国产V日本V| 亚洲欧美综合自拍20页| tubexxxxmovies中文巨大超乳在线播放 | 欧美视频区第一页| 久久精品国产亚洲av高清片五虎| 亚洲国产中文无码视频在线观看| 国产精品成人超久久久| 久久久亚洲欧洲日产国码二区| 欧美日韩第三页| 亚洲天堂中文字幕免费视频| 欧美浓毛大泬视频| 能看女生隐私的软件| 国产精品影院久久久| 精品动漫视频第一页| 国产黄色三级视频真人一级毛片| 久久精品人妻人人爽| 亚洲经典一区二区的| 四川丰满少妇被弄到高潮| 国产欧美欧洲一区二区日韩欧美在线观看 | 从厨房一路干到客厅怎么说| 欧美人妻aⅴ中文字| 久久免费视频2| 天天操人人爽| 日本一本一道av无码专区| 白云精品視頻國產專區| 婷婷无码在线视频| 800av在线免费观看| 三级片黄色国产在线| 婷婷综合网五月天丁香花| 免费视频一区二区三区在线观看| 久久精品日韩免费播| 亚洲日韩高清蜜芽在线观看| 一本大道香蕉视频大在线| 亚洲剧场午夜在线观看| 久久久精品欧美潮喷三级| 一捏胸一边打扑克全程视频 | 特黄真人毛片成人毛片| 婷婷六月激情在线综合| 日夜夜天天人人综合免费软件| 热久久天天拍天天拍热久久2018| 让人看了想要做的文章1000字| 国产精品97影院激情偷乱人伦一区| 伊人精品影视一二三区| 香蕉青草久久成人网| 日韩人妻一区| 国产下药迷倒白嫩丰满美女bd| 亚洲天堂精品福利国产一区| 亚洲日韩欧洲无码妖精视频| 亚洲一区二区三区红桃视频| 人妻诱惑中文字幕在线视频| av无码久久动态图| 亚洲天码中文字幕永久在线| 亚洲综合av 一区| av小说在线阅读| 9299yy看片婬黄大片软件| 亚洲vs日本vs韩国vs国产 | 国产视频不卡在线观看| 又粗又大又硬无码AV| 国产首页一区二区| 软萌小仙女自慰粉嫩小泬网站| 久久99日韩中文字幕| 99九九免费线视频精品| 成人a免费α片在线视频网站| 另类图片一区二区三区久久久| 日韩一区二区无码人妻视频| 伊人天堂在线视频短片| 天堂在线观看视频资源| 成年女人免费毛视频| 国产αV无码日韩αV无码网站| 国产午夜av在线秒播| 少妇无码av无码专区在| 午夜在线不卡精品国产秋霞| 一区二区日本网站| 中文字幕亚洲精品亚洲成人| 國產精華最好的產品人V| 麻豆文化传媒精品一区| 欧美同性猛男gayroom| 日韩人妻一区| 精品国产自在现偷99| 国产成人久久精品二区三区爱涩| 国产精品无码每日更新| 日韩欧美黄色一级视频| 91香蕉污污视频| 日本久久久久精品免费| 视频一区二区无码制服师生| 波多野结衣教师btsp| 欧美理论电影视频在线| 中文字幕第5页婷婷五月激情视频| 久热最新视频| 无码av不卡一区中文字幕| 亚洲国产a∨无码中文777| 最新欧美在线| 亚洲一区午夜福利久久丁香| 夜添久久精品亚洲国产精品| 99vv1在线看国产| 精品人妻无码一区二区三区换脸| 国产suv精品高清观看视频| 免费AV淫乱毛片| 产乳奶水文h男男喂奶| 日韩有无码网站一区二区| 亚洲第页国产精品| 九九国产成人精品免费视频| 粉嫩小泬久久久久久| 多男一女一级伦奷片免费观看| 成人免費一區二區三區| 欧美一区亚洲自拍| 国产奶水一区二区三区| 国产午夜福利精品一区二区久久| 国产成人精品亚洲A∨无人区一区| 亚洲欧美色图多人轮换| 爱操视频在线观看| 國產精華最好的產品人V| 日本久久久久精品免费| 无码一区二区三区av免费可不 | 极品少妇无码av专区在线观看| 精品人妻无码一区二区三区换脸| 在线视频手机在线亚洲欧美| 国产精品18p年美女网站色免费| 丁香色婷婷成人综合在线| 国产视频在线观看福利| 亚洲av午夜成人片精品| 国产精品视频播放器亚洲| 久久婷婷色香五月综合激情| 伊人精品影视一二三区| vr虚拟专区亚洲精品二区| 亚洲天堂视频在线观看视频| 日韩一区二区精品图片| 亚洲无码电影一区二区| 最近中文字幕2024免费看 | 在线观看国产美女主播| 欧美日韩精品综合在线一区| 国产成年女人毛片| 天天色婷婷色偷偷色网址| 国产精品嫩草影院99| 黄色网站高清无码在线观看| 女同一级毛片完整版观看| 亚洲一区二区电影视频| 国产成人aⅤ在线免播| 国产三级在线观看性色av| 日韩亚洲一区视频二区| 欧美日韩一区二区三区视频播放9| 色欲āⅤ蜜臀āV免费观看| 日本A精品一区二区三区久久| 亚洲妇熟XXXX妇色黄无码| a一级毛片久久免费| 在线观看视频中文字幕你懂的| 日韩欧美国产va在线观看| 免费中文熟妇手机在线播放| 影音先锋成人无码电影| 午夜国产在线观看| 夫の目の前侵犯新婚人妻| 欧日一道本dvd在线无码| 情爱视频国产在线观看| 亚洲欧美日韩精品综合| 精品高清国产日本| 特级A级黄片手机免费在线| 国产精品 日韩高清| 国产成人午夜精品影院游乐网| 亚洲 欧美 制服 动漫| 国外午夜视频网址| 午夜爱爱爱爱爽爽爽视频网站 | 最新国产精品欧美激情| 高清无码爆乳护士在线播放| 久久成人十八免费网站| 亚洲国产精品lv| 亚洲无码免费在线观看视频| 久久成人午夜视频| 欧美性爱在线视频播放| 国产真实乱XXX视频| 五月天综合网日本中文字幕网站| 中文字幕人妻熟人妻丝袜美| 无码一区二区久久中文| 国产欧美日韩在线网站| 亚洲一区二区三区国产精品无码| 亚洲午夜精品一区二区| 青青亚洲国产成一综合在线| 欧美亚洲日本天堂| 国产麻豆午夜在线| 少妇又色又爽又高潮在线看| 日出水了好深好涨h文| 麻豆91精品91久久久久久| 日韩性一区二区三区| 小苹果日本在线观看| 歐美日韓在線觀看視頻| 久久精品国产亚洲āv无码娇色| 狠狠干狠狠操视频| 久久久久成人精品| 久久不见久久见www电影 | 国产精品嫩草影院99| 无码高清传媒中文字幕在线| 午夜国产一区二区视频| 久久青青草国产第一页在线视频观看日韩11页| 经典国产三级在线观看| 最新69国产成人精品视频| 性色精品视频在线观看| 国产2019全部在线视频| 高清日韩精品更新视频| 91久久精品在这里色伊人| 亚洲AV日韩AV无码喷潮下载 | 国产欧美一区二区三区在线播放| 日本私人网站在线观看| AV无毒无缓冲在线| 丁香五月激情啪啪啪啪啪| 一级成人a免费视频| 武松潘金莲肉欲1一9老卫淑容| 午夜福利美女网站观看| 999色色一区二区网| 午夜视频悠悠在线观看| 国产精品永久免费无遮挡| 四川丰满少妇被弄到高潮| 男女羞羞视频网站免费| 美女极品内射17C蜜芽| 久久久亚洲精品国产亚洲áV女同| 无码极品人妻| 国产伦理在线一区二区三区四区| 四虎影院在线网址| 激情综合五月婷婷| 99re8精品热爱在线视频| 欧美色一区二区在线视频观看| 免费看片在线网站| 卡通动漫亚洲综合第一页| 久久久精品一区二区三区四季?V| 国内精品成人在线观看| 国产古装全黄A级视频一本久久精品一区二区 | 欧美成人丝袜videos| a√片AV大全在线观看不卡| 99热精品国产三级午夜免费观看| 亚洲 欧美 日韩 综合 中字| 国产精品日日摸免费看视频| 亚洲伊人a和欧美伊人和a| 欧美日韩偷拍一区二区三区蜜桃| 亚洲日韩欧美黑人专区| 最新国产精品欧美激情| 五月婷综合网| 国产精品无码一区二区三区aaa| 五月天一区二区三区精品无码视频| 9984四虎永久免费网站| 国产自慰无码一区二区三区| 亚洲日韩 偷拍 综合| 韩国午夜理伦三级好看| 中文字幕亚洲分区| 国产一级黄片视频播放| 五月六月婷婷| 蜜桃久久久亚洲精品| 国产日韩欧美电影在线观看| 国产精品久久久久综合| 国产成人啪一区二区的在线直播平台 | 老少配XXX性老少配| 大香蕉无码在线视频整| 亚洲欧洲一激情在线观看| a在线观看无码片| 最新亚洲中文字幕不卡| 国产成人无码精品露脸| 亚洲av成人影院在线观看| 一级熟女国内免费毛片| 亚洲国产激情无码久久久久久| 国产欧美在线一区二区视频| 国产人成高清在线99| 五月婷综合网| 日韩精品不卡国产| 奇米影视国产精品视频| 国产成人精品免费看片| 国产一区二区三区视频在线观看 | 国产福利酱国产一区二区| 巨胸喷奶水www久久久| 八戒成人影院午夜在线播放| 在线高清不卡日韩| 国产精品一区三区免费视频| 中文亚洲字幕福利12| 日韩欧乱色一区二区三区在线| 国产高清视频青青青在线| 国产一级特黄aaaa大片毛片| A v第三区亚洲狠狠婷婷综合久久 精品主播粉嫩在线无码视频 | 国产一区二区三区视频在线观看| 国产日韩欧美精品区性色 | 国产交换配乱婬视频a级| 日韩AV毛片在线观看免费| 日韩无码中文字幕亚洲视频| 婷婷六月激情在线综合 | 免费人成网站视频观看点击进入| 国产交换配乱婬视频a级| 优女AV成人手机在线电影| 国产最新婷婷综合一区| 日韩中文字幕免费| 性色精品视频在线观看| 无码播放一区二区精品视频久久久 | 亚州四虎精品久久久| 午夜欧美午夜激情在线观看| 久久久九色综合亚洲成色777| 一区二区三区啪偷拍视频| 精品精品国产自在久国产| 日本AAA片爽快免费中国| 神马午夜不卡在线观看| 香蕉国产偷在线| 99国产精品久久久久99打野战| 国产精品成人超久久久| 在线观看国产美女主播| 老司机精品一区二区三区在线| 亚洲电影国产成人| 欧美日韩国产午夜激情| 岛国无码不卡高清免费v| 他揉捏她两乳不停呻吟| 在线观看日本视频免费| 又大又猛又爽又黄视频| 中文字幕ⅴ亚洲日本在线电影| 日本免费视频一区一区| 亚洲a级一黄色对白片| 一本大道少妇中文字幕在线| 无码免费h成年在线观看h| 日本成人免费观看| 男人j桶女人p免费视频国产| 日韩欧美在线精品| 97国产最新免费公开视频| 日韩无码中文字幕亚洲视频| 日出水了好深好涨h文| 久久高清毛片一级| 日韩精品视频在线一区二区三区 | 日本老妇人乱xxy| 自偷自拍黄色影院| 男同无码岛国大片在线观看| 国产一级免费在线| 波多野结衣高潮喷水在线观看| 乱码视频在线播放专区| 亚洲妇熟XXXX妇色黄无码| 任我橹在线视频精品| 成人精品视频免费国产网站| 亚洲国产欧美日韩在线| 欧美亚洲成人精品在线| 日本欧美人一区二区三区| 国产精品一区二区国模私拍| 1314com免费网站免费观看| 96久久精品人人妻人人搡| 香蕉日韩av三区在线播放 | 情爱视频国产在线观看| julia中文字幕在线观看| 日韩精品专区一二三区| 999色色一区二区网| 日本在线一区中文在线69| 亚洲AV无码Aⅴ久久影视| 中国农村野战freesexvideo | 欧美性爱在线视频播放| 多男一女一级伦奷片免费观看| 91第四色国产在线视频| 成年人小视频免费在线观看| 国产福利久久精品免费一区二区区| 欧美午夜三级理论| 亚洲性色精品国产小电影| 日韩乱伦一二三区| 成人一区二区在线播放| 四虎综合九九色九九综合色| 欧美任你躁免费精品一区| 国产japanese在线播放| 国产成人啪精品网站| 在线播放免费人成日韩视频| 影音先锋亚洲熟女av网| 麻豆一區二區三區av| acg夜趣福利视频导航| 国产一级AA片在线视频| 韩国精品久久电影| 337p日本欧洲噜噜噜噜| 黄豆奶视频亚洲一区手机版| 成人国产片女人爽到高潮免费| 久久久久人妻一区精品性色av| 欧美a级久久大片| 5g天天看天天爽| 日韩高清av在线| 亚洲欧美在线不卡| 国产剧情久久久精品黄色一级| 中文字幕亚洲欧美色图| 精品久久中文无码| 亚洲国产精品毛片∧v卡在线| 久久精品香蕉| 日韩欧美国产精品久久久| 成熟孕妇裸体作爱视频| 女人被狂躁的高潮免费视频| 亚洲欧美在线不卡| 最近中文字幕2024免费看| 天天视频免费观看高清完整| 免费高清V片在线观看| 日韩欧美性爱视频免费在线乱码| 精品一区在线观看成人1| 大乳欲妇三级一区二区三区| 国产精品一进一出黄色| 美女一级视频在线看| 卡通动漫亚洲综合第一页| 老旺的大肉蟒进进出出bd高清版| 亚洲av无码乱码国产精品电影| 和两个男人玩3p好爽视频| 丰满的熟妇人妻中文字幕久久| 国产亚洲va在线电影中文字幕| AV无毒无缓冲在线| 国产三级久久久精品麻豆 | 欧美一级特黄高清视频| 无码成人AAAA级婬片| 辣妹子影院电视剧免费播放| 国产精品 日韩高清| 在线免费观看无码电影| 在线免费观看无码电影| 午夜成人性色欧美视频在线播放| 自慰流白浆一区二区三区| 成人在线观看日韩网站| 色欲a∨永久无码精品无码蜜桃| 高清在线观看无码国产| 日本A精品一区二区三区久久| 草莓视频app下载无限看| 中文字幕亚洲分区| 疯狂做受xxxⅹ高潮男女韩国| 国产视频不卡在线观看| 国产亚洲观看视频播放器| 奇米影视国产精品视频| h片在线观看免费无码网站| 激情在线日韩视频免费| 久久成人激情免费视频| 中文字幕人妻高清亂碼| 男男做a爱过程免费视频| 偷在线观看乱人伦| 手机能看的AV在线网站| 国产一级毛片亚洲一级毛片| acg夜趣福利视频导航| 亚洲AV午夜成人无码网站色优| 女人高潮潮叫免费视频| 97碰碰碰成年免费视频s| 国产最新精品亚洲不卡| 国产a∨精品一区二区久久| 免费看a级肉片| 无码中文字幕天天av天天爽| 亚洲av成年人在线观看| 日韩在线视频在线| 好大免费视频 在线播放| 99re在线这里只有精品| 男妓用舌头舔我高潮不退小说| 好吊色免费在线视频| 国产一区免费公开在线观看| 亚洲一区午夜福利久久丁香| 国产一级成人片免费视频野外| 亚洲香蕉在线观看| 欧美娇小XXXX性| 国产视频第四页在线观看| 一本久久?久久精品亚洲| 精品日韩aⅤ一区二区三区v免| 人成高清毛片亚洲| 国产三级自拍看亚洲A级一级毛片亚洲AV片| 欧美BBWHD大屁股丰满大屁股| 欧美 日本一区二区三区视频| 亚洲午夜精品?级久久久久| 2012中文字幕视频大全| 樱桃视频污污在线免费观看| 日本最新免费的一区二区三区| 亚洲欧洲成人在线一区二区| 狼人精品一区二区无码视频| 国产女主播三级在线观看| 亚洲无码一二三区| 自拍高清无码三级| 2019国产三级在线观看| 国语自产偷拍精品视频偷777| 大乳欲妇三级一区二区三区| 日韩高清av在线| 撕开她的乳罩慢慢揉捏亲吻视频| 国产精品网曝门在线一区 | 337p日本大胆欧美人术艺术68 | 成人?毛片免费全部播放| 美国一级欧美三级| 五月丁香激情视频在线免费观看| 中文无码?Ⅴ专区| 99亚洲一区二区三区在线观看| 在人线AV无码免费高潮喷水| 亚洲国产精品毛片∧v卡在线| 久久黄色片三级片黄色网址| 精品一区二区三区高清av| 亚洲日韩不卡在线| 亚洲伊人a和欧美伊人和a| 欧美亚洲精品福利免费专区| 久久久久久一区二区三区| 亚洲无码一区二区三区在线观看| 亚洲中文字幕无码手机版| 日本天堂视频在线观看| 国产一区二区丰满| 国产一区日韩二区无码| 欧美在线播放不卡| 日本日本中文熟妇在线视| 亚洲欧美久久精品中文字幕| 武松叼着潘金莲奶头的是谁扮演的| 国产在线看老王影院入口2021| 免费网站永久入口视频| 亚洲三级毛片女人18水好多| 国产激情二区欧美三区| 黄色网站高清无码在线观看| 欧美同性猛男gayroom| 色91日韩国产在线| 亚洲一级av在线天天看| 无码极品人妻| 日本极品白嫩asspics| 在线视频无码直播网站| 欧美视频在线观看一二三区| 日韩精品欧美成人国产不卡| 欧美任你躁免费精品一区| 蜜臀va亚洲va欧美va天堂| 久久精品这里都是精品免费| 97色伦亚洲自偷久久久| 日本AAA片爽快免费中国| 西西大胆无码少妇视频| 95视频高潮喷水| 日韩无码中文字幕亚洲视频| 国产欧美久久久精品影院| 欧美亚洲国产一区婷婷| 国产交换配乱婬视频a级| 国产一级高潮片免费| 韩国精品久久电影| 国产双飞自拍视频| 乱伦亚洲欧美中文| 欧美日韩精品成人在线| 国产专区亚洲欧美另类在线91| 男生女生差差差下载| 国产欧美日韩在线网站 | 亚洲风情无码五月天无码| 精品不卡电影AV| 欧美日韩中文字幕视频在线看| 日韩av一区二区三| 精选国产一区二区三区| 人妻va精品va欧美va图片 | 五月婷婷影院| 亚洲欧美国产中文视频一区色偷一区国产精品 | 无码无遮挡av毛片内射亚洲| 国产精品初高中害羞小| 日韩欧美一区二区免费| 无码 综合 色 在线| 亚洲精品成人片在线观看精品| 成人黄网站免费观看| 99re热播视频在线播放| 最近精品免费中文字幕在线观看| 日本暖视频一区二区三区| 特黄特色大片免费视频app| 影音先锋亚洲熟女av网| 1314com免费网站免费观看| 国产超碰97精品免费| 亚洲av秘无码国产精品一区| 国产成人精品免费看片| 青青热久免费精品视频在线播放| 在线观看尤物视频h| 苍井空一区二区波多野结衣| a在线观看无码片| 在线观看国产一区亚洲bd| 99热精品国产三级午夜免费观看| 99久久久久久国产精品婷婷综合| 欧美少妇一级婬片免费放 | 中文字菷夫前侵犯人妻| 日韩AV毛片在线观看免费| 特黄特色大片免费播放器试看 | 欧美午夜三级理论| 在线观看免费av无码不卡| 日本高清不卡全码视频| 亚洲AV无码Aⅴ久久影视| 99久久er热在这里只有精品99| 夜夜嗨视频福利写真精品网| 午夜国产一区二区视频| 我色综合亚洲欧美综合网| a∨色狠狠一区二区三区| 亚洲一级a级片| 久久久亚洲欧洲日产国码二区| 国产αV无码日韩αV无码网站| 乱人伦欧美在线| 91第四色国产在线视频| 麻豆国产免费| 在线免费亚洲欧美| 日本免AⅤ欧美在线观看| 欧美日韩偷拍一区二区三区蜜桃| 巨胸喷奶水www久久久| 我不卡老子影院午夜伦我不卡四虎| 中文字幕人妻精品一区| 久久一区欧美亚洲| 麻豆文化传媒精品一区| 黄色片免费在线观看视频| 婷婷综合久久中文字幕蜜桃三区| 特级特黄一级毛片免费| 超碰97国产欧美中文| 精品国产三级中文字幕| 影音先锋另类精品中文字幕| 久久成人激情免费视频| 一本一本久久a久久精品综合麻豆| 日韩亚洲欧美香蕉精品区| a级高清特黄色片| 中文字幕 久久小次郎| 不良网站在线播放假期av| 538国产亚洲欧美日韩精品| 另类小说图片区日本久久大视频| 99国产精品视频免费热播| 无码播放一区二区精品视频久久久| 神马电影超清画质完整版99精品| 亚洲性爱 国语对白| 久久不精品亚洲无码视频| 久久亚区不卡日本| 日本美女一区二区三区| 為您推薦精品国产日本欧美亚洲成品精品 | 在线视频高清无码| 欧美激情第5页拍拍| 亚洲春色AⅤ无码专区| 国产a不卡片精品免费观看| 国产视频91尤物在线观看| 四虎影院在线网址| 中文字幕 日韩 人妻 无码app | 久久www免费人成看片下载| 欧洲美熟女乱又伦AV色欲| 91大片淫黄大片在线天堂| 亚洲无码电影一区二区| 久久综合无码| 国产一区二区三区性爱视频| 国产日韩在线永久免费观看?v| 日本专区中文字幕在线有码| 国产又大又粗又黄专区| 日韩亚洲成人精品午夜在线 | 从厨房一路干到客厅怎么说| 欧美亚洲丁香五月社区| 国产女主播三级在线观看| 国产精品乱码一区二区三77 | 自慰流白浆一区二区三区| 国产成人不卡顿视频在线观看免费| 成人免费一区二区三区| 91不戴套国语对白在线观看| 久久精品日本理论片久久久| 黄网站在线永久免费视频A| 能看女生隐私的软件| 九九九国产这里只有精品视频| 亚洲九九黑人视频| 成人国产片女人爽到高潮免费 | 国产亚洲精品观看91在线| 去部队喂饱老公起不了床| 亚洲av秘 一区二区色| 国产精品淫荡人成视频免费vod| 国产一区二区三区中文字幕在线播放| 最新不卡AV网站| 女人被男人靠痛爽视频| 91福利在线观看视频| 无码?V蜜臀?Ⅴ色欲在线观看| 久久免費國產精品一區二區| 中文字幕有码av| 日本免费不卡视频| 亚洲午夜精品一区二区| 性变态sM虐女重口文| 激情亚洲激情五月| 16—17女人毛片毛片同性| 在线免费观看无码电影 | 777米奇影院在线观看| 国产成人午夜高清视频| 伊人久久九九热综合网| 午夜视频悠悠在线观看| 欧美日韩精品黄漫在线观看| 福利视频一区二区苏其| 日韩视频三区我爱我色成人网| 国内精品国产成人国产三级亚洲AV性爱 | 2021年亚洲国产中文名字幕| 免费一区二区视频| 亚洲电影国产成人| 欧美亚洲成人日韩| 惠民福利亚洲欧美日韩成人综合网| 国产演艺明星婬乱视频不卡| 久久亚洲中文字幕丝袜长腿| 午夜福利18以下勿进| 97久久精品人人槡人妻人人玩| 日韩亚洲成人精品午夜在线| 黑又大又粗又大欧美视频| 在线看片免费人成视频久试看| 久久www免费人成看片下载| 饥渴少妇一区二区三区| 亚洲精品成人片在线观看精品| 国产高清亚洲| 在线观看免费播放黄污| 精品久久久久久久久久久下载 | 一级a爱看片视频| 18成人片黄网站WWW| 国产三级久久久精品麻豆| 特一级黄色毛片| 蝴蝶谷成人网| 国产在线二区91| 亚洲A v片不卡无码久久蜜芽| 伊人思思久99久女女精品视频 | 亚洲美女在线视频专区| 无码人妻视频在线播放| 国产一级精品免费在线观看播放| 亚洲AV无码高潮蜜臀| 日韩女人毛片在线| 国产二区视频在线| 99精品视频只有精品高清6| 东京热久久精品视频| 亚洲av色片一区二区三区| 日本美女被男子插高潮啊啊啊| 8090yy亚洲人精品久久| 欧美日韩美女一级| 影音先锋亚洲欧美丝袜| 一级黄片视频直播无码| 亚洲综合无码色噜噜狠狠爱| 巨茎挺进李淑芬的体内视频| 午夜一区二区亚洲福利22| 无码AV啪啪一区二区三区| 无码中文字幕久久无码| 东京无码熟妇人妻AV在线网址| av鲁丝片一区二区免费| 天天爽夜夜春| 午夜dj在线观看高清亚洲| 最新av网站免费| 亚洲免费久久精品| 亚洲V日韩V精品v无码一区二区| 爱操视频在线观看| 欧美亚洲丁香五月社区| 欧美又黄又裸乳的视频| 亚洲最大av在线播放| 亚洲国产精品有声| 日韓亞洲不卡在線視頻中文字幕在線觀看 | 日韩亚洲成人精品午夜在线| 99久久国产综合精品麻豆66| 不卡日本免费A∨片免费| 精品人妻系列无码天堂| 九色在线亚洲自拍| 欧美日韩激情精品蜜桃| 中文字幕版免费电影网站| 国产视频91尤物在线观看| 亚洲无码动漫在线观看视频| 亚洲精品国产看片| 国产麻豆午夜在线| 国产2o岁美女一级毛片| 午无影院免费看视频| 猛男的大粗鳮巴1久久精品综合热久久| 亚洲三级毛片免费视频国语| 国产亚洲vs无码中文日日| 国产激情在线观看播放| 在线日本看片免费人成视久网 | 免费人成网站视频观看点击进入| 男生女生差差差下载| 精品欧美在线视频| 亚洲精品1卡2卡三卡4卡乱码| 99精品国产精品亚洲一级毛片| 视频一区二区无码制服师生| 腿高H视频在线观看| 中文无码?Ⅴ专区| 国产一区二区高清视频在线观看| 2020国产精品无码色在线| 日本A级毛不卡一区二区三区| 久久精品国产欧美高潮| 国产成人综合久久久久久| 一级欧美午夜影院| 亚洲AV日韩AV无码喷潮下载| 国产裸体美女视频全黄丝袜| 久久偷拍高潮免费视频| 中文字幕AV有码在线| 午夜香蕉69久久| 偷拍日韩中文字幕欧美| tubexxxxmovies中文巨大超乳在线播放| 欧美日韩视频国产| 欧美日韩精品一品二区三区| 天堂а√在线最新版在线8| 黄网站男人天堂| 国产精品视频免看一级?| 亚洲无码 一区二区三区 波多野结衣| 国产精品一区二区爱插插| 妓女在线一区二区三区| 在线观看国产一区亚洲bd| 亚洲高清视频日本在线| 91粉色视频在线观看| 亚洲国产日韩精品二三四区91| 国产精品淫荡人成视频免费vod| 噜噜免费在线欧美| 一本久道久久综合婷婷五月| 手机在线看免费毛片| 疯狂做受xxxⅹ高潮男女韩国| 蜜臀久久人妻一区二区| 99视久久精品人人槡人妻人人玩| 日韩av一区二区三| 每日更新亚洲成a人v欧美综合在线| 在线一级观看免费观看大全| 亚洲精品第一国产综合精品。 | 99RE6国产精品视频免费观看| 国产一级特黄片亚洲av禁18成人毛片一级无码 | 亚洲国产成人资源在线| 欧美久久综合九色综合| 國產真人無遮擋作愛免費視頻| 亚洲最大色大成www网站| 中文字幕有码视频不卡| 国产一级精品免费在线观看播放 | 中文字幕黄色不卡| 中文久久中文字幕| 水中色av综合站| 亚洲日韩av在线不卡互動交流| 国产超清无码在线无删减| 校花高潮潮喷丁香婷婷综合久久| 四虎国产亚洲清纯最新无码专区| 国产av夜夜爱夜夜操| 免费a级毛片av无码久久精品中文字幕| 国产αV国片精品一区二区| 亚洲AV无码一区二区久久观看 | 欧美国产日产一区二区三区| 精品中文字幕一区二区三| 人成高清毛片亚洲| 日本美女性爱高清在线| 国产人成高清在线99| 亚洲欧洲国产激情在线| 97久久精品人人槡人妻人人玩| 欧美国产日韩久久| 免费人成在线视频无码精品| 欧美日韩在线精品一区二区三区激情综合 | 5g天天看天天爽| 男人天堂社区| 2021无码电影在线| 亚洲日韩精品中文hd无码不卡| 日韩欧美黄色一区二区| 天天狠天天插| 一本大道少妇中文字幕在线| 国产精品午夜一级毛片无码| 亚洲欧洲av一区二区三区| 日韩一区无码精品| 国产精品视频aa| 四虎国产在线视频网站| 久久青青草国产第一页在线视频观看日韩11页 | 日韩很黄很污的视频| 国内盗摄视频一区二区三区| 久久国产频频| 久久老子午夜精品无码怎么打| 97久久精品人人槡人妻人人玩 | 东北老熟女高潮大声叫痒视频| 亚洲vs日本vs韩国vs国产| 制服絲襪亞洲天堂歐美| 亚洲精品中文字幕乱码4区| 国产亚洲综合欧美一区二区| 亚洲AV无码专区在线观看网页| 免费人成网站视频观看点击进入 | 亚洲色噜噜成人网站| 91精品國產綜合久久婷婷香蕉| 亚洲中文在线精品国产| 午夜福利18以下勿进| 三根撑到极致哭着求饶H| 国产一区二区欧美专区| 卡通动漫一区二区亚洲欧美| 午夜爽喷水无码成人18禁三| 中文字幕码一二三区在线| va亚洲v专区在线| 亚欧洲乱码视频在线专| 欧美高清在线精品一区| 久久婷婷五月综合色丁香花| 国产成a人大片在线观看| 亚洲V日韩V精品v无码一区二区| 欧美亚洲色图小说| 一二三四影院网在线观看免费互動交流| 人妻被按摩到潮喷中文字幕久久 | 国产精品亚洲专区无码WEB| 91精品国产?ⅴ在线观看入口| 亚洲一区二区AV人片在线观看| 波多野结衣系列亚洲一区二区| 恩好大好紧好爽快点秀婷| 亚州av一在线影视| 在线一区二区三区国产| 日本私人网站在线观看| 午夜爽喷水无码成人18禁三| 欧美日韩精品区久久久| 狼友精品在线观看| 日本免费高清一区二区三区视频| 国产激情自拍亚洲性片| 精品不卡电影AV| 乱码视频在线播放专区| 亚洲av无码乱码国产精品电影| 国内精品大屁股白浆一区二区| 亚洲欧美日韩国产另类丝瓜| 女人被狂躁到高潮20次| 久久午夜福利电影| 亚洲激情人妻| 国产精品久久久久久久美男| 性一交一乱一猛一从视频| xxxxx免费视频在线观看| 欧美国产美女在线观看| 午夜福利久久精品2023| 无码高清传媒中文字幕在线| 一级毛日本特黄网站| 美女黄免费网站| 亚洲国产国产一区二区三区| 日本一本a不卡高清| 国产午夜亚洲精品不卡免下载| 精品丝袜一区不卡| 99视久久精品人人槡人妻人人玩| 国产对白在线观看精品| 中文字幕久久电影免费。| 成人又色又爽的无码网站| 五月丁香激情视频在线免费观看| 午夜日韩高清在线观看| 国产精品一区免费在线观看| 亚洲一区二区另类视频| 三根一起玩真的会坏掉| 天堂午夜成人福利在线| 欧洲一级黄色| 亚洲国产精品日韩区| 日韩AV天堂久久无码| 青青青青青国产免费观看| 欧美日本韩国精品一区二区| 美女一级视频在线看| 特黄特级毛片免费视| 亚洲欧美色图多人轮换| 日本久久9网站| 欧美娇小XXXX性| 黑人巨大欧美一区二区视频| 亚州av一在线影视| 日本胸大公妇被公侵犯中文字幕小说| 亚AVAV天AV在线不卡| 西西4444www无码国模吧| 国产在线一区二区三区免费大片| 无码有码中文人妻在线| 欧美在线一级va免费观看互動交流| 日产无人区一线二线三线观看 | 神马老子影院午夜伦| 亚洲性爱熟妇人妻厨房作爱| 国产又色又爽又黄刺激的大片 | 国产福利在线观看视频观看互动交流 | 亚洲欧洲成人在线一区二区| 免费无码又爽视频在线观看| 一级毛日本特黄网站| 久久成人激情免费视频 | 久久偷拍高潮免费视频| 欧美日韩精品区久久久| 久久久精品欧美潮喷三级| 亚洲最大色大成www网站| 亚洲手机无码电影在线| 精品久久久久成人无码免费| 国产成人午夜精品影院游乐网| 无码免费h成年在线观看h| 午夜片无码ab区在线观看| 成人性视频免费网站在线| 男男做a爱过程免费视频| 91久久人澡人人添人人爽| 久久中文字幕久久无码最熱門最齊全電影! | 欧美日韩?片一区二区久久精品| 久久精品这里都是精品免费| 青草久久国产99超碰| 日本亚洲欧美激情| 亚洲区区区久久久精品| 亚洲国产欧美一二三四区| 国产女人高潮抽搐喷水视频免费 | 91久久国产丁香| 亚洲最大日夜无码中文字幕| 亚洲?V高清一区二区三区| 久久久亚洲欧洲日产国码二区| 中文亚洲字幕福利12| 三级视频黄色| 亚洲一区二区AV人片在线观看| 男人天堂社区| 1024手机视频免费观看| 疯狂做受xxxⅹ高潮男女韩国| 成人免费一区二区三区| 色综合福利视频一区二区三区| 国产欧美曰韩久久久 | 无码成人AAAA级婬片| 西西大胆无码少妇视频| 伊人久久少妇| 国产精品V?在线播放我和闺蜜| 国产a∨精品一区二区久久| 自偷自偷学生自拍另类图片| 被伴郎的内捧猛烈进出h视频| 火辣辣福引导内江市welcome| 亚洲日韩国产福利专区| 三级片一级中文版| 亚洲国产a∨无码中文777| 亚洲精品十八禁在线| 日韩欧美精品一区在线播放| 成人午夜福利视频中文网| 人妻公交被从后面进去| 精品国产三级国产av中文| 色哟哟哟www精品视频观看软件| 97色伦综合在线欧美视频| 欧美十八禁柔术极品xx| 国产一级 级内射视频网站| 老少配XXX性老少配| 亚洲国产精品亚洲人成| 美女性一区二区三区| 免费高清不卡视频日本| 99久久中文字幕日本伦理| 日韩国产白浆| 国产日韩精品一区二区在线观看| 91在线看片无码永久免费| 宝宝~腿趴开一点就不会疼男男| 一级毛片免费不卡| 性变态sM虐女重口文| 精品久久久久久久久久久下载| AA在线观看视频免费观看| 亚洲最大av在线播放| 国产在线高潮流白浆视频| 久久无码一级午夜福利免费区| 国产剧情一区在线| 欧美一级在线观看| 国产乱子轮XXX农村| 国产无码一区二区二区二区 | 日韩精品专区一二三区| 九色视频免费看亚洲国产一久网摸| 免费福利午夜视频| 久久国产精品99丁香婷婷| 欧日一道本dvd在线无码| 日本亚洲中文字幕久久久 | 9lporm自拍视频区在线| 激情五月亚洲色图| 国产亚洲视频在线观看视频在线| 久热精品在线视频7| 欧美精品福利视频一区二区| 天天摸夜夜添夜夜添| 性一交一乱一倫一视频| 国产cd安德另类视频| 久久www免费毛片| 欧美日本一道一区二区三区| 在线观看尤物视频h| 欧美日韩精品区久久久| 久久精品一区二区三区色欲视频| 中文字幕版免费电影网站 | 免费看裸裸体美女啪啪无遮挡| 日本三级带日本三级带黄首页| 中文国产无码日韩 | 丁香五月激情啪啪啪啪啪| 精品国产一区二区三区a∨| 老伦熟女一区二区三区红豆 | 多男一女一级伦奷片免费观看| 日本一区二区免费视频播放| 三根撑到极致哭着求饶H| 中文字母色婷婷| 国产在线h视频| 国产激情精品久久久一区| 一级视频在线播放| 亚洲欧美国产中文视频一区色偷一区国产精品 | 在线观看免费av无码不卡| 大龟慢慢挺进柔佳身体| 国产精品一区女同日常| 午夜日韩高清在线观看| 欧美高清黄片永久免费| 韩国人体vps国产在线视频| 欧美丰满大乳大屁股a片| 日本免费不卡视频| 久热国产v视频在线观看| 亚洲AV午夜成人无码网站色优 | 特黄特色大片免费播放器试看| 丰满的熟妇人妻中文字幕久久| 亚洲国产精品欧美日韩久久久| 国产成人91高清精品| 亚洲aⅴ无码一区二区波多| 日韩亚洲一级黄大片| 欧美亚洲精品二区久久久| 国产成人免费高清Av多毛熟女| 日韩欧美国产va在线观看| 亚洲精品人成三区| 国产剧情无码视频在线观看 | 激情在线日韩视频免费| 性生大片免费观看网站精彩| 色就是色亚洲欧洲视频在线观看免费| 一本大道香蕉久97在线视频| AV无毒无缓冲在线| 日本久久久久精品免费| 成品人短视频软件大全免费下载| 亚洲剧场午夜在线观看| 在线看片网站| 麻豆文化传媒精品一区| 亚洲三级毛片午夜免费观看| 亚洲av成人无码日韩久久精品| 欧美牲交A欧美牲交A图片| 99RE6国产精品视频免费观看| 日韩专区无码一区二区三区视频| 日韩啪啪国产欧美| 久久国产乱子伦精品免费草莓 | 91精品动漫在线观看| 日本美女一区二区三区| 久久精品国产亚洲av高清片五虎 | 日韩天天综合网| 国产αV国片精品一区二区| 亚洲?V无码一区二区乱子伦| 亚洲电影国产成人| 国产欧美91日韩在线观看| 被主人各种玩具姿势c到爆 | 国产传媒视频在线观看| 久久亚洲精品中文字幕欲求不满| 麻豆精产国品一二三产区别| 欧美精品亚洲精品日韩精品一 | 高清无码爆乳护士在线播放| 国产av日韩精品一区二区| 欧美真做精品三级免费观看| 日本不卡一区更新二区| 夜夜嗨亚洲国产糸列久久精品| 男生女生差差差下载| 性开放的交换艳妇俱乐部小说| 日韩很黄很污的视频| 欧美熟妇与黑人777ey| 萌白酱喷水视频一区二区| 久久狠狠中文字幕| 国产日韩在线另类第八页| AV无码一区二区二三区| 天天色婷婷色偷偷色网址| 精品国产自在在线| 欧美日韩午夜电影| 国产精品初高中害羞小| 年轻的妺妺HD高清中文| 被操高潮在线| 歐美日韓在線觀看視頻| 中文字幕第一页无码久久网| 亚洲女教师丝祙在线播放| 久久麻豆亚洲av电影| 久久AV红桃秘一区二区| 成都私人家庭影院的推荐理由韩国| 日韩欧美三级播放| jiuse国产精品视频| 久青青国产综合视频在线观看 | 无码国模国产在线无码精品 | 特黄真人毛片成人毛片| av福利网址网站| 天天摸夜夜添夜夜添| 在线视频手机在线亚洲欧美| 精品高清国产日本| 在线观看黄色软件| 日韩精品有码一区二区三区| 国产av旡码专区亚洲a| 日本a在线免费观看| 在线观看国产一级黄片视频| 国产精品少妇一区二区| 欧美大属黑人吊粗大| 白丝在线喷水免费| 女人被男人靠痛爽视频| 国产精品V?在线播放我和闺蜜| 激情五月婷婷无码电影| 波多野结衣教师btsp | 国产双飞自拍视频| 日韩一级在线视频| 国产中文第一页在线播放| 无码AV啪啪一区二区三区| 喷水欧美磁力免费第3页欧美| 国产亚洲午夜影视在线观看| 欧美久久精品成人| 亚洲乱码v中文一区二区| 一本大道少妇中文字幕在线| 日韩欧美在线观看17p| 国产欧美日韩麻豆三级| 久久综合中文字幕日韩精品| 亚洲青青青网伊人精品| 中文字幕一区二区日韩精品| 亚洲mv无码播放| 91中文字幕国产| 伊人97超碰在线观看| 思思99精品国产自在现线 | 咪咪在线视频| heyzo无码作品在线观看| 国产成人啪一区二区的在线直播平台 | 高潮胡言乱语熟女国产| 亚洲国产精品毛片∧v卡在线| 国产A精品一区二区三区不卡| 无码国模国产在线无码精品 | 91精品手机国产在线能| 日韩av在线播放乱码| 久久综合网久久综合爱| 日韩精品一区二区三区四茋| 亚洲中文无码不卡| 手机最新入口婷婷激情免费| 香蕉视频免费看| www视频在线观看视频| 国产 香蕉 av 在线| 国产毛片精品av一区二区| H性视频在线播放| 真正国产ts人妖系列视频| 亚洲 欧美 日韩 一区二区三区在线 | 欧美日韩精品一品二区三区| 久久久成人999亚洲区美女| 亚州一极生活片| 中日韩欧美一中文| 国产精品欧美激情aaaa| 久久亚洲精品中文字幕欲求不满 | 好吊色免费在线视频| 9国产成人无码H在线观看网站| 久久国产午夜精品一区二区三区| 成人精品视频免费国产网站| 亚洲欧美日本日韩在线| 国产真人无码作爱视频免费久| 老怡红院av在线永久免费| 一级成人a免费视频| 火辣辣福引导内江市welcome| 国产精品久久久久免费A下载 | 翁熄乩伦小说32篇| 办公室强伦片免费看|