精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony:如何使用HDF驅動控制LED燈

系統 OpenHarmony
RGB LED燈整體硬件電路如下圖所示,硬件電路中包含了三個GPIO控制管腳控制RGB LED燈,低電平點亮LED燈,高電平熄滅LED燈。電路簡單,這邊不對此進行多余的說明。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

一、程序簡介

該程序是基于OpenHarmony標準系統編寫的基礎外設類:RGB LED。

目前已在凌蒙派-RK3568開發板跑通。詳細資料請參考官網:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk3568-openharmony/tree/master/samples/b02_hdf_rgb_led。

詳細資料請參考OpenHarmony官網:

  • GPIO平臺驅動開發
  • GPIO應用程序開發

二、硬件設計

RGB LED燈整體硬件電路如下圖所示,硬件電路中包含了三個GPIO控制管腳控制RGB LED燈,低電平點亮LED燈,高電平熄滅LED燈。電路簡單,這邊不對此進行多余的說明。

三、程序解析

1、目錄結構

b02_hdf_rgb_led
├── config              # HDF資源配置文件目錄
    ├── config.hcs      # 接口IO配置文件
    ├── device_info.hcs # 設備信息配置文件
├── drivers             # 內核HDF驅動程序目錄
    ├── rgb_led_drv.c   # 內核HDF驅動程序
    ├── Makefile        # 內核HDF驅動編譯腳本
├── figures             # MD文檔圖片
├── BUILD.gn            # GN文件
├── rgb_led.c           # 應用層控制程序

2、內核HDF驅動程序

(1)接口函數

  • 函數名:HdfRgbLedDriverInit.
  • 功能說明:HDF初始化注冊,讀取HDF資源配置文件,獲取三色燈控制GPIO管腳。
int32_t HdfRgbLedDriverInit(struct HdfDeviceObject *deviceObject)
{
    if (deviceObject == NULL) {
        HDF_LOGE("g_rgbLedDriverEntry: %s failed", __func__);
        return HDF_ERR_INVALID_OBJECT;
    }
    struct DeviceResourceIface *CfgOps = NULL;
    CfgOps = DeviceResourceGetIfaceInstance(HDF_CONFIG_SOURCE);
    if (CfgOps == NULL || CfgOps->GetUint32 == NULL) {
        HDF_LOGE("%s: DeviceResourceGetIfaceInstance failed", __func__);
        return HDF_FAILURE;
    }
    if (CfgOps->GetUint32(deviceObject->property, "rgb_led_version", &g_rgbLedCfg.rgb_led_version, 0) != HDF_SUCCESS) {
        HDF_LOGE("%s: read rgb_led_version failed", __func__);
        return HDF_FAILURE;
    }
    if (CfgOps->GetUint32(deviceObject->property, "rgb_led_red", &g_rgbLedCfg.rgb_led_red, 0) != HDF_SUCCESS) {
        g_rgbLedCfg.rgb_led_version = 0;
        HDF_LOGE("%s: read rgb_led_red failed", __func__);
        return HDF_FAILURE;
    }
    if (CfgOps->GetUint32(deviceObject->property, "rgb_led_green", &g_rgbLedCfg.rgb_led_green, 0) != HDF_SUCCESS) {
        g_rgbLedCfg.rgb_led_version = 0;
        HDF_LOGE("%s: read rgb_led_green failed", __func__);
        return HDF_FAILURE;
    }
    if (CfgOps->GetUint32(deviceObject->property, "rgb_led_blue", &g_rgbLedCfg.rgb_led_blue, 0) != HDF_SUCCESS) {
        g_rgbLedCfg.rgb_led_version = 0;
        HDF_LOGE("%s: read rgb_led_blue failed", __func__);
        return HDF_FAILURE;
    }
    HDF_LOGI("g_rgbLedDriverEntry: %s success", __func__);
    return HDF_SUCCESS;
}
  • 函數名:HdfRgbLedDriverRelease。
  • 功能說明:HDF去注冊。
