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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

espnow 例程解析

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 espnow 例程解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、什么是espnow

短數據傳輸、無連接的快速通訊技術

2、應用范圍智能照明控制

(一)、 ESPNOW例程。

下面的例程展示了怎樣使用ESPNOW

步驟:

1、初始化wifi

A、TCP/ip適配器初始化

a、注冊事件處理函數初始化。

b、設置配置信息

c、選擇存儲類型

d、選擇wifi模式AP

e、啟動wifi

f、啟動wifi后設置通道,假如兩個設備在同一個通道上就不需要設置

2、初始化espnow

a、創建個隊列

b、注冊發送數據回調函數

c、注冊接受數據回調函數

d、設置主秘鑰

e、添加廣播點信息來點列表

f、初始化發送參數

g、創建espnow任務

*/

#include <stdlib.h>

#include <time.h>

#include <string.h>

#include <assert.h>

#include "freertos/FreeRTOS.h"

#include "freertos/semphr.h"

#include "freertos/timers.h"

#include "nvs_flash.h"

#include "esp_event_loop.h"

#include "tcpip_adapter.h"

#include "esp_wifi.h"

#include "esp_log.h"

#include "esp_system.h"

#include "esp_now.h"

#include "rom/ets_sys.h"

#include "rom/crc.h"

#include "espnow_example.h"


static const char *TAG = "espnow_example";


static xQueueHandle example_espnow_queue;


static uint8_t example_broadcast_mac[ESP_NOW_ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };

static uint16_t s_example_espnow_seq[EXAMPLE_ESPNOW_DATA_MAX] = { 0, 0 };


static void example_espnow_deinit(example_espnow_send_param_t *send_param);

1、事件處理函數

static esp_err_t example_event_handler(void *ctx, system_event_t *event)

{

??switch(event->event_id) {

??case SYSTEM_EVENT_STA_START: ? ? ? ? ? ? ? ? ? ?wifi啟動完成

????ESP_LOGI(TAG, "WiFi started");

????break;

??default:

????break;

??}

??return ESP_OK;

}


2、wifi初始化

static void example_wifi_init(void)

{

??tcpip_adapter_init(); TCP/ip適配器初始化

??ESP_ERROR_CHECK( esp_event_loop_init(example_event_handler, NULL) ); 注冊事件處理函數初始化。

??wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); 獲取wifi配置信息

??ESP_ERROR_CHECK( esp_wifi_init(&cfg) ); 設置配置信息

??ESP_ERROR_CHECK( esp_wifi_set_storage(WIFI_STORAGE_RAM) ); 選擇存儲類型

??ESP_ERROR_CHECK( esp_wifi_set_mode(ESPNOW_WIFI_MODE) ); 選擇wifi模式AP

??ESP_ERROR_CHECK( esp_wifi_start()); 啟動wifi

??ESP_ERROR_CHECK( esp_wifi_set_channel(CONFIG_ESPNOW_CHANNEL, 0) ); 啟動wifi后設置通道,假如兩個設備在同一個通道上就不需要設置

}


1、發送數據回調函數

static void example_espnow_send_cb(const uint8_t *mac_addr, esp_now_send_status_t status)

{

??example_espnow_event_t evt;

??example_espnow_event_send_cb_t *send_cb = &evt.info.send_cb;


??if (mac_addr == NULL) {

????ESP_LOGE(TAG, "Send cb arg error");

????return;

??}

設置發送事件,并添加到隊列中去

??evt.id = EXAMPLE_ESPNOW_SEND_CB;

??memcpy(send_cb->mac_addr, mac_addr, ESP_NOW_ETH_ALEN);

??send_cb->status = status;

??if (xQueueSend(example_espnow_queue, &evt, portMAX_DELAY) != pdTRUE) {

????ESP_LOGW(TAG, "Send send queue fail");

??}

}

2、接受回調函數

static void example_espnow_recv_cb(const uint8_t *mac_addr, const uint8_t *data, int len)

{

??example_espnow_event_t evt;

??example_espnow_event_recv_cb_t *recv_cb = &evt.info.recv_cb;


??if (mac_addr == NULL || data == NULL || len <= 0) {

????ESP_LOGE(TAG, "Receive cb arg error");

????return;

??}

設置接受事件,并添加到隊列中

??evt.id = EXAMPLE_ESPNOW_RECV_CB;

??memcpy(recv_cb->mac_addr, mac_addr, ESP_NOW_ETH_ALEN);

??recv_cb->data = malloc(len);

??if (recv_cb->data == NULL) {

????ESP_LOGE(TAG, "Malloc receive data fail");

????return;

??}

??memcpy(recv_cb->data, data, len);

??recv_cb->data_len = len;

??if (xQueueSend(example_espnow_queue, &evt, portMAX_DELAY) != pdTRUE) {

????ESP_LOGW(TAG, "Send receive queue fail");

????free(recv_cb->data);

??}

}


3、解析接收到的 ESPNOW數據(驗證crc校驗)

int example_espnow_data_parse(uint8_t *data, uint16_t data_len, uint8_t *state, uint16_t *seq, int *magic)

{

??example_espnow_data_t *buf = (example_espnow_data_t *)data;

??uint16_t crc, crc_cal = 0;


??if (data_len < sizeof(example_espnow_data_t)) {

????ESP_LOGE(TAG, "Receive ESPNOW data too short, len:%d", data_len);

????return -1;

??}


??*state = buf->state;

??*seq = buf->seq_num;

??*magic = buf->magic;

??crc = buf->crc;

??buf->crc = 0;

??crc_cal = crc16_le(UINT16_MAX, (uint8_t const *)buf, data_len);


??if (crc_cal == crc) {

????return buf->type;

??}


??return -1;

}


4、準備 ESPNOW 發送的數據

void example_espnow_data_prepare(example_espnow_send_param_t *send_param)

