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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ESP32 VHCI实现BLE广播,就是这么神奇

發布時間:2024/1/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP32 VHCI实现BLE广播,就是这么神奇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

零. 聲明


本專欄文章我們會以連載的方式持續更新,本專欄計劃更新內容如下:

第一篇:ESP-IDF基本介紹,主要會涉及模組,芯片,開發板的介紹,環境搭建,程序編譯下載,啟動流程等一些基本的操作,讓你對ESP-IDF開發有一個總體的認識,比我們后續學習打下基礎!

第二篇:ESP32-IDF外設驅動介紹,主要會根據esp-idf現有的driver,提供各個外設的驅動,比如LED,OLED,SPI LCD,TOUCH,紅外,Codec ic等等,在這一篇中,我們不僅僅來做外設驅動,還會對常用的外設總線做一個介紹,讓大家知其然又知其所以然!

第三篇:目前比較火熱的GUI LVGL介紹,主要會設計LVGL7.1,LVGL8的移植介紹,并且也會介紹各個組件,知道原理后,最后,我們會推出一款組態軟件來構建我們的GUI,來提升我們的效率!

第四篇:ESP32-藍牙,熟悉我的,應該都知道,我即使從事藍牙協議棧的開發的,所以這個是我們獨有的優勢,在這一篇章,我們會提供不僅僅是藍牙應用方法的知識,也會應用結合藍牙底層協議棧的理論,讓你徹底從上到下打通藍牙任督二脈!

第五篇:Wi-Fi介紹,熟悉我的,應該也知道,我們也做過一款sdio wifi的驅動教程板子,所以在wifi這方面我們也是有獨有的優勢,在這一篇章,我們同樣不僅僅提供Wi-Fi應用方面的知識,也會結合底層理論,讓你對Wi-Fi有一個清晰的認知!

另外,我們的教程包括但是不局限于以上篇章,為了給你一個更好的導航,以下信息尤其重要,請詳細查看!!

------------------------------------------------------------------------------------------------------------------------------------------

購買開發板(點擊我)

ESP32系列文章目錄(點擊我)

Github代碼倉庫(點擊我)

藍牙交流扣扣群:539357317

微信公眾號↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

????

------------------------------------------------------------------------------------------------------------------------------------------

一. 整體介紹

此文章主要介紹基于ESP32 VHCI的架構實現BLE的搜索,也就是不使用默認的Host API,自己編寫一部分代碼來實現功能,具體ESP32的架構如下圖所示:

那我們做的事情是什么呢?我們相當于把默認的Host拿掉,也就是如圖所示的bluedroid部分,寫Host部分的廣播實現

此文章算是熟悉一個VHCI的開發模式,不管對于默認的Host(Bluedroid/nimble)甚至自己移植進來一個Host都有很大的幫助,我就算起到一個拋磚引玉的作用吧!

二. menuconfig實現

我們雖然不用ESP32的默認Host,但是我們要用他默認的Controller,所以還是要配置一下的,一共三個地方需要特別留意一下,其他保持默認,如下圖所示:

1.Bluetooth controller mode

2.HCI mode

3.bluetooth Host

三. 程序實現

1.初始化NVS

/* Initialize NVS — it is used to store PHY calibration data */ esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {ESP_ERROR_CHECK(nvs_flash_erase());ret = nvs_flash_init(); } ESP_ERROR_CHECK( ret );

這一段必須要加上,主要是用于存儲PHY的信息,否則無法正常使用controller

2.初始化controller,注冊Controller的callback函數實現

esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();ret = esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT); if (ret) {ESP_LOGI(TAG, "Bluetooth controller release classic bt memory failed: %s", esp_err_to_name(ret));return; }if ((ret = esp_bt_controller_init(&bt_cfg)) != ESP_OK) {ESP_LOGI(TAG, "Bluetooth controller initialize failed: %s", esp_err_to_name(ret));return; }if ((ret = esp_bt_controller_enable(ESP_BT_MODE_BLE)) != ESP_OK) {ESP_LOGI(TAG, "Bluetooth controller enable failed: %s", esp_err_to_name(ret));return; }esp_vhci_host_register_callback(&vhci_host_cb);

此段我們在介紹esp32 controller api的時候已經詳細介紹,看API名字也知道主要在做什么事情,沒什么難度,我們來看下注冊給controller的callback的實現

static void controller_rcv_pkt_ready(void) {printf("controller rcv pkt ready\n"); }static int host_rcv_pkt(uint8_t *data, uint16_t len) {printf("host rcv pkt: ");for (uint16_t i = 0; i < len; i++) {printf("0x%02x ", data[i]);}printf("\n");return 0; }static esp_vhci_host_callback_t vhci_host_cb = {controller_rcv_pkt_ready,host_rcv_pkt };

以上代碼,我們接受到數據,并沒有做什么事情,只是打印下數據的hex而已!

3.實現HCI 的廣播

while (1) {bool send_avail = false;vTaskDelay(1000 / portTICK_PERIOD_MS);send_avail = esp_vhci_host_check_send_available();if (send_avail) {switch (cmd_cnt) {case 0: hci_cmd_send_reset(); ++cmd_cnt; break;case 1: hci_cmd_send_ble_set_adv_param(); ++cmd_cnt; break;case 2: hci_cmd_send_ble_set_adv_data(); ++cmd_cnt; break;case 3: hci_cmd_send_ble_adv_start(); ++cmd_cnt; break;}}printf("BLE Advertise, flag_send_avail: %d, cmd_sent: %d\n", send_avail, cmd_cnt); }

在代碼中,我們不去解析hci event的parse,只是一個個命令的發送hci command來實現廣播,此部分也是我們本文章的重點,下面我就來一一詳細介紹下

3.1 hci廣播的流程

如果不考慮整個藍牙Host的健壯性以及可用性,只考慮用ESP32 VHCI架構實現BLE廣播功能,那么其實4個步驟就能實現,分別如下:

1) 發送HCI reset command

2) 發送ble set adv param,也就是設置廣播的參數

3) 發送ble set adv data,也就是設置廣播的數據

4) 發送ble adv start command,也就是開啟廣播

在后面的小節我們再一一介紹下每個command的格式以及作用!

3.2 hci command的格式

我們知道了步驟,并且知道了發送哪些command,但是command的格式是什么呢?那么這個算是一個比較大的話題,牽扯到藍牙core spec hci章節的內容,我們本章本著應用文章,此部門我們簡單的一筆帶過,如果想徹底了解內部原理,那么我建議你看下這兩篇文章:

藍牙HCI command/event/acl/sco格式介紹_Wireless_Link的博客-CSDN博客

藍牙傳輸介質Transport UART H4(RS232)介紹_Wireless_Link的博客-CSDN博客_藍牙通過什么介質傳輸

以上兩篇文章,分別介紹H4以及HCI的格式,好了,我們回歸主題來介紹下HCI command的格式。