void HdfRgbLedDriverRelease(struct HdfDeviceObject *deviceObject)
{
    if (deviceObject == NULL) {
        HDF_LOGE("g_rgbLedDriverEntry: %s failed", __func__);
        return;
    }
    HDF_LOGI("g_rgbLedDriverEntry: %s success", __func__);
    return;
}
  • 函數名:HdfRgbLedDriverBind。
  • 功能說明:HDF綁定解析函數。
int32_t HdfRgbLedDriverBind(struct HdfDeviceObject *deviceObject)
{
    if (deviceObject == NULL) {
        HDF_LOGE("g_rgbLedDriverEntry: %s failed", __func__);
        return HDF_ERR_INVALID_OBJECT;
    }
    static struct IDeviceIoService ledDriverServ = {
        .Dispatch = rgbLedDriverDispatch,
    };
    deviceObject->service = (struct IDeviceIoService *)(&ledDriverServ);
    HDF_LOGI("g_rgbLedDriverEntry: %s success NodeName[%s]", __func__,
        deviceObject->property->name);
    return HDF_SUCCESS;
}
  • 函數名:rgbLedDriverDispatch。
  • 功能說明:解析函數,解析應用層下發的命令,執行命令對應操作,RGB_LED_WRITE控制三色燈亮滅。
int32_t rgbLedDriverDispatch(struct HdfDeviceIoClient *client, int32_t cmdId,
    struct HdfSBuf *dataBuf, struct HdfSBuf *replyBuf)
{
    int32_t result = HDF_FAILURE;
    int32_t rgbLedMode = 0;

    if (client == NULL || client->device == NULL) {
        HDF_LOGE("driver device is NULL");
        return HDF_ERR_INVALID_OBJECT;
    }
    if (g_rgbLedCfg.rgb_led_version != RGB_LED_VERSION) {
        HDF_LOGE("driver rgb_led_version not match");
        return HDF_FAILURE;
    }
    switch (cmdId) {
        case RGB_LED_WRITE:
            result = HdfSbufReadInt32(dataBuf, &rgbLedMode);
            if (result) {
                HDF_LOGI("%s: mode:[0x%X][%s%s%s]", __func__, rgbLedMode,
                    (rgbLedMode&RGB_LED_RED_BIT)?"R":"-",
                    (rgbLedMode&RGB_LED_GREEN_BIT)?"G":"-",
                    (rgbLedMode&RGB_LED_BLUE_BIT)?"B":"-");

                LedGpioCtrl(g_rgbLedCfg.rgb_led_red, (rgbLedMode&RGB_LED_RED_BIT)?LED_ON:LED_OFF);
                LedGpioCtrl(g_rgbLedCfg.rgb_led_green, (rgbLedMode&RGB_LED_GREEN_BIT)?LED_ON:LED_OFF);
                LedGpioCtrl(g_rgbLedCfg.rgb_led_blue, (rgbLedMode&RGB_LED_BLUE_BIT)?LED_ON:LED_OFF);
            }
            break;
        default:
            HDF_LOGE("%s: receiving unknown command", __func__);
            break;
    }
    return result;
}
  • 函數名:LedGpioCtrl。
  • 功能說明:LED GPIO控制函數,低電平點亮LED,高電平熄滅LED。
static int32_t LedGpioCtrl(uint16_t gpio, int32_t mode)
{
    uint16_t level = GPIO_VAL_HIGH;

    if (HDF_SUCCESS != GpioSetDir(gpio, GPIO_DIR_OUT)) {
        HDF_LOGE("%s: GpioSetDir failed", __func__);
        return HDF_FAILURE;
    }

    if (mode == LED_ON) {
        level = GPIO_VAL_LOW;
    } else if (mode == LED_OFF) {
        level = GPIO_VAL_HIGH;
    }

    if (HDF_SUCCESS != GpioWrite(gpio, level)) {
        HDF_LOGE("%s: GpioWrite failed", __func__);
        return HDF_FAILURE;
    }
    return HDF_SUCCESS;
}

3、應用層程序

(1)應用層代碼分析

程序啟動后獲取命令行參數,如果命令行不帶參數,RGB三色燈運行跑馬燈;如果命令行帶參數,根據傳入的參數的低三位映射點亮對應的紅燈、綠燈和藍燈;通過HdfIoServiceBind綁定RGB三色燈HDF服務,獲取HDF空間緩沖區,向緩沖區寫入需要控制的RGB三色燈低三位數據,通過RGB_LED_WRITE命令下發到HDF驅動中,從而控制RGB三色燈亮滅。程序運行結束,回收HDF空間緩沖區和HDF服務。

