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

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

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

3天內不再提示

簡述STM32+RW007如何實現BLE透傳功能

RTThread物聯網操作系統 ? 來源:RT-Thread物聯網操作系統 ? 作者:RT-Thread物聯網操作 ? 2021-05-24 09:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天我們將使用STM32F411-NUCLEO通過 RW007 BLE 功能讀取來自KT6368A藍牙模塊的MPU6050傳感器數據,實現BLE透傳功能,算是學習 RW007 模塊 BLE 功能的一個綜合Demo實戰哈!!!

硬件準備

1.STM32F411-NUCLEO 開發板,RW007 EVB模塊

2.PC 電腦

3.USB 數據線

4.BLE 數據透傳模塊(如HC-08模塊、KT6368A藍牙模塊等)

5.STM32F401-NUCLEO開發板,MPU6050模塊

6.USB-TTL 模塊(如CH340等)

7.杜邦線若干條

軟件準備

1.RT-Thread Studio IDE軟件

2.串口調試軟件(xshell、SSCOM 等)

要實現MPU6050傳感器數據BLE透傳的功能,需要分為發送端設備和接收端設備。

發送端設備:

由 STM32F401-NUCLEO讀取 mpu6050傳感器數據配合KT6368A藍牙模塊數據透傳。

可以分為以下的 7 個步驟:

步驟1:創建 RT-Thread Studio IDE 工程

步驟2:項目工程配置 I2C設備框架和硬件IO 引腳配置及硬件連接

步驟3:添加mpu6050軟件包,測試 mpu6050 數據獲取

步驟4:項目工程配置開啟 uart6串口配置和硬件連接

步驟5:測試 uart6串口功能

步驟6:把獲取的mpu6050數據通過 uart6串口輸出

步驟7:把KT6368A藍牙模塊的RXD引腳接在uart6串口配置的TXD

其中各個步驟的具體操作如下:

步驟1:創建 RT-Thread Studio IDE 工程

由于使用RT-Thread Studio IDE如何創建STM32F401-NUCLEO的工程,這個在官方的文檔中心中有相關的文檔說明,這里只作簡單說明。

(1)通過點擊新建RT-Thread項目,選擇基于開發板,型號選擇STM332F401-NUCLEO,輸入工程名稱,點擊完成按鈕開始創建工程。

步驟2:項目工程配置 I2C設備框架和硬件IO 引腳配置及硬件連接

在配置I2C設備框架前,先確定使用那組硬件 IO 引腳,在這里使用 PA4 連接到mpu6050模塊的SCL,PA1連接到mpu6050模塊的SCK.由于使用的是軟件模擬的 I2C功能,只需確保對應的IO引腳沒有被復用即可。

f6acafda-bc28-11eb-bf61-12bb97331649.png

配置完成后,編譯工程燒錄到板子上,通過串口驗證是否I2C設備框架正常工作。

注意:如果程序下載過程中提示 Warning: The core is locked up,需要在屬性中配置為 system Reset 的復位模式

f6dbb9c4-bc28-11eb-bf61-12bb97331649.png

如圖,通過list_device可以查看到有i2c1這個 device,表明配置已經生效。

步驟3:添加mpu6050軟件包,測試 mpu6050 數據獲取

關于 mpu6050軟件包的使用,可以參考官方文檔關于mpu6050傳感器的使用,在這里僅是說明如何使用從官網相關文檔中下載的mpu6050驅動包,獲取數據。

mpu6050軟件驅動包的下載連接:https://www.rt-thread.org/document/site/application-note/driver/i2c/i2c-mpu6050.rar下載后的軟件包中包含的文件如下圖

在工程目錄中刷新后可以顯示添加的文件。

f74c808c-bc28-11eb-bf61-12bb97331649.png

添加mpu6050軟件包后需要適當修改SConscript 腳本

添加mpu6050軟件包后需要適當修改drv_mpu6050.c 文件中的 MPU6050_I2CBUS_NAME為 i2c1。

然后編譯工程,燒錄測試mpu6050的功能。

f8c2afcc-bc28-11eb-bf61-12bb97331649.png

步驟4:項目工程配置開啟 uart6串口配置和硬件連接

由于默認創建的工程中沒有開啟uart6串口的配置,需要使用CubeMX開啟 uart6的串口功能配置。

由于默認的圖形化配置中沒有UART6的配置,需要手動修改添加。