{

??example_espnow_data_t *buf = (example_espnow_data_t *)send_param->buffer;

??int i = 0;


??assert(send_param->len >= sizeof(example_espnow_data_t));


??buf->type = IS_BROADCAST_ADDR(send_param->dest_mac) ? EXAMPLE_ESPNOW_DATA_BROADCAST : EXAMPLE_ESPNOW_DATA_UNICAST;

??buf->state = send_param->state;

??buf->seq_num = s_example_espnow_seq[buf->type]++;

??buf->crc = 0;

??buf->magic = send_param->magic;

??for (i = 0; i < send_param->len - sizeof(example_espnow_data_t); i++) {

????buf->payload[i] = (uint8_t)esp_random();

??}

??buf->crc = crc16_le(UINT16_MAX, (uint8_t const *)buf, send_param->len);

}

1、espnow任務處理函數

static void example_espnow_task(void *pvParameter)

{

??example_espnow_event_t evt;

??uint8_t recv_state = 0;

??uint16_t recv_seq = 0;

??int recv_magic = 0;

??bool is_broadcast = false;

??int ret;


??vTaskDelay(5000 / portTICK_RATE_MS);

??ESP_LOGI(TAG, "Start sending broadcast data");


??/* Start sending broadcast ESPNOW data. */

??example_espnow_send_param_t *send_param = (example_espnow_send_param_t *)pvParameter; 1、獲取發送參數

??if (esp_now_send(send_param->dest_mac, send_param->buffer, send_param->len) != ESP_OK) {

????ESP_LOGE(TAG, "Send error");

????example_espnow_deinit(send_param);

????vTaskDelete(NULL);

??} 3、開始發送數據


??while (xQueueReceive(example_espnow_queue, &evt, portMAX_DELAY) == pdTRUE) { ?4、判斷是否有事件產生

????switch (evt.id) {

??????case EXAMPLE_ESPNOW_SEND_CB: ? ? ? 5、發送事件處理函數

??????{

????????example_espnow_event_send_cb_t *send_cb = &evt.info.send_cb;

????????is_broadcast = IS_BROADCAST_ADDR(send_cb->mac_addr);


????????ESP_LOGD(TAG, "Send data to "MACSTR", status1: %d", MAC2STR(send_cb->mac_addr), send_cb->status);


????????if (is_broadcast && (send_param->broadcast == false)) {

??????????break;

????????}


????????if (!is_broadcast) {

??????????send_param->count--;

??????????if (send_param->count == 0) {

????????????ESP_LOGI(TAG, "Send done");

????????????example_espnow_deinit(send_param);

????????????vTaskDelete(NULL);

??????????}

????????}


????????/* Delay a while before sending the next data. */

????????if (send_param->delay > 0) {

??????????vTaskDelay(send_param->delay/portTICK_RATE_MS);

????????}


????????ESP_LOGI(TAG, "send data to "MACSTR"", MAC2STR(send_cb->mac_addr));


????????memcpy(send_param->dest_mac, send_cb->mac_addr, ESP_NOW_ETH_ALEN);

????????example_espnow_data_prepare(send_param);


????????/* Send the next data after the previous data is sent. */

????????if (esp_now_send(send_param->dest_mac, send_param->buffer, send_param->len) != ESP_OK) {

??????????ESP_LOGE(TAG, "Send error");

??????????example_espnow_deinit(send_param);

??????????vTaskDelete(NULL);

????????}

????????break;

??????}

??????case EXAMPLE_ESPNOW_RECV_CB: ? ?5、接受事件處理函數

??????{

????????example_espnow_event_recv_cb_t *recv_cb = &evt.info.recv_cb;


????????ret = example_espnow_data_parse(recv_cb->data, recv_cb->data_len, &recv_state, &recv_seq, &recv_magic);

????????free(recv_cb->data);

????????if (ret == EXAMPLE_ESPNOW_DATA_BROADCAST) {

??????????ESP_LOGI(TAG, "Receive %dth broadcast data from: "MACSTR", len: %d", recv_seq, MAC2STR(recv_cb->mac_addr), recv_cb->data_len);


??????????/* If MAC address does not exist in peer list, add it to peer list. */

??????????if (esp_now_is_peer_exist(recv_cb->mac_addr) == false) {

????????????esp_now_peer_info_t *peer = malloc(sizeof(esp_now_peer_info_t));

????????????if (peer == NULL) {

??????????????ESP_LOGE(TAG, "Malloc peer information fail");

??????????????example_espnow_deinit(send_param);

??????????????vTaskDelete(NULL);

????????????}

????????????memset(peer, 0, sizeof(esp_now_peer_info_t));

????????????peer->channel = CONFIG_ESPNOW_CHANNEL;

????????????peer->ifidx = ESPNOW_WIFI_IF;

????????????peer->encrypt = true;

????????????memcpy(peer->lmk, CONFIG_ESPNOW_LMK, ESP_NOW_KEY_LEN);

????????????memcpy(peer->peer_addr, recv_cb->mac_addr, ESP_NOW_ETH_ALEN);

????????????ESP_ERROR_CHECK( esp_now_add_peer(peer) );

????????????free(peer);

??????????}


??????????/* Indicates that the device has received broadcast ESPNOW data. */

??????????if (send_param->state == 0) {

????????????send_param->state = 1;

??????????}


??????????/* If receive broadcast ESPNOW data which indicates that the other device has received

???????????* broadcast ESPNOW data and the local magic number is bigger than that in the received

???????????* broadcast ESPNOW data, stop sending broadcast ESPNOW data and start sending unicast

???????????* ESPNOW data.

???????????*/

??????????if (recv_state == 1) {

????????????/* The device which has the bigger magic number sends ESPNOW data, the other one

?????????????* receives ESPNOW data.

?????????????*/

????????????if (send_param->unicast == false && send_param->magic >= recv_magic) {

?????????? ??ESP_LOGI(TAG, "Start sending unicast data");

?????????? ??ESP_LOGI(TAG, "send data to "MACSTR"", MAC2STR(recv_cb->mac_addr));


?????????? ??/* Start sending unicast ESPNOW data. */

??????????????memcpy(send_param->dest_mac, recv_cb->mac_addr, ESP_NOW_ETH_ALEN);

??????????????example_espnow_data_prepare(send_param);

??????????????if (esp_now_send(send_param->dest_mac, send_param->buffer, send_param->len) != ESP_OK) {

????????????????ESP_LOGE(TAG, "Send error");

????????????????example_espnow_deinit(send_param);

????????????????vTaskDelete(NULL);

??????????????}

??????????????else {

????????????????send_param->broadcast = false;

????????????????send_param->unicast = true;

??????????????}

????????????}

??????????}

????????}

????????else if (ret == EXAMPLE_ESPNOW_DATA_UNICAST) {

??????????ESP_LOGI(TAG, "Receive %dth unicast data from: "MACSTR", len: %d", recv_seq, MAC2STR(recv_cb->mac_addr), recv_cb->data_len);


??????????/* If receive unicast ESPNOW data, also stop sending broadcast ESPNOW data. */

??????????send_param->broadcast = false;

????????}

????????else {

??????????ESP_LOGI(TAG, "Receive error data from: "MACSTR"", MAC2STR(recv_cb->mac_addr));

????????}

????????break;

??????}

??????default:

????????ESP_LOGE(TAG, "Callback type error: %d", evt.id);

????????break;

????}

??}

}