int main(int argc, char* argv[])
{
    int ret = HDF_SUCCESS;
    int32_t mode = -1;
    if (argc == ARGS_NUM) {
        mode = atoi(argv[1]);
        /*low-3bits*/
        mode &= 0x7;
        HILOG_INFO(LOG_APP, "[%s] main enter: mode[%s%s%s][0x%X]",
            LOG_TAG,
            (mode&RGB_LED_BLUE_BIT)?"B":"-",
            (mode&RGB_LED_GREEN_BIT)?"G":"-",
            (mode&RGB_LED_RED_BIT)?"R":"-",
            mode);
        printf("RGB mode[%s%s%s][0x%X]\n",
            (mode&RGB_LED_BLUE_BIT)?"B":"-",
            (mode&RGB_LED_GREEN_BIT)?"G":"-",
            (mode&RGB_LED_RED_BIT)?"R":"-",
            mode);
    } else {
        HILOG_INFO(LOG_APP, "[%s] main enter: auto test RGB LED", LOG_TAG);
        printf("auto test RGB LED\n");
    }

    struct HdfIoService *serv = HdfIoServiceBind(RGB_LED_SERVICE_NAME);
    if (serv == NULL) {
        HILOG_ERROR(LOG_APP, "get service %s failed", RGB_LED_SERVICE_NAME);
        return -1;
    }
    struct HdfSBuf *data = HdfSbufObtainDefaultSize();
    if (data == NULL) {
        HILOG_ERROR(LOG_APP, "obtain data failed");
        return -1;
    }

    if (mode == -1) {
        mode = 0x8;
        while (mode) {
            HdfSbufFlush(data);
            if (!HdfSbufWriteInt32(data, --mode)) {
                HILOG_ERROR(LOG_APP, "write data failed");
                return -1;
            }
            ret = serv->dispatcher->Dispatch(&serv->object, RGB_LED_WRITE, data, NULL);
            sleep(1);
        }
    } else {
        if (!HdfSbufWriteInt32(data, mode)) {
            HILOG_ERROR(LOG_APP, "write data failed");
            return -1;
        }
        ret = serv->dispatcher->Dispatch(&serv->object, RGB_LED_WRITE, data, NULL);
    }

    HdfSbufRecycle(data);
    HdfIoServiceRecycle(serv);
    HILOG_INFO(LOG_APP, "[%s] main exit.", LOG_TAG);

    return ret;
}

四、運行程序

系統啟動后,命令行運行命令:

rgb_led

五、運行結果

運行結果:

# rgb_led
auto test RGB LED

# rgb_led 1
RGB mode[--R][0x1]
# rgb_led 2
RGB mode[-G-][0x2]
# rgb_led 3
RGB mode[-GR][0x3]
# rgb_led 4
RGB mode[B--][0x4]
# rgb_led 5
RGB mode[B-R][0x5]
# rgb_led 6
RGB mode[BG-][0x6]
# rgb_led 7
RGB mode[BGR][0x7]

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-09-14 15:49:42

PWM鴻蒙

2023-09-13 15:33:57

I2C鴻蒙

2021-09-10 15:12:04

鴻蒙HarmonyOS應用

2022-01-07 09:56:16

鴻蒙HarmonyOS應用

2022-08-05 19:37:59

鴻蒙Api框架

2021-09-07 15:48:28

鴻蒙HarmonyOS應用

2018-12-25 13:45:54

Fedora IoT樹莓派Linux

2022-08-10 15:58:54

LED燈鴻蒙

2023-03-20 16:05:49

HDF傳感器驅動開發

2022-04-20 20:28:40

HDF 驅動框架鴻蒙操作系統

2021-01-21 13:27:37

鴻蒙HarmonyOS應用開發

2021-09-08 15:09:29

鴻蒙HarmonyOS應用

2021-09-10 15:10:50

鴻蒙HarmonyOS應用

2022-02-16 15:55:21