修改 Kconfig添加 UART6的配置后,需要圖形化配置。

如圖,默認USART6串口功能的RXD引腳是PC7,TXD引腳是PC6.

此時,可以使用一個 USB-TTL串口模塊的與STM32F401-NUCLEO進行連接測試uart6的功能。

步驟5:測試 uart6串口功能

關于 uart通信的示例,在官網的文檔中心中有相關詳細的說明,這里就不進行詳細的描述。

直接從相關文檔中參考一小段代碼進行測試。

1#define SAMPLE_UART_NAME “uart6” /* 串口設備名稱 */ 2static rt_device_t serial; /* 串口設備句柄 */ 3char str[] = “hello RT-Thread! ”; 4struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; /* 配置參數 */ 5/* 查找串口設備 */ 6serial = rt_device_find(SAMPLE_UART_NAME); 7 8/* 以中斷接收及輪詢發送模式打開串口設備 */ 9rt_device_open(serial, RT_DEVICE_FLAG_INT_RX); 10/* 發送字符串 */ 11rt_device_write(serial, 0, str, (sizeof(str) - 1));

把上面的代碼添加到工程里面的main.c文件中,通過MSH命令啟動測試。

fa0c1d32-bc28-11eb-bf61-12bb97331649.png

此時通過 SSCOM 串口調試工具觀察 USB-TTL串口模塊接收來自STM32F401-NUCLEO串口 UART6發送的數據。

到此,驗證uart6串口功能正常。

步驟6:把獲取的mpu6050數據通過 uart6串口輸出

這里需要把獲取的mpu6050數據通過uart6串口輸出,需要適當修改代碼,主要是添加 uart6串口的初始化還有把mpu6050數據通過uart6輸出。

在main.c文件中,添加BLE_UART_NAME和serial的聲明。

1#define BLE_UART_NAME “uart6” /* 串口設備名稱 */ 2static rt_device_t serial; /* 串口設備句柄 */

在main函數中,添加 uart6串口的初始化代碼。

1 /* 查找系統中的串口設備 */ 2 serial = rt_device_find(BLE_UART_NAME); 3 if (!serial) 4 { 5 rt_kprintf(“find %s failed! ”, BLE_UART_NAME); 6 return RT_ERROR; 7 } 8 rt_kprintf(“open uart6 ok.。。 ”); 9 rt_device_open(serial, RT_DEVICE_FLAG_INT_RX)

在mpu6050_thread_entry函數中,添加把mpu6050數據通過uart6輸出的功能代碼。