Opcode:每個命令被分配一個2字節的操作碼(opcode),用來唯一地識別不同類型的命令,操作碼(opcode)參數分為兩個字段,稱為操作碼組字段(Opcode Group Field, OGF)和操作碼命令字段(Opcode Command Field, OCF)。其中OGF占用高6bit字節,OCF占用低10bit字節。

一共有以下幾組OGF:

1)Link Control commands, the OGF is defined as 0x01.鏈路控制OGF,也就是控制藍牙芯片跟remote溝通的命令

2)Link Policy commands, the OGF is defined as 0x02,鏈路策略OGF,也就是寫一些Policy,比如轉換角色等

3)HCI Control and Baseband commands, the OGF is defined as 0x03,控制本地芯片跟基帶的OGF。比如reset本地芯片等。

4)Informational Parameters commands, the OGF is defined as 0x04。讀取信息的OGF,比如讀取本地芯片的LMP版本呢,支持的command,藍牙地址等,

5)status parameters commands, the OGF is defined as 0x05,狀態參數OGF,比如讀取RSSI等。

6)Testing commands, the OGF is defined as 0x06,測試命令的OGF,比如讓芯片進入測試模式(DUT,device under test)

7)LE Controller commands, the OGF code is defined as 0x08,BLE 的comand

8)vendor-specific debug commands,the OGF code is defined as 0x3F,此部分是vendor定義的,也就是芯片廠商為了擴展core文檔的HCI command定義

OCF眾多,在每個OGF下都有一堆的OCF定義

Parameter Total Length:后續參數的長度

Parameter:每個command的para不同

3.3 hci reset命令

hci command的命令如下:

OGF是0x03,OCF是0x03

hci reset作用如下:

The HCI_Reset command willreset the Controller and the Link Manager on the BR/EDR Controller or the Link Layer on an LE Controller. If the Controller supports both BR/EDR and LEthen the HCI_Reset command shall reset the Link Manager, Baseband and Link Layer. The HCI_Reset command shall not affect the used HCI transport layer since the HCI transport layers may have reset mechanisms of their own. After the reset is completed, the current operational state will be lost, the Controller will enter standby mode and the Controller will automatically revert to the default values for the parameters for which default values are defined in the specification.

Note: The HCI_Reset command will not necessarily perform a hardware reset. This is implementation defined.

The Host shall not send additional HCI commands before the HCI_Command_Complete event related to the HCI_Reset command has been received。

函數實現如下:

/* HCI Command Opcode group Field (OGF) */ #define HCI_GRP_HOST_CONT_BASEBAND_CMDS (0x03 << 10) /* 0x0C00 */ #define HCI_GRP_BLE_CMDS (0x08 << 10)/* HCI Command Opcode Command Field (OCF) */ #define HCI_RESET (0x0003 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)uint16_t make_cmd_reset(uint8_t *buf) {UINT8_TO_STREAM (buf, H4_TYPE_COMMAND);UINT16_TO_STREAM (buf, HCI_RESET);UINT8_TO_STREAM (buf, 0);return HCI_H4_CMD_PREAMBLE_SIZE; } static void hci_cmd_send_reset(void) {uint16_t sz = make_cmd_reset (hci_cmd_buf);esp_vhci_host_send_packet(hci_cmd_buf, sz); }

組成的數據格式是:0x01 ,0x03 0x0c 0x00

3.4 hci set adv param命令

hci command的格式如下:

OGF=0x08,OCF=0x06

我們來看下這個command的格式:

這個命令是設置廣播的參數,其中參數如下:

Advertising_Interval_Min:廣播的最小間隔

Advertising_Interval_Max:廣播的最大間隔

設備每次廣播時,會在3個廣播信道上(根據設置的channel map而決定哪個信道)發送相同的報文。這些報文被稱為一個廣播事件。除了定向報文以外,其他廣播事件均可以選擇“20ms ~ 10.24s”不等的間隔。兩個相鄰廣播事件之間的時間稱為廣播間隔。

但是,設備周期性的發送廣播會有一個問題:由于設備間的時鐘會不同程度的漂移,兩個設備可能在很長一段時間同時廣播而造成干擾。為防止這一情況的發生,除定向廣播之外的其他廣播類型,發送時間均會被擾動。實現該擾動的方式為,在上一次廣播事件后加入“0 ~ 10ms”的隨機延時。這意味著,即使兩個設備廣播間隔相同,并在相同信道及時間點上發送造成了沖突,但它們發送下一個廣播事件時也會有很大可能不再沖突。

所以,兩個相鄰的廣播事件的之間的時間間隔(T_advEvent)為:T_AdvEvent = advInterval + advDelay

其中,advInterval 必須是“0.625ms”的整數倍,范圍是“20ms ~ 10.24s”之間。對于可掃描非定向廣播和不可連接非定向廣播這兩種廣播類型,該值最好不小于100ms,即(160個0.625ms)。advDelay是Link Layer(鏈接層)分配的一個偽隨機數,它的范圍為“0 ~ 10ms”。

廣播包的截圖如下:

當然,實際設置過程中沒有廣播間隔參數,而是設置Advertising_Interval_Min(最小廣播間隔)和Advertising_Interval_Max(最大廣播間隔)這兩個參數來調整廣播間隔,它們都是以“0.625ms”為單位,如果要固定廣播間隔為某一個值,只需要將這兩個參數設置為同一個有效數值即可。

Advertising_Type:廣播類型

一共分為四種廣播類型:

1)可連接的非定向廣播(Connectable Undirected Event Type):這是一種用途最廣的廣播類型,包括廣播數據和掃描響應數據,它表示當前設備可以接受其他任何設備的連接請求。

鑒于此種廣播類型用的最多,下面我們來討論一下此類型下廣播事件中廣播包的發送情況,另外要注意在一個廣播事件中,前一個“ADV_IND PDUs”的開始到相鄰的下一個“ADV_IND PDUs”的開始處的時間要小于等于 10ms :

第一種情況:僅僅有廣播 PDUs 。截圖顯示如下:

第二種情況:在廣播事件的中間有“SCAN_REQ”和“SCAN_RSP PDUs”。截圖顯示如下:

第三種情況:在廣播事件的結尾有“SCAN_REQ”和“SCAN_RSP PDUs”。截圖顯示如下:

第四種情況:在廣播事件的中間接收到“CONNECT_REQ PDU”的情況。截圖顯示如下:

此情況下,廣播事件會關閉,不會繼續在下一個信道上廣播。

2)可連接的定向廣播(Connectable Directed Event Type):定向廣播類型是為了盡可能快的建立連接。這種報文包含兩個地址:廣播者的地址和發起者的地址。發起者收到發給自己的定向廣播報文之后,可以立即發送連接請求作為回應。

定向廣播類型有特殊的時序要求。完整的廣播事件必須每3.75ms重復一次。這一要求使得掃描設備只需掃描3.75ms便可以收到定向廣播設備的消息。