驅動調用操作系統鴻蒙

2022-02-14 14:28:57

驅動開發鴻蒙系統

2022-11-04 15:10:31

JS應用LED燈

2022-08-08 19:35:37

HDF驅動開發鴻蒙

2023-03-21 18:06:49

ADC數字轉換器

2022-05-16 11:50:45

HDF驅動框架

2021-11-26 15:34:27

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

97超级碰碰| 中文字幕亚洲一区| 日本不卡一二三区| 日韩中文字幕高清| 日本激情一区| 6080yy午夜一二三区久久| 四虎4hu永久免费入口| 国产伦精品一区二区三区四区 | 亚洲天堂一区二区三区| 青青草综合在线| 午夜黄色小视频| 日韩极品在线观看| 国产婷婷色综合av蜜臀av| 日韩av播放器| 国产在线免费观看| 国产一区91精品张津瑜| 国产+成+人+亚洲欧洲| xxxx日本免费| 日韩一区网站| 精品久久久久国产| 在线观看欧美激情| 熟妇高潮一区二区三区| 日本视频一区二区| 欧美精品激情blacked18| 三上悠亚影音先锋| 亚洲高清在线一区| 在线观看精品一区| 日韩a级黄色片| 极品白浆推特女神在线观看 | 久久久精品高清| 国产在线观看av| av电影在线观看完整版一区二区| 国产精品福利网站| 精品在线视频免费| 亚洲精品一区二区妖精| 亚洲精品美女视频| 久久久久亚洲av片无码v| 色豆豆成人网| 亚洲欧美偷拍卡通变态| 日本电影一区二区三区| 最近中文字幕av| 亚洲精品一二三区区别| 亚洲片在线观看| 黄色性视频网站| av成人免费看| 色综合久久九月婷婷色综合| 99视频精品全部免费看| 日韩国产福利| 成人福利视频在线| 91久久大香伊蕉在人线| 国产成人麻豆免费观看| 亚洲精品日韩久久| 久久福利网址导航| 97人妻精品一区二区三区免 | 激情五月综合| 日韩久久精品成人| 亚洲最新av| 678五月天丁香亚洲综合网| 成年人观看网站| 牛牛精品在线视频| 亚洲另类色综合网站| 乱子伦一区二区| 性xxxxfjsxxxxx欧美| 亚洲一卡二卡三卡四卡五卡| 99久久免费观看| a级片免费在线观看| 亚洲18女电影在线观看| 国产综合中文字幕| 一区二区三区短视频| 色综合天天综合网国产成人综合天| 成人在线观看黄| 日日狠狠久久| 精品少妇一区二区三区日产乱码 | 成人aa视频在线观看| 国产尤物99| 高清美女视频一区| 自拍偷在线精品自拍偷无码专区 | 免费一级黄色录像| 久久高清精品| 欧美精品videosex牲欧美| 激情五月色婷婷| 日韩av不卡一区二区| 成人午夜在线观看| 三级在线观看网站| 欧美国产综合色视频| 免费成人深夜夜行网站视频| 超碰在线网站| 欧美三级视频在线观看| 日本一本在线视频| 神马电影久久| 色综合91久久精品中文字幕| 国产成人精品777777| 久久99精品久久久久久国产越南| 国产精品美女久久久久av福利| 日韩av地址| 亚洲欧美精品午睡沙发| 免费无码av片在线观看| 久久9999免费视频| 国产香蕉精品视频一区二区三区| 欧美偷拍第一页| 久久免费高清| 国产精品久久久久久久久婷婷| 九色国产在线观看| 亚洲国产一区二区三区| 亚洲性图一区二区| 婷婷综合一区| 色综合久久88| 一级黄在线观看| 91免费看视频| 国产美女主播在线播放| 91视频亚洲| 国产亚洲激情视频在线| 日本少妇xxxx动漫| 国内精品久久久久影院色 | 91超碰国产精品| 欧美一级片在线播放| a在线观看免费| 国产精品无遮挡| 最好看的2019的中文字幕视频| 国产在线一区二区三区欧美 | 亚洲不卡在线| 色一区av在线| 一级一片免费看| 成人av网站在线观看免费| 超碰免费在线公开| 国产精品诱惑| 亚洲最新av在线网站| 国产精品午夜影院| av一区二区三区在线| 国产a级黄色大片| 99视频这里有精品| 精品久久国产精品| 午夜一级黄色片| 久久伊99综合婷婷久久伊| 东北少妇不带套对白| 久久在线观看| 美女黄色丝袜一区| 国产成人久久精品77777综合 | a级黄色片免费| 伊人久久大香| 日韩亚洲欧美中文在线| 在线免费一级片| 国产精品免费aⅴ片在线观看| 五月天婷婷激情视频| 国产欧美日韩精品高清二区综合区| 57pao成人国产永久免费| 少妇av在线播放| 欧美日韩亚洲视频| 国产精品jizz| 日韩激情中文字幕| 亚洲精品美女久久7777777| jizzyou欧美16| 最新国产精品拍自在线播放 | 日韩av无码中文字幕| 成人小视频在线| 日本手机在线视频| 97人妻一区二区精品免费视频| 日本一本不卡| 国产日韩欧美在线| 日韩三级影院| 日韩午夜在线观看| 久久久久久久久久久久久久免费看| 成人视屏免费看| 黄色国产一级视频| 伊人久久大香线蕉无限次| 日韩av免费网站| 2021av在线| 欧美一级高清片| 久久久久久久福利| 97精品国产露脸对白| 丰满少妇被猛烈进入高清播放| 国产精品一国产精品| 国产精品亚洲片夜色在线| 国内精品不卡| 亚洲第一中文字幕| 乱子伦一区二区三区| 中文字幕在线不卡一区二区三区| 一区二区三区人妻| 日韩天堂av| 日韩欧美亚洲区| 久久在线观看| 26uuu另类亚洲欧美日本老年| 大地资源中文在线观看免费版| 欧美精品在线观看一区二区| 国产第100页| 国产精品美女一区二区在线观看| 热久久久久久久久| 亚洲视频大全| 中国人体摄影一区二区三区| 欧美成人午夜77777| 国产精品久久久久99| 丁香花在线高清完整版视频| 亚洲人成毛片在线播放| 99精品人妻无码专区在线视频区| 精品国产91久久久久久老师| 91禁男男在线观看| www.亚洲色图.com| 亚洲午夜激情影院| 亚洲伊人观看| 中文字幕の友人北条麻妃| 中文字幕av一区二区三区人| 91免费看网站| 97成人超碰| 2019中文在线观看| 国产一二区在线观看| 亚洲欧美国产精品va在线观看| 999免费视频| 欧美亚洲国产一区二区三区| 国产无套内射又大又猛又粗又爽| 久久综合影院| www.日韩视频| 熟女少妇a性色生活片毛片| eeuss影院一区二区三区| 中日韩av在线播放| 模特精品在线| 水蜜桃色314在线观看| 在线成人激情| 亚洲一区二区三区欧美| 日韩成人动漫在线观看| 91久久久在线| 国模一区二区| 日韩美女中文字幕| 国产区美女在线| 色综合久久88| 欧美精品久久久久久久久久久| 午夜先锋成人动漫在线| 国产精品乱码| 1769国产精品视频| 国产精品久久久久久网站| 女人让男人操自己视频在线观看 | 亚洲天堂av中文字幕| 91首页免费视频| 好吊色视频一区二区三区| 国产成人a级片| 四虎国产精品免费| 国产一区二区三区观看| 亚洲第一成肉网| 精品在线观看免费| www.99r| 精品在线播放免费| 在线播放免费视频| 国产精品正在播放| 中文字幕在线观看视频www| 韩国三级在线一区| 久久久福利影院| 精品一区二区三区日韩| 91精品999| 国产美女视频一区| 无码人妻久久一区二区三区蜜桃| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产日韩亚洲| 男人添女人下部高潮视频在观看| 亚洲精品免费观看| 可以在线看的黄色网址| 奇米一区二区三区av| 91视频免费版污| 久久黄色级2电影| 做a视频在线观看| 国产精品伊人色| 国产性猛交96| 久久久久久久综合| 婷婷综合在线视频| 一区二区三区在线视频免费 | 天堂av在线一区| 丝袜制服一区二区三区| 精品亚洲成a人在线观看| 在线免费黄色小视频| 成人av中文字幕| 一区二区三区四区免费| 国产精品美女久久久久aⅴ| 男人的午夜天堂| 亚洲成人tv网| 在线播放精品视频| 日韩视频免费观看高清完整版在线观看| 亚洲国产精品视频在线| 亚洲精品午夜精品| 午夜看片在线免费| 国产69精品99久久久久久宅男| 小h片在线观看| 国产啪精品视频| 久久资源综合| 亚洲精品成人三区| 国产综合自拍| 久久婷婷国产91天堂综合精品| 国产在线乱码一区二区三区| 久久人人妻人人人人妻性色av| 国产女同互慰高潮91漫画| 青青草激情视频| 色综合久久久久综合体桃花网| 国产精品呻吟久久| 精品视频在线导航| av免费在线观| 国产精品久久久久久久美男| 亚洲天堂中文字幕在线观看| 欧美色欧美亚洲另类七区| 亚洲最大av| 亚洲xxxx2d动漫1| 成人高清视频在线| 午夜国产福利一区二区| 日本高清免费不卡视频| 成人毛片视频免费看| 一区二区三欧美| 高清精品在线| 亚洲精品欧美日韩| 日本久久精品| 中国丰满人妻videoshd| 国内精品久久久久影院薰衣草| 亚洲AV无码片久久精品| 亚洲一区二区欧美日韩| 在线视频欧美亚洲| 精品亚洲国产视频| 青青在线视频| 91老司机在线| 欧美一级精品| 欧在线一二三四区| 99久久国产免费看| 久久久久久久久毛片| 欧美性猛交xxxxxxxx| 欧美777四色影视在线| 久久久亚洲福利精品午夜| 91麻豆精品国产91久久久更新资源速度超快 | 岳毛多又紧做起爽| 成人久久视频在线观看| 久久久久亚洲av片无码| 精品污污网站免费看| 欧美一区二区少妇| 91精品国产高清久久久久久久久| 国产精品一区二区三区四区在线观看| 日本电影一区二区三区| 老司机午夜免费精品视频| www.自拍偷拍| 欧美午夜宅男影院在线观看| 蜜桃av中文字幕| 欧美极品第一页| 亚洲网址在线观看| 中国黄色录像片| 国产精品888| 青娱乐国产盛宴| 亚洲成成品网站| 国产后进白嫩翘臀在线观看视频 | 日本免费色视频| 国产精品久久久久影院| 一级二级三级视频| 精品激情国产视频| 精品三级国产| 日本免费成人网| 成人一级片网址| 青青草成人av| 国产视频精品va久久久久久| 欧美极品免费| 亚洲高清在线观看一区| 美女尤物国产一区| 日本在线一级片| 欧美videos中文字幕| 国产黄大片在线观看| 欧美成人一区二区在线| 日韩**一区毛片| 肉色超薄丝袜脚交69xx图片| 91精品在线免费观看| a级在线观看| 韩国成人动漫在线观看| 久久香蕉精品| 成人无码精品1区2区3区免费看 | 精品不卡视频| 亚洲精品乱码久久久久久不卡| 日韩欧美一区视频| 69视频在线观看| www.久久爱.cn| 国产日韩欧美一区| 欧美人与禽zoz0善交| 欧美一区二区三区的| 丁香花高清在线观看完整版| 麻豆91av| 精品一二三四在线| 五月婷婷开心网| 中文字幕久热精品视频在线| 欧美电影院免费观看| 国产一区二区网| 国产精品免费视频观看| 精品久久久久久亚洲综合网站 | 精品入口麻豆88视频| 国产网站免费在线观看| 国产精品成人网| 人妻一区二区三区| 国产视频999| 一区二区动漫| 久久国产波多野结衣| 日韩电影中文字幕一区| 国产一区高清| 成年人视频观看| 亚洲日本在线天堂| 日av在线播放| 99re在线视频观看| 日韩中文字幕1| 国产午夜福利片| www.日韩视频| 国产一区2区| 国产a级黄色片| 91精品综合久久久久久| 欧美日韩成人影院|