1void mpu6050_thread_entry(void *parameter) 2{ 3 rt_int16_t temp; //溫度 4 rt_int16_t gx,gy,gz; //三軸加速度 5 rt_int16_t ax,ay,az; //三軸角速度 6 7 char TempStr[15] = {0}; 8 //char Gx[10] = {0}; 9 10 rt_err_t ret; 11 12 while(1) 13 { 14 ret = mpu6050_temperature_get(&temp); 15 if (ret != RT_EOK) 16 { 17 rt_kprintf(“mpu6050 : get temperature error ”); 18 } 19 ret = mpu6050_accelerometer_get(&ax, &ay, &az); 20 if (ret != RT_EOK) 21 { 22 rt_kprintf(“mpu6050 : get acc error ”); 23 } 24 ret = mpu6050_gyroscope_get(&gx, &gy, &gz); 25 if (ret != RT_EOK) 26 { 27 rt_kprintf(“mpu6050 : get gyro error ”); 28 } 29 if (ret == RT_EOK) 30 { 31 //rt_kprintf(“mpu6050: temperature=%-6d gx=%-6d gy=%-6d gz=%-6d ax=%-6d ay=%-6d az=%-6d ”,temp/100,gx,gy,gz,ax,ay,az); 32 sprintf(TempStr,“55temp=%dAA”,temp/100); 33 rt_device_write(serial, 0, TempStr, (sizeof(TempStr) - 1)); 34 memset(TempStr,0,sizeof(TempStr)/sizeof(char)); 35 rt_thread_delay(rt_tick_from_millisecond(500)); 36 sprintf(TempStr,“55gx=%dAA”,gx); 37 rt_device_write(serial, 0, TempStr, (sizeof(TempStr) - 1)); 38 memset(TempStr,0,sizeof(TempStr)/sizeof(char)); 39 rt_thread_delay(rt_tick_from_millisecond(500)); 40 41 sprintf(TempStr,“55gy=%dAA”,gy); 42 rt_device_write(serial, 0, TempStr, (sizeof(TempStr) - 1)); 43 memset(TempStr,0,sizeof(TempStr)/sizeof(char)); 44 rt_thread_delay(rt_tick_from_millisecond(500)); 45 46 sprintf(TempStr,“55gz=%dAA”,gz); 47 rt_device_write(serial, 0, TempStr, (sizeof(TempStr) - 1)); 48 memset(TempStr,0,sizeof(TempStr)/sizeof(char)); 49 rt_thread_delay(rt_tick_from_millisecond(500)); 50 51 sprintf(TempStr,“55ax=%dAA”,ax); 52 rt_device_write(serial, 0, TempStr, (sizeof(TempStr) - 1)); 53 memset(TempStr,0,sizeof(TempStr)/sizeof(char)); 54 rt_thread_delay(rt_tick_from_millisecond(500)); 55 56 sprintf(TempStr,“55ay=%dAA”,ay); 57 rt_device_write(serial, 0, TempStr, (sizeof(TempStr) - 1)); 58 memset(TempStr,0,sizeof(TempStr)/sizeof(char)); 59 rt_thread_delay(rt_tick_from_millisecond(500)); 60 61 sprintf(TempStr,“55az=%dAA”,az); 62 rt_device_write(serial, 0, TempStr, (sizeof(TempStr) - 1)); 63 memset(TempStr,0,sizeof(TempStr)/sizeof(char)); 64 } 65 rt_thread_delay(rt_tick_from_millisecond(1000)); 66 } 67}

說明:由于 BLE設備單次發送的數據長度有限制,需要拆分mpu6050的數據,并在發送的一幀數據前加上55作為數據頭,在一幀數據后添加AA作為數據尾,這樣方便接收方解析數據。

fa992b32-bc28-11eb-bf61-12bb97331649.png

步驟7:把KT6368A藍牙模塊的RXD引腳接在uart6串口配置的TXD

基于前面的步驟,這里距離藍牙數據透傳功能的實現僅需要進行最后一步,把KT6368A藍牙模塊的RXD引腳接在uart6串口配置的TXD,由于KT6368A藍牙模塊一旦被連接后,就自動進入了透傳模式,這時候可以參考上面的使用手機調試的方法,嘗試讀取數據。

到此,STM32F401-NUCLEO讀取 mpu6050傳感器數據配合KT6368A藍牙模塊數據透傳的功能完成。

接收端設備:

STM32F411-NUCLEO通過 RW007 BLE 功能讀取mpu6050傳感器數據。

可以分為以下的 2 個步驟:

步驟1:創建 RT-Thread Studio IDE 工程

步驟2:添加BLE功能讀取mpu6050傳感器數據并解析的功能實現代碼

步驟1:創建 RT-Thread Studio IDE 工程

這里可以參考前面 使用STM32F411-NUCLEO通過RW007BLE 功能測試BLE藍牙模塊數據傳輸功能 這部分的內容,進行創建工程,在這個工程的基礎上,只需要添加一小部分代碼就可以實現讀取mpu6050傳感器數據的功能。這里在 application目錄下添加ble_example.c文件,并修改applications目錄下的SConscript腳本,把ble_example.c添加到工程編譯。

fafd5382-bc28-11eb-bf61-12bb97331649.png

步驟2:添加BLE功能讀取mpu6050傳感器數據并解析的功能實現代碼

在ble_example.c文件中添加BLE功能讀取mpu6050傳感器數據并解析的功能實現代碼,主要參考rw007軟件包中的ble_cmd_rw007.c里面關于ble命令的使用。

(1)添加RW007 BLE 功能初始化

1static int ble_example_init(void) 2{ 3 rt_kprintf(“ble_example_init ”); 4 rt_uint8_t roles = 0; 5 roles = RW007_BLE_INIT_ROLE_CENTRAL; 6 7 rw007_ble_init(roles); 8 9 rw007_ble_resp_handle_cb_reg(rw007_ble_resp_handle); 10 rw007_ble_ntf_handle_cb_reg(rw007_ble_ntf_handle); 11 return 0; 12 13}

說明:上面代碼實現RW007 BLE 功能作為主機初始化并設置相關回調的功能,rw007_ble_resp_handle 和 rw007_ble_ntf_handle函數可以直接參考ble_cmd_rw007.c文件里面的,具體的可以查詢相關的代碼。

(2)添加RW007 BLE 功能通過addr連接指定的BLE設備由于前面的步驟中,明確了需要連接的BLE設備的addr(即mac地址),這里就使用了。

1static int ble_example_connect(void) 2{ 3 rt_kprintf(“ble_example_connect ”); 4 ble_addr_t addr; 5 addr.type = RW007_BLE_ADDR_PUBLIC; 6 rt_kprintf(“str_addr: %s ”, “eeffcc:aa”); 7 8 _hexstrtoaddr(“eeffcc:aa”, addr.val); 9 10 rt_kprintf(“mac addr: %2x:%2x:%2x:%2x:%2x:%2x ”, addr.val[0], addr.val[1], 11 addr.val[2], addr.val[3], 12 addr.val[4], addr.val[5]); 13 rw007_ble_connect(&addr); 14 return 0; 15}

說明:上面代碼實現通過BLE設備的addr(即mac地址)進行連接。

(3)添加RW007 BLE 功能通過UUID接收數據在前面的步驟中,知道可以通過 UUID=0XFFF1來接收BLE設備的數據。

1static int ble_example_gatt_notify_change_by_uuid(void) 2{ 3 rt_kprintf(“ble_example_gatt_notify_change_by_uuid ”); 4 rt_uint16_t conn_handle = 0; 5 rt_uint16_t char_value = 0; 6 7 int uuidint; 8 rw007_ble_uuid_t uuid; 9 10 conn_handle = 1; 11 char_value = 1; 12 13 uuid.type = BLE_UUID_TYPE_16; 14 sscanf(“0xfff1”, “%x”, &uuidint); 15 uuid.uuid.uuid16 = uuidint & 0xFFFFu; 16 17 rw007_ble_gatt_notify_change_by_uuid(conn_handle, &uuid, char_value); 18 return 0; 19}

說明:上面的代碼中實現,通過設置UUID=0XFFF1來接收BLE設備的數據`

(4)添加數據解析部分的功能通過前面的測試中,可以知道BLE_TEST設備會把數據通過NOTIFY發送,此時只需要在RW007_BLE_NTF_TYPE_NOTIFY_RX中進行處理,把接收的數據解析(去掉數據頭55、數據尾AA)

1 case RW007_BLE_NTF_TYPE_NOTIFY_RX: 2 { 3 struct rw007_ble_gap_event_notify_rx *notify_rx; 4 5 rt_kprintf(“RW007_BLE_NTF_TYPE_NOTIFY_RX ”); 6 7 notify_rx = (struct rw007_ble_gap_event_notify_rx *)data; 8 rt_kprintf(“conn_handle:%d, attr_handle:%d, rcv (%s) length:%d, data: ”, 9 notify_rx-》conn_handle, notify_rx-》attr_handle, 10 notify_rx-》indication ? “indication”:“notification”, notify_rx-》length_data); 11 hex_dump((const rt_uint8_t *)(notify_rx + 1), notify_rx-》length_data); 12 13 char *pcBegin = NULL; 14 char *pcEnd = NULL; 15 char cRes[15]={0}; 16 17 //Here to solve Data 18 pcBegin = strstr((const rt_uint8_t *)(notify_rx + 1),“55”); 19 pcEnd = strstr((const rt_uint8_t *)(notify_rx + 1),“AA”); 20 if(pcBegin == NULL || pcEnd == NULL || pcBegin 》 pcEnd) 21 { 22 rt_kprintf(“data not found!!! ”); 23 } 24 else { 25 pcBegin += strlen(“55”); 26 rt_memcpy(cRes, pcBegin, pcEnd-pcBegin); 27 rt_kprintf(“data:%s ”,cRes); 28 } 29 break; 30 }

(5)添加啟動測試命令

在調試過程中,可以把啟動的函數導出到msh命令中執行。

1static int ble_example_start(void) 2{ 3 ble_example_init(); 4 rt_thread_delay(1000); 5 ble_example_connect(); 6 rt_thread_delay(5000); 7 ble_example_gatt_notify_change_by_uuid(); 8 9 return 0; 10 11} 12MSH_CMD_EXPORT(ble_example_start,ble_example_start)說明:把ble_example_start函數導出到msh命令行中執行,代碼中添加一些適當的延時是考慮到BLE設備執行連接需要等待一些時間。 (6)工程編譯與下載按照上面的步驟操作后,重新編譯工程下載到板子上,在STM32F411-NUCLEO的調試串口上輸入ble_example_start的命令進行通過 RW007 BLE 功能讀取mpu6050傳感器數據。

到此,STM32F411-NUCLEO通過 RW007 BLE 功能讀取mpu6050傳感器數據功能完成。

常見問題

1.下載程序過程中提示Warning: The core is locked up,導致程序燒錄失敗。

fb6b6c0a-bc28-11eb-bf61-12bb97331649.png

一般在屬性設置中重新配置工程的復位模式即可解決。

編輯:jq

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

    關注

    2565

    文章

    52861

    瀏覽量

    766111
  • usb
    usb
    +關注

    關注

    60

    文章

    8169

    瀏覽量

    272115
  • IDE
    IDE
    +關注

    關注

    0

    文章

    350

    瀏覽量

    47680
  • 開發板
    +關注

    關注

    25

    文章

    5645

    瀏覽量

    103934

原文標題:【RW007系列綜合實戰1】STM32+RW007實現BLE透傳功能

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    低功耗藍牙BLE傳模塊HM-BT4531的技術規格與應用指南

    SRAM和256KB FLASH,支持無線數據傳功能,通過與外部MCU通信實現BLE從設備與主設備的無線連接和數據通信。模塊支持多種AT指令用于配置和控制,如調整
    發表于 06-12 17:13 ?1次下載

    STM32WB09KEV6TR生成的代碼需要改哪些地方才能實現開啟BLE

    想問一下我利用STM32WB09KEV6TR生成的代碼還需要改哪些地方才能實現開啟BLE,并且發現GATT服務,麻煩大佬指點一下,我需要看哪些文檔~
    發表于 03-13 06:58

    BLE傳方案,IoT短距無線通信的“中堅力量”

    BLE傳技術實現設備間快速數據同步,支持多設備連接,功耗低,兼容性強,適用于物聯網設備。通過簡單設置即可上手,加速產品開發,廣泛應用于智能家居、醫療設備等領域,未來有望在IoT中發揮更重要作用。
    的頭像 發表于 02-11 10:14 ?1233次閱讀
    <b class='flag-5'>BLE</b><b class='flag-5'>透</b>傳方案,IoT短距無線通信的“中堅力量”

    BLE傳方案,IoT短距無線通信的“中堅力量”

    BLE傳技術是一種采用藍牙通信協議在設備之間實現數據透明傳輸的技術,設備在通信時會互相驗證身份和安全密鑰,具有較高的安全性。
    的頭像 發表于 01-21 14:23 ?442次閱讀
    <b class='flag-5'>BLE</b><b class='flag-5'>透</b>傳方案,IoT短距無線通信的“中堅力量”

    STM32WB55RG開發(3)----生成 BLE 程序連接手機APP

    本項目旨在利用 STM32WB55 微控制器的藍牙低功耗(BLE功能實現與手機 APP 的無線連接。通過配置時鐘源、啟動關鍵模塊(如 RCC、RTC、RF、IPCC 和 HSEM)
    的頭像 發表于 12-16 16:06 ?1655次閱讀
    <b class='flag-5'>STM32</b>WB55RG開發(3)----生成 <b class='flag-5'>BLE</b> 程序連接手機APP

    DTU終端CATCOM-100云端傳轉發應用

    本文介紹DTU設備數據傳轉發應用,實現點對點傳通信。應用場景DTU設備數據傳轉發功能的應用,大多是點對點通信
    的頭像 發表于 10-13 08:05 ?766次閱讀
    DTU終端CATCOM-100云端<b class='flag-5'>透</b>傳轉發應用

    【BearPi-Pico H3863星閃開發板體驗連載】藍牙 BLE 傳測試

    藍牙 BLE 傳測試 小熊派 Pico-H3863 開發板支持 BLE 1MHz/2MHz 頻寬、BLE4.0/4.1/4.2/5.0/5.1/5.2 協議、
    發表于 10-04 11:57

    探索未來通信的橋梁:揭秘網關傳功能的無限可能

    在日新月異的科技時代,信息的快速、準確傳輸已成為推動社會進步的重要力量。而在這場信息革命的浪潮中,網關作為連接不同網絡或系統的橋梁,扮演著至關重要的角色。其中,網關的傳功能更是以其獨特的魅力,為
    的頭像 發表于 09-30 09:01 ?452次閱讀
    探索未來通信的橋梁:揭秘網關<b class='flag-5'>透</b><b class='flag-5'>傳功能</b>的無限可能

    請問947和948的i2c傳功能如何打開?

    請問947和948的i2c傳功能如何打開,將reg03的第三位置1仍無法進行i2c通信,在948端使用邏輯分析儀檢測不到波形。 以下是初始化配置 i2c_947_send(ADDR_947
    發表于 09-26 07:40

    物聯網行業中透明傳輸詳解以及如何實現

    一 概述 TCP傳功能是一種數據傳輸技術,它允許在兩個TCP連接之間實現數據的無縫傳輸,保持原始連接的狀態和數據完整性。通過透傳,中間的服務器可以成為一個透明的傳輸通道,不對數據進行任何處理或修改
    的頭像 發表于 09-20 16:07 ?2360次閱讀
    物聯網行業中透明傳輸詳解以及如何<b class='flag-5'>實現</b>

    RW007 Wi-Fi 實戰分享

    通過RW007模組進行WiFi聯網;以及如何使用RT-Threadenv工具對項目進行配置,實現WiFi網絡延遲和帶寬測試。ENV環境2.步驟說明2.1RW007
    的頭像 發表于 08-10 08:35 ?1469次閱讀
    <b class='flag-5'>RW007</b> Wi-Fi 實戰分享

    ESP32-S3-WROOM-1U模組可以實現SPI的串口傳功能嗎?

    我們需要使用串口轉wifi模組傳輸終端采集的數據信息,請問下,ESP32-S3-WROOM-1U模組可以實現SPI的串口傳功能嗎?謝謝
    發表于 07-19 07:20

    請問RW007 DHCP為什么獲取不到IP地址?

    我的板子有一個有限的網口,一個無線網口用的RW007,開啟了DHCP功能,有限網口可以獲取到IP地址,無線碗口不能獲取到IP。所以懷疑我的RW007模塊FW是不是有問題 這個FW版本
    發表于 07-16 08:21

    請問SDK固件如何實現網絡傳?

    您好,想請問一下,我們現在一個項目需要用SDK來實現網路數據傳,但是調用 官方API :espconn_send()會自動把HTTP報文頭部給添加上去了,沒有有辦法實現像AT固件一樣直傳?
    發表于 07-10 06:59

    如何在openmv中實現傳功能

    Vision board的openmv固件wifi只能實現連接,一些通信和物聯網也用不了。如果我要實現在openmv中的圖傳功能該怎么做呢,求助各位大佬
    發表于 07-09 06:36
    主站蜘蛛池模板: 在线观看视频一区二区三区 | 亚洲最大成人综合网 | 思思久久好好热精品国产 | 国产黄大片在线观看 | 婷婷四房综合激情五月性色 | 国产综合色在线视频区色吧图片 | 国内精品第一页 | 视频在线观看免费播放www | 一卡二卡卡四卡无人区中文 | 中文字幕亚洲一区二区va在线 | 久操久操 | www.操你啦| 亚洲二区在线观看 | 欧美一区二区三区成人看不卡 | 午夜视频1000部免费看 | 四虎电影院 | 黄色在线观看视频 | 欧美黄免在线播放 | 美女张开腿露尿口给男人亲 | 狠狠色噜噜狠狠狠狠888奇米 | 黄网地址| 天堂资源中文在线 | 久久亚洲欧美成人精品 | 久久久久女人精品毛片九一 | 欧美一级特黄高清免费 | 日本不卡一区在线 | 中国国产aa一级毛片 | 成人免费午间影院在线观看 | 欧美性白人极品1819hd | 日本一本一道久久香蕉免费 | 色天天综合久久久久综合片 | 国产中文字幕一区 | 日日夜夜天天久久 | 亚洲人成在线精品不卡网 | 精品三级视频 | 午夜dy888理论三级 | 色多多免费在线观看 | 天堂网欧美 | 狠狠综合欧美综合欧美色 | 六月婷婷综合激情 | 美女在线看永久免费网址 |