當然,如此快的發送會讓報文充斥著廣播信道,進而導致該區域內的其他設備無法進行廣播。因此,定向廣播不可以持續1.28s以上的時間。如果主機沒有主動要求停止,或者連接沒有建立,控制器都會自動停止廣播。一旦到了1.28s,主機便只能使用間隔長得多的可連接非定向廣播讓其他設備來連接。

當使用定向廣播時,設備不能被主動掃描。此外,定向廣播報文的凈荷中也不能帶有其他附加數據。該凈荷只能包含兩個必須的地址。

3)不可連接的非定向廣播(Non-connectable Undirected Event Type):僅僅發送廣播數據。

4)可掃描的非定向廣播(Scannable Undirected Event Type):這種廣播不能用于發起連接,但允許其他設備掃描該廣播設備。這意味著該設備可以被發現,既可以發送廣播數據,也可以響應掃描發送掃描回應數據,但不能建立連接。這是一種適用于廣播數據的廣播形式,動態數據可以包含于廣播數據之中,而靜態數據可以包含于掃描響應數據之中。

注意:所謂的定向和非定向針對的是廣播的對象,如果是針對特定的對象進行廣播(在廣播包PDU中會包含目標對象的MAC)就是定向廣播,反之就是非定向。可連接和不可連接是指是否接受連接請求,如果是不可連接的廣播類型,它將不回應連接請求。可掃描廣播類型是指回應掃描請求。

不同的廣播類型對掃描請求和連接請求的不同結果如下圖:

Own_Address_Type:本地地址類型

Peer_Address_Type:對端地址類型

Public Device Addrss:公有設備地址是設備所特有的并且是不可改變的。類似網絡設備的MAC地址,它的長度為48位。由兩部分組成:

Ramdom Device Address:隨機設備地址(私有設備地址),它也是48位。組成如下所示:

Peer_Address:對端藍牙地址

Advertising_Channel_Map:廣播信道表

決定在哪個信道上廣播,如果0x07就是在廣播全信道(37,38,39)

Advertising_Filter_Policy:過濾策略

對應上圖的內容解釋如下:

接受任何設備的掃描請求或連接請求。(Value:0x00)

僅僅接受白名單中的特定設備的掃描請求,但是接受任何設備的連接請求。(Value:0x01)

接受任何設備的掃描請求,但僅僅接受白名單中的特定設備的連接請求。(Value:0x02)

僅僅接受白名單中的特定設備的掃描請求和連接請求。(Value:0x03)

整個實現的代碼如下:

/* HCI Command Opcode group Field (OGF) */ #define HCI_GRP_HOST_CONT_BASEBAND_CMDS (0x03 << 10) /* 0x0C00 */ #define HCI_GRP_BLE_CMDS (0x08 << 10)/* HCI Command Opcode Command Field (OCF) */ #define HCI_RESET (0x0003 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) /* Advertising Commands. */ #define HCI_BLE_WRITE_ADV_ENABLE (0x000A | HCI_GRP_BLE_CMDS) #define HCI_BLE_WRITE_ADV_DATA (0x0008 | HCI_GRP_BLE_CMDS) #define HCI_BLE_WRITE_ADV_PARAMS (0x0006 | HCI_GRP_BLE_CMDS)/* HCI Command length. */ #define HCIC_PARAM_SIZE_WRITE_ADV_ENABLE 1 #define HCIC_PARAM_SIZE_BLE_WRITE_ADV_PARAMS 15 #define HCIC_PARAM_SIZE_BLE_WRITE_ADV_DATA 31uint16_t make_cmd_ble_set_adv_param (uint8_t *buf, uint16_t adv_int_min, uint16_t adv_int_max,uint8_t adv_type, uint8_t addr_type_own,uint8_t addr_type_dir, bd_addr_t direct_bda,uint8_t channel_map, uint8_t adv_filter_policy) {UINT8_TO_STREAM (buf, H4_TYPE_COMMAND);UINT16_TO_STREAM (buf, HCI_BLE_WRITE_ADV_PARAMS);UINT8_TO_STREAM (buf, HCIC_PARAM_SIZE_BLE_WRITE_ADV_PARAMS );UINT16_TO_STREAM (buf, adv_int_min);UINT16_TO_STREAM (buf, adv_int_max);UINT8_TO_STREAM (buf, adv_type);UINT8_TO_STREAM (buf, addr_type_own);UINT8_TO_STREAM (buf, addr_type_dir);BDADDR_TO_STREAM (buf, direct_bda);UINT8_TO_STREAM (buf, channel_map);UINT8_TO_STREAM (buf, adv_filter_policy);return HCI_H4_CMD_PREAMBLE_SIZE + HCIC_PARAM_SIZE_BLE_WRITE_ADV_PARAMS; } static void hci_cmd_send_ble_set_adv_param(void) {uint16_t adv_intv_min = 256; // 160msuint16_t adv_intv_max = 256; // 160msuint8_t adv_type = 0; // connectable undirected advertising (ADV_IND)uint8_t own_addr_type = 0; // Public Device Addressuint8_t peer_addr_type = 0; // Public Device Addressuint8_t peer_addr[6] = {0};uint8_t adv_chn_map = 0x07; // 37, 38, 39uint8_t adv_filter_policy = 0; // Process All Conn and Scanuint16_t sz = make_cmd_ble_set_adv_param(hci_cmd_buf,adv_intv_min,adv_intv_max,adv_type,own_addr_type,peer_addr_type,peer_addr,adv_chn_map,adv_filter_policy);esp_vhci_host_send_packet(hci_cmd_buf, sz); }

3.5 hci set adv data命令

hci command的格式如下:

OGF=0x08,OCF=0x08

我們來看下這個command的格式:

Advertising_Data_Length:廣播數據長度,最長是31個字節

Advertising_Data:廣播數據

廣播參數格式如下:

一個1byte的length,n byte的type,后面跟的是這個item的廣播數據,符合L T V格式

L:length T:Type V:value

其中Type跟HCI EIR基本一樣,在文檔CSS_V9中,想詳細看的可以看下

說不講原理,又忍不住給你們講解原理了,就此打住,想看廣播數據的,可以看下我這篇文章:

低功耗藍牙搜索廣播的實現流流程介紹 /BLE?scan flow ----- 藍牙低功耗協議棧_Wireless_Link的博客-CSDN博客

在上述文章步驟6)解析BLE廣播event的數據包 有廣播數據類型,格式等

我們看下代碼實現