static esp_err_t example_espnow_init(void)

{

??example_espnow_send_param_t *send_param;

??example_espnow_queue = xQueueCreate(ESPNOW_QUEUE_SIZE, sizeof(example_espnow_event_t)); 創建個隊列

??if (example_espnow_queue == NULL) {

????ESP_LOGE(TAG, "Create mutex fail");

????return ESP_FAIL;

??}


??/* Initialize ESPNOW and register sending and receiving callback function. */

??ESP_ERROR_CHECK( esp_now_init() ); 初始哈espnow

??ESP_ERROR_CHECK( esp_now_register_send_cb(example_espnow_send_cb) ); 注冊發送數據回調函數

??ESP_ERROR_CHECK( esp_now_register_recv_cb(example_espnow_recv_cb) );注冊接受數據回調函數


??

??ESP_ERROR_CHECK( esp_now_set_pmk((uint8_t *)CONFIG_ESPNOW_PMK) );設置主秘鑰


??/* Add broadcast peer information to peer list. */

??esp_now_peer_info_t *peer = malloc(sizeof(esp_now_peer_info_t));

??if (peer == NULL) {

????ESP_LOGE(TAG, "Malloc peer information fail");

????vSemaphoreDelete(example_espnow_queue);

????esp_now_deinit();

????return ESP_FAIL;

??}

??memset(peer, 0, sizeof(esp_now_peer_info_t));

??peer->channel = CONFIG_ESPNOW_CHANNEL;

??peer->ifidx = ESPNOW_WIFI_IF;

??peer->encrypt = false;

??memcpy(peer->peer_addr, example_broadcast_mac, ESP_NOW_ETH_ALEN);

??ESP_ERROR_CHECK( esp_now_add_peer(peer) ); 添加廣播點信息來點列表

??free(peer);


??/* Initialize sending parameters. */

??send_param = malloc(sizeof(example_espnow_send_param_t));

??memset(send_param, 0, sizeof(example_espnow_send_param_t));

??if (send_param == NULL) {

????ESP_LOGE(TAG, "Malloc send parameter fail");

????vSemaphoreDelete(example_espnow_queue);

????esp_now_deinit();

????return ESP_FAIL;

??}

??send_param->unicast = false;

??send_param->broadcast = true;

??send_param->state = 0;

??send_param->magic = esp_random();

??send_param->count = CONFIG_ESPNOW_SEND_COUNT;

??send_param->delay = CONFIG_ESPNOW_SEND_DELAY;

??send_param->len = CONFIG_ESPNOW_SEND_LEN;

??send_param->buffer = malloc(CONFIG_ESPNOW_SEND_LEN);

??if (send_param->buffer == NULL) {

????ESP_LOGE(TAG, "Malloc send buffer fail");

????free(send_param);

????vSemaphoreDelete(example_espnow_queue);

????esp_now_deinit();

????return ESP_FAIL;

??}

??memcpy(send_param->dest_mac, example_broadcast_mac, ESP_NOW_ETH_ALEN);

??example_espnow_data_prepare(send_param);初始化發送參數


??xTaskCreate(example_espnow_task, "example_espnow_task", 2048, send_param, 4, NULL);

創建espnow任務

??return ESP_OK;

}

5、釋放資源

static void example_espnow_deinit(example_espnow_send_param_t *send_param)

{

??free(send_param->buffer);

??free(send_param);

??vSemaphoreDelete(example_espnow_queue);

??esp_now_deinit();

}


void app_main()

{

??// 1、nvs初始化

??esp_err_t ret = nvs_flash_init();

??if (ret == ESP_ERR_NVS_NO_FREE_PAGES) {

????ESP_ERROR_CHECK( nvs_flash_erase() );

????ret = nvs_flash_init();

??}

??ESP_ERROR_CHECK( ret );

// 2、wifi初始化

??example_wifi_init();

// 3 espnow初始化

??example_espnow_init();

}


總結

以上是生活随笔為你收集整理的espnow 例程解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

最新午夜电影 | 免费网站在线观看成人 | 亚洲一二三在线 | 狠狠干 狠狠操 | 欧美黑人xxxx猛性大交 | 日日干网 | 午夜999| 久久福利影视 | 最新超碰在线 | 91福利在线观看 | 四虎成人精品永久免费av | 国产一级黄 | 国产传媒中文字幕 | 99久久国产免费免费 | 美女视频黄免费网站 | 福利一区在线 | 欧美精品九九99久久 | 夜夜操天天干, | 91av在线免费 | 国产精品欧美日韩在线观看 | 在线 高清 中文字幕 | 亚洲综合情| 国产一区二区三区免费视频 | 久久精品站 | 亚洲黄色免费在线看 | 亚洲免费不卡 | 一区二区三区在线视频观看58 | 在线观看国产v片 | 国内丰满少妇猛烈精品播放 | 国产亚洲精品bv在线观看 | 欧美精品久久久久性色 | 精品欧美一区二区精品久久 | 欧美高清视频不卡网 | 亚洲精品在线播放视频 | 国产91综合一区在线观看 | 日韩av一区二区三区 | 亚洲特级毛片 | 成人国产网址 | 免费亚洲婷婷 | 久久精品国产一区二区电影 | 丁香六月网| 国产女教师精品久久av | 91免费网站在线观看 | 天天操天天拍 | 日韩国产精品毛片 | 激情网第四色 | av资源免费看 | 国产成人精品女人久久久 | 欧美一级视频一区 | 成年人免费看片 | 亚洲国产中文字幕在线 | 久久夜色精品国产欧美一区麻豆 | 美女视频国产 | av免费看av | 手机在线免费av | 国产精品一区久久久久 | 在线免费中文字幕 | 久久久亚洲成人 | 久久视频在线观看 | 国产精品国产自产拍高清av | 日韩一区二区在线免费观看 | 五月婷在线观看 | h视频日本 | 超碰av在线免费观看 | 日韩中文字幕视频在线观看 | 久久婷婷一区二区三区 | 色噜噜狠狠狠狠色综合久不 | 成人av电影在线播放 | 国产成人精品一区二区三区福利 | 欧美性生活小视频 | 六月丁香久久 | 久久精品一| 激情久久综合网 | 91在线精品播放 | 在线观看视频你懂得 | 国产一区二区三区免费观看视频 | 欧美精品久久99 | 日韩videos高潮hd | 日韩视频免费观看高清 | 中文字幕在线电影 | 久久xxxx| 亚洲天堂网在线播放 | 射射射综合网 | 日批视频在线观看免费 | 玖玖色在线观看 | 久久婷婷五月综合色丁香 | 九九免费在线视频 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产高清av在线播放 | 国产手机av | 国产片网站 | 欧美污网站 | 欧美aa在线 | 欧美精品999| 天天干天天插 | 美女免费视频观看网站 | 国产亚洲精品久久久久久 | 日韩精品三区四区 | 日本久久视频 | 中文字幕a在线 | av在线收看 | av资源在线看| 天天综合五月天 | 亚洲综合视频在线 | av电影免费在线看 | 欧美性超爽 | 96av麻豆蜜桃一区二区 | 国产精品二区在线观看 | 91视频大全 | 成年人免费看的视频 | 久久综合网色—综合色88 | 国产精品地址 | 99久久精品国产一区二区成人 | 久要激情网 | 在线国产福利 | 欧美做受高潮电影o | 在线国产日本 | 国产麻豆电影在线观看 | 亚洲 中文 欧美 日韩vr 在线 | 日韩羞羞 | 色窝资源| 成人av视屏| 四虎在线免费视频 | 美女视频久久 | 91视频中文字幕 | 精品国产免费看 | 西西大胆免费视频 | 久久久久久麻豆 | 欧美黄色免费 | 久久久久久久久久福利 | 99精品视频在线免费观看 | 91精品久久久久久综合乱菊 | 亚洲三级av| 欧美一级视频在线观看 | 久久久久国产精品一区 | 日韩一区二区三免费高清在线观看 | 久久ww| www狠狠操 | 97超碰福利久久精品 | 久久成人福利 | 日韩免费一区二区三区 | 日韩成人精品一区二区三区 | 免费观看成人 | 国产自偷自拍 | 狠狠色噜噜狠狠狠狠2021天天 | 日韩免费av在线 | 麻豆传媒电影在线观看 | 国产免费亚洲高清 | 亚洲理论片在线观看 | 国产精品亚州 | 久久成人午夜 | 免费观看国产成人 | 91九色蝌蚪视频网站 | 一区二区伦理 | 国产亚洲精品综合一区91 | 不卡av电影在线观看 | 久久精品国产免费看久久精品 | 美腿丝袜一区二区三区 | 婷婷丁香色综合狠狠色 | 在线黄av| 亚洲成av片人久久久 | 久久噜噜少妇网站 | 日韩电影在线观看一区二区三区 | 色综合久久久久综合99 | 91九色蝌蚪视频在线 | 91在线视频观看免费 | 精品一区二区av | 久久精品视频在线 | 在线观看中文 | 国产精品久久久久久久久久久久午 | 免费看的黄色网 | 久久久久久久av麻豆果冻 | 四虎永久网站 | 久久手机免费视频 | 亚洲激情六月 | 人人插人人草 | 蜜臀精品久久久久久蜜臀 | 免费观看xxxx9999片 | 亚洲欧美婷婷六月色综合 | 国产亚洲va综合人人澡精品 | 在线免费观看黄色 | av免费线看| 国产中文在线播放 | 91插插影库 | 国产群p| 久久国产精品影片 | 天天爽天天摸 | 在线免费观看欧美日韩 | 亚洲春色综合另类校园电影 | 亚洲香蕉在线观看 | 黄污视频网站大全 | 高清一区二区 | 亚洲综合色视频 | 国产成人免费网站 | 日韩视频一区二区 | 六月丁香婷婷网 | 欧美成人精品三级在线观看播放 | 国产剧情久久 | 久久久亚洲精品 | 日韩特黄av | 国产一级黄 | 中文字幕在线观看你懂的 | 亚洲精品tv久久久久久久久久 | 日韩视频免费观看高清 | 日韩高清免费观看 | 黄色大全视频 | 成人小电影在线看 | 亚洲精品在线观看的 | 99久久9 | 99精品免费久久久久久久久 | 黄色毛片在线 | 国产成人一区在线 | 亚洲国产精品视频在线观看 | 久久在线影院 | 丁香久久五月 | 亚洲日本韩国一区二区 | 欧洲激情综合 | 香蕉国产91| 久久精品a | 久久香蕉国产精品麻豆粉嫩av | 波多野结衣在线视频一区 | 福利一区在线视频 | 久射网| 激情五月婷婷综合网 | 免费在线色 | 亚洲精品日韩一区二区电影 | 中文字幕 国产精品 | 国产在线久草 | 欧美一二三四在线 | 国产成人久久精品77777 | 久久免费一级片 | 久久综合影视 | wwwwww色 | 国内精自线一二区永久 | 99精品视频中文字幕 | 国产一区精品在线观看 | 黄色亚洲免费 | 国产色视频一区二区三区qq号 | 精品视频免费看 | 操操日日| 国产精品国产三级国产专区53 | 免费午夜视频在线观看 | 免费视频网 | 97成人精品视频在线观看 | 国产精品18久久久久vr手机版特色 | 国产精品毛片完整版 | 亚洲国产日韩欧美在线 | 亚洲jizzjizz日本少妇 | 97国产小视频 | 久久精品久久国产 | 日韩有码中文字幕在线 | 99精品视频在线 | 中文字幕 成人 | 国产拍在线 | 日批视频 | 91人人爽人人爽人人精88v | 欧美做受xxx | 国产精品久久久久久久7电影 | 精品久久久久久亚洲综合网站 | av手机版| 在线观看视频日韩 | 免费日韩精品 | 黄网在线免费观看 | 成人羞羞视频在线观看免费 | 亚洲精品久久久久久国 | 五月天久久综合 | 一区二区三区精品在线视频 | 91精品一区二区三区蜜桃 | 国产一级视频免费看 | 91大神电影 | 天天摸天天舔天天操 | 伊人影院av | 色天天久久 | 国产.精品.日韩.另类.中文.在线.播放 | 国产一区二区精品久久91 | 国产精品入口麻豆www | 黄色精品久久 | 国产精品一区二区三区视频免费 | 97在线观看免费视频 | 亚洲毛片视频 | 99色| 激情五月综合网 | 天堂av网在线 | 国产福利电影网址 | 西西4444www大胆视频 | 国产精品久久久久久久久久 | 亚洲欧美乱综合图片区小说区 | 国产精品伦一区二区三区视频 | 国产精品一区二区久久久久 | 丰满少妇久久久 | 天天操夜夜操国产精品 | 精品国产黄色片 | 国产精品女人网站 | 国产三级精品三级在线观看 | 亚洲国产午夜视频 | 天天色综合天天 | 日韩一区在线播放 | 色综合久久综合网 | 在线观看的av网站 | av日韩在线网站 | 久久电影国产免费久久电影 | 亚洲精品欧美专区 | 9999激情 | 97人人视频| 91成人在线免费观看 | 中国一级特黄毛片大片久久 | 成人毛片久久 | 黄色a视频免费 | 亚洲精品资源 | 亚洲一二三区精品 | 精品久久久久国产 | 奇米网777| 亚洲精品18日本一区app | 成人免费网站视频 | 国产成人精品一区二区三区福利 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产日韩欧美在线播放 | 国产精品久久久久av | 国产精品久久久999 国产91九色视频 | 视频国产一区二区三区 | 国产精品久久一区二区无卡 | 精品美女久久久久久免费 | 免费看色的网站 | wwxxxx日本 | 国产高清成人 | 伊人天天干 | 亚洲成人在线免费 | 91麻豆精品国产91久久久更新时间 | www日韩视频 | 2022久久国产露脸精品国产 | 久久精品国产一区 | 久久视频这里只有精品 | 国产成人免费观看久久久 | 久久综合九色综合久久久精品综合 | 欧美激情第28页 | 91香蕉视频污在线 | 一区二区国产精品 | 狠狠狠色丁香综合久久天下网 | 人人澡人人爽欧一区 | 日韩高清在线观看 | 又黄又爽免费视频 | 亚洲性xxxx | 日韩免费在线网站 | 国产视频1 | 久久99亚洲精品久久久久 | 久久久精品网站 | 麻豆国产精品视频 | 午夜精品福利一区二区三区蜜桃 | 91理论片午午伦夜理片久久 | 97免费在线视频 | 成人av在线资源 | 开心丁香婷婷深爱五月 | 九九热精品视频在线观看 | 中国黄色一级大片 | 五月婷婷中文字幕 | 四虎最新入口 | 91av视频观看 | 中文字幕第一页在线 | 狠狠干网址| 一二三区视频在线 | 久久免费国产视频 | 欧美资源在线观看 | 国产美女视频网站 | 丰满少妇在线观看资源站 | www.亚洲激情.com| 久久av高清 | 国产精品视频在线观看 | 天天干天天拍天天操天天拍 | 国内成人综合 | 婷婷视频导航 | 99热网站 | 日韩av黄| 久久综合久久综合久久综合 | 国产乱码精品一区二区三区介绍 | 久久久久免费精品国产 | 免费观看一区二区 | 日韩一区精品 | 中文字幕中文字幕在线中文字幕三区 | 五月天久久激情 | 日韩av看片 | 免费在线观看av网站 | 91资源在线| www.五月天色| 久久久国产影院 | 欧美日韩精品久久久 | 色一级片| 91亚洲永久精品 | 精品国产电影一区 | 日韩欧美国产成人 | 色偷偷网站视频 | 国产成人黄色片 | 激情婷婷久久 | 99久久精品国产一区二区三区 | 午夜婷婷综合 | 久久久久伦理电影 | 91av电影| 婷婷视频| 激情视频国产 | 99在线免费观看视频 | 精品国产成人av | 91国内产香蕉 | 中文字幕字幕中文 | 亚洲 成人 一区 | 欧美国产精品久久久久久免费 | www99久久| 免费中文字幕视频 | 国产原创在线 | 色综合久| 国模精品一区二区三区 | 国产精品久久久久久久av电影 | 亚洲男男gⅴgay双龙 | 懂色av一区二区三区蜜臀 | 人人草在线观看 | 日韩av片在线 | 亚洲在线免费视频 | a在线视频v视频 | 97超碰影视 | 99精品在线免费在线观看 | 最近中文字幕在线 | 日韩免费在线一区 | a久久久久| 夜添久久精品亚洲国产精品 | 欧美精品在线免费 | 国产精品1区 | 天天干,天天草 | 91成人免费看 | 99热精品国产一区二区在线观看 | 日本99干网 | 狠狠激情中文字幕 | 亚洲 中文 欧美 日韩vr 在线 | 国产精品福利在线观看 | 在线播放日韩 | 黄色av免费电影 | 国产三级午夜理伦三级 | 精品国产观看 | 一级黄色大片在线观看 | 日韩欧美精品免费 | 日日摸日日| 1024手机看片国产 | 日日爱夜夜爱 | 中文字幕人成不卡一区 | 一区电影| www.久久成人 | 亚洲免费永久精品国产 | 亚洲精品视频在线免费播放 | 一级黄色在线视频 | 亚洲午夜av久久乱码 | 久久1电影院 | 日本性xxx| 99热精品国产一区二区在线观看 | 国产精品com | 91精品网站| 国产精品一区二区免费在线观看 | 免费观看www小视频的软件 | 亚洲国产三级在线观看 | 三级黄色a | 中文字幕在线免费97 | 国产精品9999久久久久仙踪林 | 国产精品久久久久久久久久新婚 | 天天鲁一鲁摸一摸爽一爽 | 欧美三级在线播放 | 中文字幕日韩免费视频 | 久久官网 | 国产精品69久久久久 | 9ⅰ精品久久久久久久久中文字幕 | 国产精品h在线观看 | 日韩三级视频在线看 | av高清不卡 | 狠狠撸电影 | 99热超碰 | 久久精品久久久久电影 | 日韩中文字幕视频在线观看 | 国产手机av | 国产成人精品一区二区三区在线 | 欧美va电影 | 99久久久成人国产精品 | 欧美激情视频在线免费观看 | 亚洲精品高清一区二区三区四区 | 久久久久久国产一区二区三区 | 九九久久国产精品 | 国产免费一区二区三区最新6 | 国产999久久久| 日韩欧美xx | 美女黄频视频大全 | 日韩在线资源 | 在线观看精品一区 | 久章操| 国产精品免费久久久久 | 天天干天天干天天 | 人人射人人 | 日韩欧美99| 97精品国产一二三产区 | 国内久久精品视频 | 黄色精品网站 | 特级西西444www大胆高清无视频 | 中文字字幕在线 | 亚洲97在线 | 在线视频久久 | 国产精品h在线观看 | aa一级片 | 日本三级人妇 | 96久久欧美麻豆网站 | 国产一区二区久久久 | 日韩专区一区二区 | 最新国产视频 | 99精品国产一区二区 | 国产精品久久久久一区二区三区 | 免费看v片 | 日韩亚洲在线观看 | 国产精品一区欧美 | 四虎影视精品永久在线观看 | 69国产在线观看 | 婷婷丁香五 | 中文av影院| 999毛片| 在线精品视频免费观看 | 在线免费色 | 成人精品999| 69夜色精品国产69乱 | 色婷丁香 | 欧美一级性生活 | 天无日天天操天天干 | 日本女人的性生活视频 | 国产一级二级在线 | 中文字幕欧美激情 | 成年人在线播放视频 | 国产精品刺激对白麻豆99 | 中文理论片 | 韩国一区在线 | 亚洲四虎在线 | 中文字幕乱码电影 | 激情在线免费视频 | 久久嗨| 伊人开心激情 | 夜夜摸夜夜爽 | 国产亚洲精品久久久久久大师 | 亚洲精品在 | 亚洲人人av | 精品久久久久久亚洲综合网站 | av激情五月 | 天天干,狠狠干 | 天天狠狠干 | 国产在线第三页 | 国产精品视频免费观看 | 久久久国产精品网站 | 国产精品初高中精品久久 | 午夜视频在线观看一区 | 99精品国产亚洲 | av在线激情| 欧美va在线观看 | 亚洲另类视频在线 | 久久精品国产一区二区电影 | 成人小视频在线观看免费 | 国产精品毛片一区视频播 | 欧美精品久久99 | 亚洲成人一区 | 精品久久网站 | 欧美男女爱爱视频 | 精品久久久久久亚洲综合网站 | 天天爽综合网 | 亚洲人成人天堂h久久 | 国产在线 一区二区三区 | 激情喷水 | 欧美精品国产综合久久 | 国产视频一级 | 亚洲成人黄| 人人看人人做人人澡 | 久草在线欧美 | 国产精品一区二区美女视频免费看 | 久久视频在线看 | 视频一区二区免费 | 一级片免费观看 | 亚洲 欧美变态 另类 综合 | 91精品在线免费观看视频 | 欧美高清视频不卡网 | 国产精品一区在线播放 | 99久久爱 | 日日夜夜狠狠 | 精品久久久久久久久久久久久久久久 | 久久久精品网 | 国产群p| 欧美日本不卡高清 | 国产精品人人做人人爽人人添 | 久久久91精品国产一区二区精品 | 久久久久99999 | 九九综合在线 | 中文字幕成人在线观看 | 国产精品五月天 | 免费看色的网站 | wwxxx日本| 黄色在线观看网站 | 国产麻豆视频 | 亚洲理论视频 | 美女黄濒| 一级性av| 久久久99精品免费观看乱色 | 国产精品久久久久久久婷婷 | 欧美成人a在线 | 色综合婷婷 | 日韩一区二区三 | 亚洲精品免费在线观看 | 91在线在线观看 | 波多野结衣理论片 | 看片黄网站 | 国产精品久久久久久久久久不蜜月 | 精品91视频 | 黄色成品视频 | 欧美大香线蕉线伊人久久 | 色播五月婷婷 | 日韩午夜视频在线观看 | 五月天婷亚洲天综合网精品偷 | 97超碰国产精品女人人人爽 | 嫩草91影院| 日韩在线观看你懂得 | 五月婷婷丁香在线观看 | 亚洲综合在线一区二区三区 | 婷婷丁香狠狠爱 | 狠狠久久伊人 | 五月天婷亚洲天综合网鲁鲁鲁 | 青青河边草免费观看完整版高清 | 日韩高清av | 香蕉色综合 | 色a4yy| 精品九九九 | 夜夜嗨av色一区二区不卡 | 亚洲 欧洲 国产 日本 综合 | 国产精品第一视频 | 一区二区中文字幕在线 | 久久精品免费看 | 91在线成人 | av大全在线观看 | 91福利视频久久久久 | 深爱激情五月综合 | 18网站在线观看 | 国内精自线一二区永久 | 亚洲91中文字幕无线码三区 | 成人h动漫精品一区二 | 摸阴视频| 国产精品成人免费精品自在线观看 | 在线精品视频免费播放 | 国产色综合 | 色噜噜日韩精品欧美一区二区 | av经典在线 | 国产黄色一级片在线 | 天天操人人干 | 在线v片 | 麻豆视频一区 | 日韩一区在线免费观看 | 黄色小视频在线观看免费 | 精品国产一区二区三区久久影院 | 国产美女视频网站 | 国产精品自产拍在线观看 | 最新国产精品久久精品 | 色视频在线免费 | 97色视频在线| 色94色欧美 | 最近中文字幕大全中文字幕免费 | 日本爽妇网 | 91精品国产欧美一区二区成人 | 毛片a级片 | 国产麻豆果冻传媒在线观看 | 最新国产在线视频 | 人人藻人人澡人人爽 | 操操操综合 | 欧美精品三级在线观看 | 精品国产乱码久久久久久1区2匹 | 九九九在线观看 | 欧美动漫一区二区三区 | 91大片成人网 | 综合天堂av久久久久久久 | 江苏妇搡bbbb搡bbbb | 日韩,精品电影 | 香蕉视频导航 | 国产成人一区二区三区电影 | 成人小视频在线观看免费 | 日韩大片在线免费观看 | 国产精品美女久久久久久免费 | 日本午夜在线亚洲.国产 | 成人影音av | 成人免费xxx在线观看 | 色姑娘综合 | 香蕉久久久久久久 | 久久美女免费视频 | 在线观看免费日韩 | 人人揉人人揉人人揉人人揉97 | 久草在线资源免费 | 久久久久久久久久久电影 | 亚洲精品88欧美一区二区 | 欧美日韩一区二区久久 | 亚洲经典视频在线观看 | 国产精品久久久久久69 | 欧美久草网 | 国内精品国产三级国产aⅴ久 | 日韩精品一区二区三区电影 | 久青草视频 | 伊人色综合久久天天网 | 国产视频欧美视频 | 国产视频二 | 精品一二 | 9999国产| 在线免费观看的av网站 | 中文字幕欧美三区 | 成人97视频 | 91麻豆精品国产自产在线 | 久久综合五月婷婷 | 天天射狠狠干 | 精品高清美女精品国产区 | 人人添人人澡人人澡人人人爽 | 日韩在线一区二区免费 | 99热这里只有精品8 久久综合毛片 | 三级黄色片子 | 国产精品亚洲人在线观看 | 狠狠色丁香婷婷综合基地 | 日韩欧美高清 | 精品美女久久久久 | 成人在线播放视频 | 91人人澡 | 国产精品成人一区二区三区吃奶 | av一级二级 | 99久久久久久久 | av中文字幕网 | 色欧美88888久久久久久影院 | 久久色中文字幕 | 99在线观看视频网站 | 美女一级毛片视频 | 五月开心色 | 免费在线观看日韩欧美 | 欧美日韩在线精品 | 国内成人综合 | 日本三级不卡视频 | 亚洲日本va午夜在线电影 | 欧美极品久久 | 麻豆视频国产 | 国产精品一区二区白浆 | 国产美女免费看 | 日韩免费电影一区二区三区 | 久久精品视频3 | 91视频 - 114av| 成人av免费在线 | 久久国产福利 | 色在线网站 | 亚洲午夜小视频 | 欧美日韩二三区 | 久久精品99国产精品日本 | 日韩精品中文字幕一区二区 | 超碰官网| 国产人成看黄久久久久久久久 | a天堂在线看 | 国内精品久久久精品电影院 | 成年人在线免费看视频 | 亚洲乱码在线 | 在线视频免费观看 | 在线日韩三级 | 91精彩视频在线观看 | 免费在线观看午夜视频 | 午夜久久福利影院 | 在线亚洲日本 | 69国产精品视频免费观看 | a√国产免费a| 美女久久网站 | 99精品成人 | 欧美精品久久久久久久久久久 | 午夜久草| 国产网红在线观看 | 亚洲天天在线 | 国产一级特黄毛片在线毛片 | 久久成人18免费网站 | 香蕉在线视频观看 | 国产一区二区手机在线观看 | 国产不卡视频在线播放 | 久久视频在线观看 | 国产三级视频在线 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产黄色片久久久 | 精品综合久久久 | 亚洲精品理论 | 日日干天天射 | 亚洲一级电影视频 | 久久精品视频99 | 91麻豆国产| 久草视频在线播放 | 天天天操操操 | 亚洲日本在线视频观看 | 国产精品久久久久永久免费看 | 丁香婷婷激情国产高清秒播 | 国产性xxxx| 欧美日韩精品区 | 久久99久久99精品中文字幕 | 美女黄色网在线播放 | 日韩欧三级 | a天堂免费 | 成年人免费在线 | 国产精品久久精品 | 成人精品电影 | 在线播放91 | 日韩va在线观看 | 欧美9999| 精品久久久久国产 | 亚洲精品一区二区在线观看 | 国产精品视频在线观看 | av成人在线网站 | av一区在线 | 欧美日韩一区二区三区不卡 | 国产色综合 | 免费观看全黄做爰大片国产 | 国产精品福利av | 91丨九色丨国产在线 | 免费观看高清 | 中文字幕文字幕一区二区 | 日韩高清久久 | 日本久久久久久久久久 | 97超碰成人 | 国产资源精品在线观看 | 999成人网 | 91精品黄色| 操高跟美女 | 黄色三级免费片 | 欧美精品久久久久性色 | 亚洲激情在线播放 | 亚洲黄a | 国产福利免费看 | 99热这里只有精品国产首页 | www狠狠操| www.在线观看视频 | 青草视频在线免费 | 国产福利91精品 | 国产精品中文在线 | 欧美激情xxxx性bbbb | 不卡的av在线播放 | 爱色婷婷| 精品视频9999 | 在线播放国产一区二区三区 | 久久精品精品电影网 | 亚洲激情小视频 | 中文字幕在线有码 | 一区二区三区日韩精品 | 91成人免费视频 | 日韩久久久久久久久久久久 | 一区 二区电影免费在线观看 | 在线观看一 | 日韩精品一区二区三区第95 | 久久国产精彩视频 | 日日操日日插 | 99se视频在线观看 | 日韩在线观看小视频 | 中文字幕日韩国产 | 在线播放视频一区 | 九九热有精品 | 久草精品视频在线播放 | 欧美精品在线观看一区 | 一区在线观看视频 | 亚洲,国产成人av | 91丨九色丨国产在线 | 亚洲精品在线国产 | 日韩av播放在线 | 久久成熟 | 成人欧美一区二区三区黑人麻豆 | 91自拍91| 亚洲视频一| 中文字幕乱码在线播放 | 亚洲国产精品99久久久久久久久 | 亚洲激情 在线 | 色999精品 | 国产精品毛片久久蜜 | 久草精品视频在线看网站免费 | 国产精品免费视频观看 | 草久久久久 | japanesefreesex中国少妇 | 成人免费在线播放 | 免费网站观看www在线观看 | 久久69av| 最近免费中文字幕大全高清10 | 天堂在线免费视频 | 久久高清国产视频 | 激情网在线观看 | 久久久久在线观看 | 99精品国产兔费观看久久99 | 亚洲精品网站在线 | 91麻豆精品一区二区三区 | 久久久久欠精品国产毛片国产毛生 | 2023年中文无字幕文字 | www.亚洲精品视频 | 日韩精品一区二 | 一级一片免费观看 | 亚洲一区二区三区精品在线观看 | 欧美国产日韩激情 | 国产一区二区成人 | 午夜精品一区二区三区免费 | 丁香在线视频 | 亚洲人成人在线 | 日韩av男人的天堂 | 麻豆视频免费入口 | 欧美极品少妇xbxb性爽爽视频 | 国产在线观看,日本 | 在线视频国产区 | 看片的网址 | 日本久久久精品视频 | 久久久久国产精品www | 2021国产在线 | 国产一区二区三区午夜 | 久久精品一二三区白丝高潮 | 亚洲精品中文在线观看 | 欧美网站黄色 | 国产精品视频 | 在线看一级片 | 国产一区二区三区免费在线观看 | 日日爽夜夜操 | 青草草在线 | 婷婷综合国产 | 久久免费看a级毛毛片 | 狠狠色丁香久久综合网 | 超碰97公开 | 娇妻呻吟一区二区三区 | 丁香六月婷婷激情 | 成人免费观看网址 | 四虎在线免费观看视频 | av九九九| 网站免费黄色 | 久久欧美在线电影 | 亚洲黄色一级电影 | 免费观看一级成人毛片 | 一区二区激情 | 白丝av免费观看 | 色综合久久久久综合体桃花网 | 天天色天天搞 | 欧美视频日韩视频 | 日日躁你夜夜躁你av蜜 | 国产一级a毛片视频爆浆 | 日本一区二区免费在线观看 | 夜夜骑日日操 | 成人黄大片视频在线观看 | 国产精品国产三级国产aⅴ无密码 | 粉嫩一区二区三区粉嫩91 | 亚洲最快最全在线视频 | 欧美日韩国产区 | 精品久久久久久国产 | 在线观看视频日韩 | 国产一级片视频 | 成 人 黄 色视频免费播放 | 免费在线观看av片 | 九九久久电影 | 久久久久www| 毛片网站在线 | 日韩影视大全 | 欧美另类老妇 | 欧美国产日韩一区二区三区 | 欧美久久久久久久久久久 | 人人插超碰 | 日韩精品一区不卡 | 丁香花在线视频观看免费 | 成人h动漫在线看 | 岛国精品一区二区 | 99视频免费在线观看 | 日日干精品| av免费网| 亚洲久久视频 | 96亚洲精品久久久蜜桃 | 91精品啪在线观看国产 | 4438全国亚洲精品在线观看视频 | 成人久久18免费网站麻豆 | 亚洲国产中文字幕在线 | 91污视频在线观看 | 99精品视频在线播放免费 | 色视频在线免费 | 西西人体4444www高清视频 | 日韩欧美国产精品 | 992tv在线观看| 日韩欧美极品 | 中文字幕在线视频免费播放 | 日韩av电影国产 | 在线超碰av | 五月天丁香视频 | 成人资源网| 午夜少妇av| 成人小电影在线看 | 少妇高潮冒白浆 | 久草在线综合网 | 国产视频每日更新 | 69精品视频在线观看 | 日韩精品无码一区二区三区 | 在线亚洲天堂网 | 99热99re6国产在线播放 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 日本久久中文 | 色久五月| 韩日三级在线 | 国产96在线 | 国产手机视频精品 | 免费高清国产 | 91网站在线视频 | 久草网站 | 国产成人在线综合 | 国产精品久久久久久久久久久杏吧 | 日韩av片免费在线观看 | 六月婷色 | 丁香五月亚洲综合在线 | 日韩簧片在线观看 | 久久婷婷色 |