/* HCI Command Opcode group Field (OGF) */ #define HCI_GRP_HOST_CONT_BASEBAND_CMDS (0x03 << 10) /* 0x0C00 */ #define HCI_GRP_BLE_CMDS (0x08 << 10)/* HCI Command Opcode Command Field (OCF) */ #define HCI_RESET (0x0003 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) /* Advertising Commands. */ #define HCI_BLE_WRITE_ADV_ENABLE (0x000A | HCI_GRP_BLE_CMDS) #define HCI_BLE_WRITE_ADV_DATA (0x0008 | HCI_GRP_BLE_CMDS) #define HCI_BLE_WRITE_ADV_PARAMS (0x0006 | HCI_GRP_BLE_CMDS)/* HCI Command length. */ #define HCIC_PARAM_SIZE_WRITE_ADV_ENABLE 1 #define HCIC_PARAM_SIZE_BLE_WRITE_ADV_PARAMS 15 #define HCIC_PARAM_SIZE_BLE_WRITE_ADV_DATA 31 uint16_t make_cmd_ble_set_adv_enable (uint8_t *buf, uint8_t adv_enable) {UINT8_TO_STREAM (buf, H4_TYPE_COMMAND);UINT16_TO_STREAM (buf, HCI_BLE_WRITE_ADV_ENABLE);UINT8_TO_STREAM (buf, HCIC_PARAM_SIZE_WRITE_ADV_ENABLE);UINT8_TO_STREAM (buf, adv_enable);return HCI_H4_CMD_PREAMBLE_SIZE + HCIC_PARAM_SIZE_WRITE_ADV_ENABLE; } static void hci_cmd_send_ble_adv_start(void) {uint16_t sz = make_cmd_ble_set_adv_enable (hci_cmd_buf, 1);esp_vhci_host_send_packet(hci_cmd_buf, sz); }

3.6 hci send ble adv start命令

hci command的格式如下:

OGF=0x08,OCF=0x0a

我們來看下這個command的格式:

Advertising_Enable:停止或者關閉BLE廣播

代碼如下:

/* HCI Command Opcode group Field (OGF) */ #define HCI_GRP_HOST_CONT_BASEBAND_CMDS (0x03 << 10) /* 0x0C00 */ #define HCI_GRP_BLE_CMDS (0x08 << 10)/* HCI Command Opcode Command Field (OCF) */ #define HCI_RESET (0x0003 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) /* Advertising Commands. */ #define HCI_BLE_WRITE_ADV_ENABLE (0x000A | HCI_GRP_BLE_CMDS) #define HCI_BLE_WRITE_ADV_DATA (0x0008 | HCI_GRP_BLE_CMDS) #define HCI_BLE_WRITE_ADV_PARAMS (0x0006 | HCI_GRP_BLE_CMDS)/* HCI Command length. */ #define HCIC_PARAM_SIZE_WRITE_ADV_ENABLE 1 #define HCIC_PARAM_SIZE_BLE_WRITE_ADV_PARAMS 15 #define HCIC_PARAM_SIZE_BLE_WRITE_ADV_DATA 31 uint16_t make_cmd_ble_set_adv_enable (uint8_t *buf, uint8_t adv_enable) {UINT8_TO_STREAM (buf, H4_TYPE_COMMAND);UINT16_TO_STREAM (buf, HCI_BLE_WRITE_ADV_ENABLE);UINT8_TO_STREAM (buf, HCIC_PARAM_SIZE_WRITE_ADV_ENABLE);UINT8_TO_STREAM (buf, adv_enable);return HCI_H4_CMD_PREAMBLE_SIZE + HCIC_PARAM_SIZE_WRITE_ADV_ENABLE; } static void hci_cmd_send_ble_adv_start(void) {uint16_t sz = make_cmd_ble_set_adv_enable (hci_cmd_buf, 1);esp_vhci_host_send_packet(hci_cmd_buf, sz); }

四.程序效果

整個代碼運行效果就是我們可以搜索到我們的設備,但是不能連接哈,因為我們自己寫的這部分代碼不是完整的Host代碼

總結

以上是生活随笔為你收集整理的ESP32 VHCI实现BLE广播,就是这么神奇的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产999精品久久久 免费a网站 | 国内揄拍国产精品 | 国产精品99免费看 | 欧美日韩不卡在线 | 久久涩涩网站 | 麻豆视频免费观看 | 超碰人人在线观看 | 91精品网站在线观看 | 九九久久免费 | 日韩在线不卡视频 | 黄色毛片在线 | 中文字幕在线观看国产 | 成人免费在线视频 | 在线黄色国产 | 精品视频在线看 | 亚洲91av| 欧美激情精品久久久 | 日韩免费在线观看网站 | 久久99国产一区二区三区 | 又色又爽的网站 | 欧美孕妇视频 | 久久综合狠狠综合 | 狠狠做深爱婷婷综合一区 | 在线免费黄 | 日韩成人看片 | 成人黄色在线 | 四虎影院在线观看av | 亚洲日本精品视频 | 中文字幕在线观看视频网站 | 亚洲精品字幕在线观看 | 成人国产一区 | 精久久久久 | 亚洲精品久久久久www | 国产小视频在线免费观看 | 免费麻豆视频 | 久久综合狠狠综合久久狠狠色综合 | 欧美一级在线看 | 少妇自拍av | 一色av | 日韩啪啪小视频 | 久久久亚洲成人 | 人人草在线视频 | 天天爱天天操天天射 | 久久久国产成人 | 久久国内精品99久久6app | 久草在线视频网 | www.成人sex| 在线视频一二三 | 欧美三级免费 | 免费高清在线观看电视网站 | 亚洲国产剧情av | 91成人在线视频 | 欧美国产视频在线 | 日本三级不卡 | 日韩精品中文字幕在线不卡尤物 | 一区二区三区在线视频观看58 | 一区二区国产精品 | 久久久久国产精品视频 | 色视频在线观看免费 | 久久免费电影 | 国产精品久久久久久久久婷婷 | 色婷婷狠狠操 | 国产精品99久久久久久久久 | 国产 欧美 日产久久 | 91av短视频 | 成人黄色免费观看 | 国模一二三区 | 欧美国产日韩一区二区三区 | 国产在线播放不卡 | 国产精品一级在线 | 丁香在线视频 | 中文字幕精品一区二区三区电影 | 国产精品porn | 国产资源在线免费观看 | 青青河边草免费观看 | 欧美日韩国产mv | 亚洲国产精品传媒在线观看 | 97**国产露脸精品国产 | 伊人婷婷激情 | 贫乳av女优大全 | 国产精品99蜜臀久久不卡二区 | av片中文 | 深爱激情综合网 | 国产一级视频免费看 | 欧美成年性 | 在线观看日韩 | 午夜精品久久久99热福利 | 婷婷国产v亚洲v欧美久久 | av电影免费观看 | 国产免费久久 | 99精品免费在线观看 | 成人午夜在线电影 | 免费毛片一区二区三区久久久 | 狠狠色丁香婷婷综合久小说久 | 亚洲国产精品va在线 | 久久久免费精品国产一区二区 | 免费看一及片 | www色av| 精品免费视频123区 午夜久久成人 | 91丨九色丨高潮丰满 | 天天爱天天干天天爽 | 麻豆精品视频 | 中文字幕久久精品一区 | 欧美热久久 | 蜜臀av夜夜澡人人爽人人桃色 | 一级成人免费 | 免费在线中文字幕 | 免费看国产曰批40分钟 | 久久99免费观看 | 欧美日韩中文在线观看 | 蜜臀av免费一区二区三区 | 国产日韩精品在线观看 | av黄色在线播放 | 777xxx欧美| 国产成人一区二区三区在线观看 | 精品国产成人在线 | 亚洲一区二区三区91 | 99色网站 | 成人在线一区二区 | 天天爱天天操天天射 | 在线导航福利 | av成人免费 | 网站在线观看日韩 | 欧美亚洲另类在线视频 | 中文字幕在线观看第二页 | 色婷婷福利视频 | 天天综合网国产 | 日韩午夜精品 | 色综合久久久久综合 | 夜夜天天干 | 国产一区在线视频 | 国产品久精国精产拍 | 蜜臀av性久久久久蜜臀av | 久久久久久久网站 | 婷婷六月丁香激情 | 在线观看中文字幕亚洲 | 高清精品久久 | 国产护士hd高朝护士1 | 免费av网站在线看 | 久久国产精品久久国产精品 | 免费看国产视频 | 国产精品18久久久久久vr | 日韩欧美在线免费观看 | 久久精品视频国产 | 久久久久视 | 久久开心激情 | 伊人色综合久久天天 | 日韩激情一二三区 | 黄色一级大片在线观看 | 在线播放日韩 | 日韩欧美精选 | 在线观看免费国产小视频 | 精品一二 | 久久久黄视频 | 黄污污网站 | 国产精品久久久免费 | 伊人在线视频 | a国产精品 | 国产精品久久久久久妇 | 五月婷婷丁香六月 | 激情婷婷网 | 黄色日本免费 | 91福利视频一区 | 欧美日韩国产在线观看 | 美女网站在线看 | 国产99在线播放 | 久久久久久久久久亚洲精品 | 91黄色小网站 | 久久免费精品国产 | 五月天综合网站 | 4hu视频 | 少妇bbb搡bbbb搡bbbb′ | 一本之道乱码区 | 日日干天夜夜 | 国内揄拍国产精品 | 久久久999精品视频 国产美女免费观看 | 人人揉人人揉人人揉人人揉97 | 久久专区 | 特级西西www44高清大胆图片 | 亚洲 综合 激情 | 久久人人添人人爽添人人88v | 国产精品爽爽爽 | 激情久久久久久久久久久久久久久久 | 四虎在线免费观看视频 | 九九热在线观看视频 | 亚洲妇女av | 999久久久免费视频 午夜国产在线观看 | 天天爽天天爽天天爽 | 久久久这里有精品 | 色婷婷福利 | 亚洲精品白浆高清久久久久久 | 午夜一级免费电影 | 91成人午夜| 黄色视屏免费在线观看 | 国内精品久久久久久久久久 | 又黄又爽又无遮挡免费的网站 | 五月婷激情 | 国产伦理久久 | 亚洲伊人婷婷 | 天天操福利视频 | 成人毛片一区 | 不卡中文字幕在线 | 久久免费公开视频 | 五月天婷婷在线观看视频 | 美女免费网站 | 成人h电影在线观看 | 五月婷婷六月丁香激情 | av黄色一级片 | 天天操天天摸天天干 | 精品日韩中文字幕 | 国产精品一区二区av | 国产精品av在线免费观看 | 天天干天天搞天天射 | 国产高清免费视频 | 中文字幕影片免费在线观看 | 日韩理论在线播放 | 婷婷五天天在线视频 | 香蕉视频色 | 国产亚洲字幕 | aaa毛片视频| 欧美日韩不卡一区二区 | 国产在线资源 | 91完整视频| 中文字幕色播 | 亚州国产视频 | av高清网站在线观看 | 综合色狠狠 | 精品亚洲在线 | 91精品伦理 | 成人精品一区二区三区中文字幕 | 久久久久久久久久伊人 | 国产在线a免费观看 | av不卡中文字幕 | 九九精品久久久 | 亚洲精品在线二区 | 在线观看免费色 | 国产成人免费 | 五月婷婷av在线 | 天天超碰 | 天天操天天舔天天干 | 99精品视频在线看 | 一区二区三区四区不卡 | 国产精品久久亚洲 | 日日躁天天躁 | 天天射天天射天天射 | 草在线| 91精品区 | 免费日韩一区二区 | 天海翼一区二区三区免费 | 精品毛片一区二区免费看 | 久草视频一区 | 日本中文字幕观看 | 欧美成人亚洲成人 | 国产成a人亚洲精v品在线观看 | 国产精品 日韩 | 精品久久久久久久久久久久久久久久 | 国产成人久久精品一区二区三区 | 国产丝袜制服在线 | 色综合久久中文综合久久牛 | 国产日韩欧美中文 | 国产免费高清 | 顶级欧美色妇4khd | 精品久久久久久亚洲综合网 | 91视频3p| 欧美日韩国产精品一区二区亚洲 | 午夜精品一区二区三区可下载 | 久精品视频免费观看2 | 欧美极品在线播放 | 97天堂网 | 久久久久人人 | 夜夜骑日日 | 96久久久 | 国产高清在线免费视频 | 免费观看成年人视频 | 最新国产精品视频 | 1000部18岁以下禁看视频 | 亚洲成人精品在线观看 | 久草新在线 | 96视频免费在线观看 | 四虎精品成人免费网站 | 成人国产精品一区二区 | 亚洲最大免费成人网 | 欧美黑吊大战白妞欧美 | av激情五月 | 中文字幕在线网 | 国产日韩在线观看一区 | 国产特级毛片 | 免费看久久久 | 日日日日| 精品播放| 一级免费av| 毛片永久免费 | 伊人天天狠天天添日日拍 | 狠狠综合| 欧美激情片在线观看 | 中文字幕人成人 | 亚洲黄色成人 | 午夜视频日本 | 亚洲精品视频在线观看网站 | 日韩一级成人av | 国内亚洲精品 | 中文字幕日韩无 | 久久久久网站 | 天堂入口网站 | 在线观看 亚洲 | 91麻豆精品国产自产在线游戏 | 免费av成人在线 | 91黄色小视频 | 日本中文字幕在线 | 成人av中文字幕在线观看 | 婷婷色婷婷 | 免费a v网站 | 亚洲一区二区视频在线播放 | 手机色站| 精品国产一区二区三区久久久蜜臀 | 九九久久久 | 成人一级免费电影 | 欧美亚洲国产一卡 | 国产人免费人成免费视频 | 国产亚洲精品综合一区91 | 最新中文字幕在线观看视频 | 激情婷婷欧美 | 久久久精品国产一区二区三区 | 精品国产99国产精品 | 久久成人国产精品入口 | 国产精品成人av电影 | 国产丝袜网站 | 国产一区免费在线观看 | 91在线入口| 久久精品一二区 | 热久久这里只有精品 | 久久综合九色欧美综合狠狠 | 久久精品视频网址 | 黄网在线免费观看 | 日韩精品久久久久久久电影竹菊 | 国产午夜精品一区二区三区 | 亚洲三级在线免费观看 | 国产污视频在线观看 | 91av免费看 | 欧美一区二区日韩一区二区 | 亚洲综合色播 | 国产片免费在线观看视频 | 久久在现 | 欧美日韩中文在线视频 | 欧美午夜久久久 | 亚洲理论影院 | adn—256中文在线观看 | 日韩精品视频网站 | 丁香六月五月婷婷 | 狠狠久久| av免费电影在线观看 | 成人免费观看完整版电影 | 亚洲国产播放 | 18av在线视频| 91av免费观看 | 国产成人黄色 | 中文字幕在| 丁香婷婷综合网 | 超黄视频网站 | 亚洲综合色丁香婷婷六月图片 | 国产精品久久久久久久免费观看 | 最近中文字幕视频网 | 亚洲欧美综合 | 久久久免费少妇 | 毛片无卡免费无播放器 | 亚洲成人av电影在线 | 特级西西www44高清大胆图片 | 99热9| 2019天天干天天色 | 麻豆传媒视频在线免费观看 | 在线观看日本韩国电影 | 中文字幕在线看视频国产中文版 | 玖玖在线播放 | 成年人免费看片 | 天天操天天舔天天干 | 国产不卡免费av | 嫩草av在线 | 丝袜美腿av| 日韩精品中文字幕在线 | 欧美成人亚洲 | 又爽又黄在线观看 | 欧美成年黄网站色视频 | 欧美日韩高清国产 | 香蕉在线播放 | 亚洲va欧美va国产va黑人 | www.神马久久 | 国产小视频在线观看 | 奇米影视8888在线观看大全免费 | 欧美日韩国产一二三区 | 视频在线99 | 国产精品不卡av | 国产亚洲婷婷 | 国产69精品久久久久99 | 婷婷丁香国产 | 免费在线成人av电影 | 久久精品小视频 | 午夜精品久久久久久久久久久 | 国产精品久久久久高潮 | 99视频免费在线观看 | 激情五月婷婷网 | 国产成人精品一区二区三区在线观看 | 久久视频免费在线观看 | 久久午夜精品视频 | 久久免费看毛片 | 色www永久免费| 久久精品国产99国产 | 丰满少妇在线观看 | 最近免费中文字幕大全高清10 | 国产最新视频在线观看 | 亚洲黄色精品 | 亚洲 欧美 国产 va在线影院 | 亚洲 av网站 | 国产精品你懂的在线观看 | 99精彩视频| 国产日韩欧美视频在线观看 | 欧美综合在线观看 | 美女免费网视频 | 精品91视频| 国产亚洲精品久久久久久 | 国产97在线视频 | 国产专区免费 | 久久久久久黄 | 亚洲成人精品在线 | 久久精品站 | 中文在线a在线 | 成人福利在线播放 | 人人澡人人干 | 精品嫩模福利一区二区蜜臀 | 超碰午夜| 国产不卡片 | 中文字幕乱码日本亚洲一区二区 | 国产97在线观看 | 欧美地下肉体性派对 | 99久久精品国产一区二区三区 | 日本激情中文字幕 | 欧美 日韩精品 | 96精品视频| 日韩综合一区二区 | 国产资源网站 | 九九久久婷婷 | 天天干天天射天天操 | av免费看av| a级国产乱理伦片在线观看 亚洲3级 | 亚洲欧美成人在线 | 99热精品视 | 欧美久久99 | 亚州精品在线视频 | 亚洲精品国产精品99久久 | 色国产精品 | 久操中文字幕在线观看 | 亚洲综合丁香 | 国内99视频 | 免费福利片2019潦草影视午夜 | 欧美极品xxxxx | 日本丶国产丶欧美色综合 | 亚洲成a人片77777kkkk1在线观看 | 亚洲日本成人 | 亚洲特级片 | 粉嫩av一区二区三区入口 | 欧美影片| 制服丝袜欧美 | 久久国产精品视频观看 | 欧洲精品码一区二区三区免费看 | 国内精品国产三级国产aⅴ久 | 欧美视频在线观看免费网址 | 91九色视频导航 | 在线免费av播放 | 亚洲精品国产精品乱码在线观看 | 97电影在线观看 | 国产一区视频在线播放 | 亚洲日本va午夜在线电影 | 欧美肥妇free | 精品视频国产 | 日韩国产高清在线 | 日韩欧美黄色网址 | 男女视频久久久 | www.xxxx欧美 | 精品视频免费观看 | 亚洲国产成人精品久久 | 韩国一区二区av | 精品一区91 | 视频国产一区二区三区 | 91黄色影视 | 美女福利视频网 | 免费在线观看91 | 日韩色在线观看 | 99999精品视频 | 亚洲成人av片 | 免费观看日韩av | 亚洲最新在线视频 | 久久综合之合合综合久久 | 久久99久久99精品中文字幕 | 99久久这里有精品 | 国产99在线免费 | 婷婷国产v亚洲v欧美久久 | 欧美日韩一级在线 | 成年人免费看片网站 | 日韩91在线 | 一级免费av | 成人影音在线 | 欧美一区日韩一区 | 五月天激情在线 | 亚洲精品国偷自产在线99热 | 中文字幕在线看视频国产 | 999成人| 成年人在线免费视频观看 | 美女黄久久 | 中文在线字幕免费观 | 欧美日韩视频在线观看一区二区 | 伊人狠狠| 黄色免费在线视频 | 国产 av 日韩 | 精品国产精品久久一区免费式 | 一级黄色片毛片 | 日本性生活一级片 | 福利在线看片 | 久久久久麻豆 | 国产高清在线精品 | 去看片| 天天躁日日躁狠狠躁av中文 | 天天操天天爱天天干 | 日韩一区二区三区视频在线 | 三级毛片视频 | 欧美一级黄大片 | 国产黄色网 | 国产成人精品一二三区 | 天天操天天操天天操天天操 | 国产精品乱码久久久久久1区2区 | 国产亚洲综合性久久久影院 | 夜色资源网| 看片黄网站 | 在线视频日韩一区 | 久久香蕉国产精品麻豆粉嫩av | 久草视频在线观 | 久久草草热国产精品直播 | 欧美日韩高清一区二区三区 | 日韩精品久久久 | 欧美少妇bbwhd | 国产高h视频 | 99热精品在线 | 91精品国产91久久久久福利 | 一区二区三区电影 | 久久久亚洲精华液 | 波多在线视频 | 日韩av午夜在线观看 | 久久综合色综合88 | 国产在线观看黄 | 色视频网址 | 日韩精品一区二区三区第95 | 成人精品亚洲 | 夜夜爽www | 亚洲精品欧洲精品 | 成人国产精品久久久 | 91成人免费看 | 日韩一区二区三区免费视频 | 中文字幕精品一区二区精品 | 天天曰夜夜操 | 五月天.com| 国产中文字幕久久 | 色婷婷综合久久久久中文字幕1 | 国产精品视频免费在线观看 | 免费看一级特黄a大片 | 亚洲专区视频在线观看 | 天天干天天在线 | 国产精品18久久久久久久久久久久 | 亚洲精品国产成人 | 国产三级香港三韩国三级 | 天天玩天天干 | 99久久精品国产一区二区三区 | 国产精品不卡一区 | 国产精品久久婷婷六月丁香 | 国产在线v| 中文在线字幕免费观看 | 成人免费视频网站 | 国产精品9区 | 国产最新视频在线 | 日韩在线免费视频观看 | 国产精品99久久久久人中文网介绍 | 国内精品美女在线观看 | www.伊人网 | 欧美一级裸体视频 | 精精国产xxxx视频在线播放 | 97香蕉久久超级碰碰高清版 | 国产精品ssss在线亚洲 | 中文字幕在线一二 | 亚洲精品小视频在线观看 | 久久国产精品一区二区三区 | 欧美日韩高清一区 | 国产 日韩 欧美 自拍 | 亚洲视频 在线观看 | 久久久久久中文字幕 | 天天想夜夜操 | 4438全国亚洲精品在线观看视频 | 久久久精品成人 | 天天射天天操天天 | 免费在线观看不卡av | 亚洲国产三级在线观看 | 韩日精品在线 | 亚洲一区二区精品在线 | 国产精品无av码在线观看 | 亚洲一区免费在线 | 日韩黄色免费看 | 国产一区视频免费在线观看 | 最近中文字幕mv | 国产美女无遮挡永久免费 | www91在线观看| 欧美一级专区免费大片 | 99久久久久久久久久 | 日韩a在线观看 | 成人免费电影 | 久草视频免费在线播放 | 一本一道久久a久久精品 | 国产免费区| 亚洲 欧美 综合 在线 精品 | 国产色综合| 91成人免费电影 | 日本中文字幕在线视频 | 日本精a在线观看 | 四虎国产视频 | 亚洲精品乱码久久久久 | 婷婷视频在线播放 | 成人资源站 | 国产精品高潮呻吟久久av无 | 夜夜操天天摸 | 国产黄色片免费观看 | 国产在线观看av | 91久久国产精品 | 99这里只有精品视频 | av免费在线观 | 国产不卡片 | www五月| 奇米影视777四色米奇影院 | 国产一区高清在线观看 | 日韩精品免费在线观看视频 | 久久97精品 | 综合国产在线观看 | 97超碰人人澡 | 日韩中文字幕免费 | 天天操天天干天天插 | 午夜久久福利 | 在线观看中文 | 国产高清福利在线 | 综合国产视频 | 欧美国产日韩一区二区 | 久久99免费视频 | 在线播放 日韩专区 | 97国产精品久久 | 免费视频18| 激情久久小说 | 久久视频国产精品免费视频在线 | 456成人精品影院 | 五月激情在线 | 国产理论影院 | 日韩最新在线 | 在线91播放 | 日韩在线精品 | www.日日操.com| 日韩午夜电影网 | 久草网站在线观看 | 天天综合成人 | 麻豆视频www | 天天干天天操天天入 | 亚洲成av片人久久久 | 国内久久久 | 手机看片福利 | 精品亚洲国产视频 | 欧美精品乱码久久久久久按摩 | 日韩在线观看网站 | 亚洲精品视频在线观看免费 | 亚洲精品1234区 | 国产精品永久免费观看 | 国产精品国产亚洲精品看不卡 | 久草在线精品观看 | 4438全国亚洲精品观看视频 | 久久热亚洲| 少妇bbw揉bbb欧美 | 人人爽人人爽人人片av | 久久精品福利视频 | 婷婷99| 欧美色图88 | 亚洲天堂网在线视频观看 | 视频在线观看入口黄最新永久免费国产 | 丁香视频在线观看 | 色综合天天色综合 | 久久影视中文字幕 | 91久久国产精品 | 91亚洲狠狠婷婷综合久久久 | 天堂av免费看 | 亚洲欧美日韩精品久久奇米一区 | 欧美日韩国产综合网 | 综合亚洲视频 | 深爱激情综合 | 久久久精品国产一区二区电影四季 | 日日干天天爽 | 久久久久综合精品福利啪啪 | 亚洲最大色| 人人澡超碰碰97碰碰碰软件 | 久久精品视频免费观看 | 国产精品乱码久久久 | 毛片区 | 色婷婷国产| 99爱这里只有精品 | 狠狠的操狠狠的干 | 开心色激情网 | 日韩中文字幕在线看 | 国产成人精品在线播放 | 日韩成人精品在线观看 | 天天操天天干天天爽 | 深夜精品福利 | 九九热精品视频在线播放 | av大片免费在线观看 | 成人在线免费观看网站 | 精品国产乱码久久久久久1区二区 | 色婷婷久久久综合中文字幕 | 国产日韩精品在线观看 | 国产综合在线观看视频 | 婷婷综合久久 | 有没有在线观看av | 中文字幕免费高清av | 欧美福利视频 | 日韩av中文| 999久久国产 | 国产玖玖精品视频 | 亚洲妇女av | 久久国产手机看片 | 在线黄色免费 | 色综合色综合久久综合频道88 | 国产理论一区二区三区 | 在线观看的a站 | 亚洲综合在线五月 | 69国产成人综合久久精品欧美 | 欧美一级视频一区 | 久久久污 | 亚洲成人影音 | 99久久久久久久久 | 久久久精品久久日韩一区综合 | 久久国产精品区 | 伊人色播 | 中文字幕资源网 国产 | 亚洲高清视频在线播放 | 99久久99久久综合 | 亚洲精品乱码久久久久久写真 | 玖玖在线播放 | 伊甸园av在线 | 国产免费观看av | 欧美日韩视频一区二区三区 | 久草国产在线 | 在线观看国产亚洲 | 91香蕉视频黄 | 91久久一区二区 | 日本最新高清不卡中文字幕 | 香蕉免费在线 | 国产大陆亚洲精品国产 | 免费在线成人av | 偷拍精偷拍精品欧洲亚洲网站 | 天堂在线成人 | 欧美九九九 | 国产色综合天天综合网 | 久一网站 | 日韩深夜在线观看 | 美女久久精品 | 欧美色精品天天在线观看视频 | 日韩欧美精选 | 999久久国产精品免费观看网站 | 久久免费视频8 | 超碰人人做 | 成人网页在线免费观看 | 欧美日韩xx | 久久精品美女视频网站 | 中文字幕a在线 | 国产一区二区精品久久 | 久久三级视频 | 黄色毛片在线观看 | 亚洲一区二区三区毛片 | 色偷偷中文字幕 | 日本韩国欧美在线观看 | 欧美乱淫视频 | 国产精品精品久久久久久 | 日韩精品一区电影 | 免费av小说 | 久久黄色a级片 | 欧美一区二区在线免费观看 | 日本爱爱片 | 国产精品99久久久久久宅男 | 色干干| 91女人18片女毛片60分钟 | 一区二区三区在线看 | 狠狠干网址 | 国产日韩在线看 | 高清中文字幕 | 亚洲一区二区黄色 | 日本三级不卡视频 | 国产亲近乱来精品 | 国偷自产中文字幕亚洲手机在线 | 日韩精品久久中文字幕 | 亚洲五月综合 | 成人精品一区二区三区电影免费 | 欧美在线观看视频 | 中文字幕日韩有码 | 日韩欧美高清不卡 | 久久久久国产成人免费精品免费 | 国产va在线| 国产精品白丝jk白祙 | 国产精品一区二区免费视频 | 久久久视频在线 | 日韩高清在线一区二区 | 天天久久夜夜 | 久久久久日本精品一区二区三区 | 91传媒91久久久 | 午夜精品久久一牛影视 | 国产日韩欧美在线看 | 久久久久麻豆v国产 | 黄污网站在线 | 夜夜澡人模人人添人人看 | 久要激情网 | 国产精品美女免费视频 | 中文字幕色在线视频 | 一区二区三区久久精品 | av中文在线影视 | 国产麻豆精品免费视频 | 免费看黄的视频 | 亚洲毛片一区二区三区 | 精品无人国产偷自产在线 | 黄网av在线 | 国产黄色精品 | 天天色中文 | 国内精品久久久久 | 91黄色免费看 | 欧美最猛性xxxxx亚洲精品 | 婷婷国产一区二区三区 | 天天舔天天射天天操 | 成人动漫精品一区二区 | 99视频+国产日韩欧美 | 久草在线视频免赞 | 91精品对白一区国产伦 | 日韩精品免费一区 | 欧美久久久久久久久久 | 欧美一进一出抽搐大尺度视频 | 成人黄色小说在线观看 | 亚洲综合网站在线观看 | 亚洲美女视频网 | 综合在线色 | 手机看片99 | 国产99久久久欧美黑人 | 99久久精品免费看 | 国产成人精品一区一区一区 | 91av视频在线观看 | 99久久精品免费看 | 91黄色小网站 | 二区三区中文字幕 | 久久久不卡影院 | 国产中文伊人 | www.夜夜干.com| 午夜精品久久久久久久99热影院 | 欧美一区二区三区不卡 | 久久五月天综合 | 日韩精品免费专区 | 91麻豆精品国产91久久久久 | 97人人模人人爽人人喊网 | 色偷偷网站视频 | 久热爱| 狠狠色丁香婷婷综合基地 | 欧美一级久久久久 | 国产群p| 中文视频在线播放 | 97人人模人人爽人人少妇 | 久久天天操 | 午夜电影 电影 | 中国一级片在线 | 国产亚洲va综合人人澡精品 | 久草在线免 | 成人午夜性影院 | 色五月成人| 国产专区视频在线观看 | 成人免费视频播放 | 玖玖玖在线 | 国产高清在线不卡 | av网站在线免费观看 | 激情五月婷婷 | 精品久久一区二区三区 | 亚洲综合五月天 | 日韩在线中文字幕 | av免费在线观看网站 | 久久婷婷开心 | 国产黄色a | 色91在线视频 | 亚洲va在线va天堂va偷拍 | 成人在线视频免费看 | 色综合久久88色综合天天 | 国产亚州av| a视频免费在线观看 | 日本中文字幕在线免费观看 | 国色综合 | 91亚瑟视频 | 中文字幕无吗 | 蜜臀av在线一区二区三区 | 天天操婷婷 | 日日摸日日添夜夜爽97 | 四虎国产精品免费观看视频优播 | 中文字幕在线看视频 | 最近中文字幕大全中文字幕免费 | 亚洲精品456在线播放乱码 | 99久久999久久久精玫瑰 | www.狠狠插.com | www国产一区| 91在线中字| 超碰97.com| 特级西西444www高清大视频 | 免费看黄的 | 久久经典国产视频 | 久久久久成 | 日韩伦理一区二区三区av在线 | 97精品在线观看 | 欧美日本在线视频 | 日韩精品1区2区 | 国产成人精品一区二区三区在线 | 激情小说网站亚洲综合网 | 国产黄色资源 | 久久无码av一区二区三区电影网 | 手机av在线免费观看 | 国产精品久久久久久999 | 久久影院精品 | 日韩高清免费电影 | 丁香五婷 | 日日干美女| av丝袜制服 | 久久国产一区二区 | 久久久久久久久久久影视 | 九九99视频 | 久爱综合 | 天天激情| 91色国产| 经典三级一区 | 美女黄网站视频免费 | 免费成人av网站 | 国产午夜精品av一区二区 | 日韩在线高清 | 欧美日韩一区三区 | 色网免费观看 | 久久网页 | 激情影音 | 久久久人 | 一级黄色大片在线观看 | 亚洲国内精品在线 | 玖草影院 | 99热最新在线 | 91视频最新网址 | 亚洲二区精品 | 久久久久国产成人免费精品免费 | 精品中文字幕在线 | 国产精品av免费在线观看 | 在线观看 国产 | 黄色a视频免费 | 国产资源av| 91chinesexxx| 国产在线97 | 中文区中文字幕免费看 | 99精品视频一区二区 | 超碰免费在线公开 | 欧洲黄色片 | 亚洲成人av在线电影 | 美国av片在线观看 | 激情深爱| 欧美少妇18p | 成人亚洲免费 | 久久久99久久 | 国产一区二区免费看 | 欧美国产日韩中文 | 日韩欧美在线高清 | 国产精品成人免费精品自在线观看 | 天天曰夜夜操 | 综合网av | 午夜精品一区二区三区四区 | 欧美视频在线观看免费网址 | 91精品91 | 四虎影视成人永久免费观看亚洲欧美 | 手机在线观看国产精品 | 狠狠色丁香婷婷综合基地 | 欧美日韩免费在线视频 | 色综合中文字幕 | 久久乐九色婷婷综合色狠狠182 | www.狠狠| 亚洲日本va午夜在线电影 | 中文字幕av免费在线观看 | 欧美黄色免费 | 日韩一区二区三区在线观看 | 五月婷婷久久丁香 | 久久在线精品视频 | 97超碰人人在线 | 九九国产精品视频 | 国产成人一区二 | 亚洲九九精品 | 国产精品igao视频网网址 | 国色天香永久免费 | 国产精品久久久久久久久大全 | 天天色天天射天天综合网 | 人人爽人人爽人人 | aav在线|