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

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

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

3天內不再提示

溫度傳感器通用接口應用案例分析

UtFs_Zlgmcu7890 ? 來源:互聯網 ? 作者:佚名 ? 2018-01-19 10:14 ? 次閱讀

周立功教授新書《面向AMetal框架與接口編程(上)》,對AMetal框架進行了詳細介紹,通過閱讀這本書,你可以學到高度復用的軟件設計原則和面向接口編程的開發思想,聚焦自己的“核心域”,改變自己的編程思維,實現企業和個人的共同進步。

第七章為面向通用接口的編程,本文內容為7.4 溫度采集接口、7.5 鍵盤。

7.4 溫度采集接口

>>> 7.4.1 溫度傳感器通用接口

AMetal 提供了溫度采集的通用接口,僅包含一個溫度讀取接口,用于讀取當前的溫度值,其函數原型為(am_temp.h):

其中,handle 為溫度傳感器的句柄,其可以通過初始化具體的溫度傳感器(如LM75)獲得,p_temp 為輸出參數,用于返回當前的溫度值,為了避免小數運算,這里使用有符號的32 位整數表示溫度值(單位:攝氏度),且其值為實際溫度值的1000 倍,表示溫度值的分辨率為0.001℃。讀取溫度的范例程序詳見程序清單7.25。

程序清單7.25 am_temp_read()范例程序

顯然要使應用程序可以使用通用接口讀取溫度,就必須獲取溫度傳感器的handle,這就需要為具體的溫度傳感器提供相應的驅動。

>>> 7.4.2 LM75B 驅動

LM75B 是NXP 半導體推出的具有I2C接口的數字溫度傳感器芯片,AMetal 已經提供了其對應的驅動,僅包含一個初始化函數,其函數原型(am_temp_lm75.h)為:

該函數意在獲取LM75 溫度傳感器的實例句柄,進而使用通用接口讀取溫度。其中:

  • p_lm75 為指向am_temp_lm75_t 類型實例的指針;

  • p_devinfo 為指向am_temp_lm75_info_t 類型實例信息的指針。

1. 實例

定義am_temp_lm75_t 類型(am_temp_lm75.h)實例如下:

其中,g_temp_lm75 為用戶自定義的實例,其地址作為p_lm75 的實參傳遞。

2. 實例信息

實例信息主要描述了與LM75 相關的信息,即LM75 的I2C從機地址等,其類型am_temp_lm75_info_t 的定義(am_temp_lm75.h)如下:

其中,i2c_addr 指定了LM75 的7-bit 從機地址(在很多應用中,常常使用8 位數據表示從機地址, 8 位地址的最低位為讀寫方向位,由于在AMetal 中,讀寫方向位無需用戶控制,驅動會自動實現對讀寫方向位的控制,因此在AMetal 中需要由用戶提供的7-bit 從機地址不包含讀寫方向位),LM75 的7-bit 從機地址為1001A2A1A0,最低三位由A0~A2 引腳電平決定,在AM824-Core 中,板載了一個LM75 溫度傳感器。由此可見,A0~A2 均與地連接,為低電平,因此,板載LM75 的地址為1001000,即:0x48。其實例信息定義如下:

其中,g_temp_lm75_info 為用戶自定義的實例信息,其地址作為p_info 的實參傳遞。

3.I2C句柄i2c_handle

以I2C1 為例,其實例初始化函數am_lpc82x_i2c1_inst_init()的返回值即可作為實參傳遞給i2c_handle。即:

4. 實例句柄

基于實例、實例信息和I2C句柄,即可完成LM75 的初始化。比如:

初始化函數的返回值即為溫度傳感器的句柄,若返回值為NULL,說明初始化失?。蝗舴祷刂挡粸镹ULL,說明返回了有效的handle,其可以作為溫度讀取接口的參數。為了便于配置LM75(如修改7-bit 從機地址等)?;谀K化編程思想,將初始化相關的實例、實例信息等的定義存放到LM75 的配置文件中,通過頭文件引出實例初始化函數接口,源文件和頭文件的程序范例分別詳見程序清單7.26 和程序清單7.27。

程序清單7.26 LM75 實例初始化函數實現(am_hwconf_lm75.c)

程序清單7.27 LM75 實例初始化函數聲明(am_hwconf_lm75.h)

后續只需要使用無參數的實例初始化函數即可完成LM75 實例的初始化,獲取溫度傳感器句柄,即執行如下語句:

當完成初始化后,即可使用通用的溫度讀取接口獲取當前溫度值,讀取并通過串口打印當前溫度值的范例程序詳見程序清單7.28。

程序清單7.28 使用LM75 檢測當前溫度的范例程序

7.5 鍵盤

>>> 7.5.1 通用鍵盤接口

由于此前的按鍵處理方式與具體的MCU、鍵盤的組織形式(獨立按鍵或矩陣鍵盤等)完全耦合在一起,為此AMetal 提供了一種通用鍵盤接口。其函數原型為:

其中,p_handler 為指向按鍵事件處理器的指針,pfn_cb 為指向用戶自定義按鍵處理函數的指針,p_arg 為按鍵處理函數的用戶參數。

1. p_handler

am_input_key_handler_t 是按鍵事件處理器的類型,它是在am_input.h 文件中使用typedef自定義的一個類型。即:

基于此,在使用按鍵時,首先需要定義一個該類型的按鍵事件處理器實例(對象),其本質是定義一個結構體變量。比如:

即可該實例的地址&key_handler 作為參數傳遞給函數的形參p_handler。

2. pfn_cb

am_input_cb_key_t 是按鍵處理函數的指針類型,它是在am_input.h 文件中使用typedef自定義的一個類型。即:

當有按鍵事件發生時(按鍵按下或按鍵釋放),均會調用pfn_cb 指向的按鍵處理函數,完成相應的按鍵處理功能。當該函數被調用時,傳遞給p_arg 的值為用戶參數,傳遞給key_code 的值為按鍵的編碼,它是在am_input_code.h 文件中使用宏進行定義的,比如,KEY_1、KEY_2 等,傳遞給key_state 的值為按鍵的狀態,詳見表7.5。

表7.5 按鍵狀態

以AM824-Core 開發板為例,KEY 對應的按鍵編碼為KEY_KP0。當KEY 鍵按下時,則LED0 點亮;當KEY 鍵釋放后,則LED0 熄滅,相應的按鍵處理函數詳見程序清單7.29。

程序清單7.29 按鍵處理函數范例程序

函數名即可作為參數傳遞給am_input_key_handler_register()函數的形參pfn_cb。

3. p_arg

通常調用am_input_key_handler_register()函數傳遞給形參p_arg 的值會在調用事件處理回調函數時,傳遞給事件處理函數的p_arg 形參。

如果不使用,則在調用am_input_key_handler_register()函數時,將p_arg 的值設置為NULL,注冊按鍵處理器的范例程序詳見程序清單7.30。

程序清單7.30 按鍵處理函數范例程序

注冊按鍵處理器后,當有鍵按下或按鍵釋放時,均會調用注冊按鍵處理器時指定的回調函數,即程序清單7.29 中的__input_key_proc ()函數。為了分離各個鍵的處理代碼,可以注冊多個按鍵事件處理器,每個處理器負責處理一個或多個鍵,詳見程序清單7.31。

程序清單7.31 注冊多個按鍵處理器范例程序

通用鍵盤接口的特點是屏蔽了底層的差異性,使應用程序與底層MCU、鍵盤的具體形式無關,可以輕松地實現應用程序的跨平臺。

在實際的應用中,鍵盤的表現形式是多種多樣的,比如,直接使用GPIO 驅動的獨立鍵盤(一個或多個獨立按鍵組成的鍵盤)和矩陣鍵盤和標準的PS/2 接口鍵盤,以及使用ZLG推出的I2C接口的ZLG72128 鍵盤與數碼管驅動芯片制作的鍵盤等。雖然各種按鍵的檢測方法都不相同,但只要提供相應的驅動,即可將接口統一起來。如同在PC 上使用外部設備時,需要安裝對應的驅動一樣。AMetal 提供了常用鍵盤的驅動,用戶直接使用無需關心按鍵檢測的方法或按鍵消抖等細節問題。

>>> 7.5.2 獨立鍵盤驅動

AMetal 獨立鍵盤的驅動提供了一個初始化函數,使用該函數初始化一個獨立鍵盤實例后,即可使用通用接口使用按鍵。其函數原型為:

其中,p_dev 為指向am_key_gpio_t 類型實例的指針,p_info 為指向am_key_gpio_info_t類型實例信息的指針。

1. 實例

定義am_key_gpio_t 類型(am_key_gpio.h)實例如下:

其中,g_key_gpio 為用戶自定義的實例,其地址作為p_dev 的實參傳遞。

2. 實例信息

實例信息主要描述與獨立鍵盤相關的信息,比如,使用的GPIO 引腳號,獨立按鍵的個數,以及對應的按鍵編碼等信息。其類型am_key_gpio_info_t 的定義(am_key_gpio.h)如下:

其中,p_pins 指向存放各獨立按鍵對應引腳號的數組,如在AM824-Core 開發板上,有一個多功能按鍵可以當做獨立按鍵使用。當J14 的1 和2 短接時,KEY 與PIO_KEY(PIO0_1)連接,此時,按鍵KEY 當做獨立按鍵使用。基于此,可以定義一個存放引腳號的數組:

該數組的地址即可作為p_pins 的值。由于AM824 開發板只有一個獨立按鍵,因此數組僅有一個元素,其值為與該獨立按鍵連接的引腳號,即PIO0_1。當存在多個獨立按鍵時,繼續在該數組后添加數據元素即可。同時,由于引腳號在系統啟動后不會修改,因此使用了const 修飾符。

為了區分各個按鍵,要求每個按鍵都具有一個唯一的編碼值,因此需要為獨立鍵盤中的各個按鍵指定一個編碼,p_codes 即指向存放各獨立按鍵對應編碼的數組,其編碼與p_pins指向的數組中各個獨立按鍵一一對應。比如,設置AM824ZB 開發板中的獨立按鍵對應編碼為KEY_KP0,則可以定義如下數組:

該數組的地址即可作為p_codes 的值。在通用按鍵處理接口的程序范例中,使用了按鍵編碼KEY_F1 作為獨立按鍵的編碼,按鍵編碼KEY_F1 就是在這里配置的,如果需要使用其它按鍵編碼,直接修改即可。按鍵編碼可以是任意整數值,但建議使用類似KEY_KP0 這樣的標準按鍵編碼,其是在am_input_code.h 文件中定義的宏。

pin_num 指定了獨立鍵盤中獨立按鍵的個數,其應該與p_pins 和p_codes 指向的數組大小保持一致,在AM824-Core 開發板上只有一個獨立按鍵,因此該值為1。

對于獨立按鍵來講,不同的電路可能影響按鍵按下時的電平,為了讓驅動準確獲取這一信息,使用active_low 成員表明按鍵按下時的電平,若按鍵按下時為低電平,則該值為AM_TRUE,反之該值為AM_FALSE。查看相應的原理圖可知,當按鍵按下時,GPIO 引腳為低電平,因此active_low 的值應該設置為AM_TRUE。

scan_interval_ms 指定了按鍵掃描的時間間隔,即每隔該段時間執行一次按鍵檢測,檢測是否有按鍵事件發生(按鍵按下或按鍵釋放),通常將該值設置為10 ms?;谝陨闲畔?,實例信息定義如下:

基于實例和實例信息,即可完成獨立鍵盤的初始化。比如:

初始化完成后,即可使用通用鍵盤處理接口處理編碼為KEY_KP0 的按鍵。為了便于配置獨立鍵盤(修改實例信息)?;谀K化編程思想,將初始化相關的實例和實例信息等的定義存放到獨立鍵盤的配置文件中,通過頭文件引出實例初始化函數接口,源文件和頭文件的程序范例分別詳見程序清單7.32 和程序清單7.33。

程序清單7.32 獨立鍵盤實例初始化函數實現(am_hwconf_key_gpio.c)

程序清單7.33 獨立鍵盤實例初始化函數聲明(am_hwconf_key_gpio.h)

后續只需要使用無參數的實例初始化函數,即可完成獨立鍵盤實例的初始化:

初始化完成后,即可使用通用鍵盤處理接口處理編碼為KEY_KP0 的按鍵。

在AM824ZB 中,獨立鍵盤作為一種板載資源,在系統啟動時已經默認進行了獨立鍵盤的初始化操作,因此在程序清單7.30 所示的范例程序中,沒有調用獨立鍵盤實例初始化函數就可以使用板載的獨立按鍵。

若用戶不需要使用獨立按鍵,為了節省內存空間,可以將am_prj_config.h 工程配置文件中的AM_CFG_KEY_GPIO_ENABLE 宏值修改為0,裁剪掉獨立鍵盤,該宏本質上控制了板級初始化函數中的一段程序,詳見程序清單7.34。

程序清單7.34 在板級初始化中裁剪獨立鍵盤的原理

注:板級初始化函數在系統啟動時自動調用,初始化完畢后才會進入應用程序入口,即am_main()。

>>> 7.5.3 矩陣鍵盤驅動

類似地,AMetal 矩陣按鍵的驅動也提供了一個初始化函數,使用該函數初始化一個矩陣鍵盤實例后,即可使用通用接口使用按鍵。其函數原型為:

其中的p_dev 為指向am_key_matrix_gpio_softimer_t 類型實例的指針,p_info 為指向am_key_matrix_gpio_softimer_info_t 類型實例信息的指針。

1. 實例

定義am_key_matrix_gpio_softimer_t 類型(am_key_matrix_gpio.h)實例如下:

其中,miniport_key 為用戶自定義的實例,其地址作為p_dev 的實參傳遞。

2. 實例信息

實例信息描述了與矩陣鍵盤相關的信息,其類型am_key_matrix_gpio_softimer_info_t 的定義(am_key_matrix_gpio.h)如下:

其中, key_matrix_gpio_info 成員包含了GPIO 驅動型矩陣鍵盤的相關信息;scan_interval_ms 指定了按鍵掃描的時間間隔(單位:毫秒),即每隔該段時間執行一次按鍵檢測,檢測是否有按鍵事件發生(按鍵按下或按鍵釋放),該值一般設置為5 ms 即可。

key_matrix_gpio_info 類型am_key_matrix_gpio_info_t 定義(am_key_matrix_gpio.h)為:

其中,base_info 成員包含了矩陣鍵盤的基礎信息,如矩陣鍵盤的行數和列數、各按鍵對應的編碼等。p_pins_row 指向存放矩陣鍵盤行線對應引腳號的數組,p_pins_col 指向存放矩陣鍵盤列線對應引腳號的數組。

若使用MiniPort-Key 與AM824-Core 相連接時,KR0、KR1 為行線,分別與PIO0_6 和PIO0_7 連接,KL0、KL1 為列線,分別與PIO0_17 和PIO0_23 連接。定義行線引腳數組和列線引腳數組為:

兩個數組的地址可分別作為p_pins_row 和p_pins_col 的值。

base_info 成員的類型am_key_matrix_base_info_t 定義(am_key_matrix_base.h)如下:

其中,row 和col 分別表示矩陣鍵盤的行數目和列數目,若使用MiniPort-Key 矩陣鍵盤,其為2×2 的矩陣鍵盤,因此行數目和列數目均為2。

p_codes 指向存放矩陣鍵盤中各按鍵對應編碼的數組,為了與硬件標號一致,分配給各個按鍵的編碼依次為:KEY_0、KEY_1、KEY_2、KEY_3。則可以定義如下數組:

該數組的地址即可作為p_codes的值。active_low 表明按鍵按下是否為低電平,由電路的設計可知,行線外接了上拉電阻,配置為輸入模式時默認會是高電平。因此,應該使用低電平驅動方式,列線輸出低電平,當按鍵按下時,就會檢測到低電平, 即該值應為AM_TRUE。scan_mode 表示掃描方式,支持的方式有行掃描和列掃描方式,它們對應的宏名詳見表7.6。如使用列掃描,則該值為AM_KEY_MATRIX_SCAN_MODE_COL。基于以

上信息,完整的實例信息可以定義如下:

表7.6 矩陣鍵盤掃描方式

基于實例和實例信息,即可完成MiniPort-Key 矩陣鍵盤的初始化。比如:

初始化完成后,即可使用通用鍵盤處理接口處理編碼為KEY_0~KEY_3 的按鍵。為了便于配置矩陣鍵盤(修改實例信息)。基于模塊化編程思想,將初始化相關的實例、實例信息等的定義存放到獨立鍵盤的配置文件中,通過頭文件引出實例初始化函數接口,源文件和頭文件的程序范例分別詳見程序清單7.35 和程序清單7.36。

程序清單7.35 矩陣鍵盤實例初始化函數實現(am_hwconf_miniport _key.c)

程序清單7.36 矩陣鍵盤實例初始化函數聲明(am_hwconf_miniport_key.h)

后續只需要使用無參數的實例初始化函數,即可完成矩陣鍵盤實例的初始化:

當完成初始化后,即可使用通用鍵盤處理接口處理編碼為KEY_0~KEY_3 的按鍵。在AM824-Core 中,矩陣鍵盤作為可選的配板資源,在系統啟動時沒有像獨立鍵盤那樣默認就執行了初始化操作,因此如需使用矩陣鍵盤,則必須手動調用矩陣鍵盤實例初始化函數。

基于按鍵通用接口編寫一個簡易的應用程序:當有鍵按下時,蜂鳴器在發出“嘀”的一聲的同時,通過LED0 和LED1 的組合顯示按鍵編號。比如,當KEY0 鍵按下時,兩個LED燈均熄滅。當KEY1 按下時,則顯示01,即LED0 亮,LED1 熄滅,依此類推。將應用程序存放在app_key_code_led_show.c 文件中,其接口聲明在app_key_code_led_show.h 文件中,詳見程序清單7.37 和程序清單7.38。

程序清單7.37 矩陣鍵盤應用程序實現(app_key_code_led_show.c)

程序清單7.38 矩陣鍵盤應用程序接口聲明(app_key_code_led_show.h)

使用MiniPort-Key 的4 個按鍵展示此應用程序的功能的主程序詳見程序清單7.39。

程序清單7.39 矩陣鍵盤應用程序主程序

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

    關注

    48

    文章

    2964

    瀏覽量

    156245
  • 接口
    +關注

    關注

    33

    文章

    8675

    瀏覽量

    151564
  • 周立功
    +關注

    關注

    38

    文章

    130

    瀏覽量

    37695

原文標題:周立功:面向通用接口的編程——溫度采集接口、鍵盤

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    溫度傳感器常用規格參數

    溫度傳感器是一種用于測量和記錄溫度的設備,其廣泛應用于各種行業和領域,如工業、醫療、消費電子等。為了滿足不同應用的需求,溫度傳感器具有多種規
    的頭像 發表于 01-03 18:25 ?139次閱讀

    如何校準溫度傳感器

    校準溫度傳感器是確保其測量準確性的重要步驟。以下是一些常用的溫度傳感器校準方法: 一、比較法校準 原理 : 將待校準的溫度
    的頭像 發表于 11-22 09:36 ?819次閱讀

    溫度傳感器與濕度傳感器的區別

    在環境監測和控制領域,溫度和濕度是兩個非常重要的參數。它們不僅影響著人類的舒適度,還對工業生產、農業生產、科學研究等多個領域有著深遠的影響。為了準確監測和控制這些參數,我們通常會使用專門的傳感器設備
    的頭像 發表于 11-22 09:31 ?372次閱讀

    工業溫度傳感器的優缺點 溫度傳感器在智能家居中的應用

    工業溫度傳感器的優缺點 優點 高精度 :工業溫度傳感器通常具有較高的精度,能夠提供準確的溫度讀數,這對于需要精確控制
    的頭像 發表于 11-22 09:30 ?362次閱讀

    基于電阻的溫度傳感器原理

    基于電阻的溫度傳感器,即電阻式溫度傳感器(RTD,Resistance Temperature Detector),其原理是利用導體或半導體材料的電阻值隨
    的頭像 發表于 10-31 09:36 ?452次閱讀

    非接觸溫度傳感器如何測量內部溫度

    這個電壓,可以確定物體的溫度?! 嵯駜x型  熱像儀型非接觸溫度傳感器利用紅外探測陣列來接收物體表面發射的紅外輻射,并將其轉換為圖像。通過分析
    的頭像 發表于 10-23 15:52 ?533次閱讀

    熱電阻溫度傳感器溫度與阻值的關系

    熱電阻溫度傳感器是一種利用材料電阻值隨溫度變化而變化的特性來測量溫度傳感器。其核心在于溫度與阻
    的頭像 發表于 08-27 17:10 ?2370次閱讀

    LM82帶雙線串行接口的數字溫度傳感器數據表

    電子發燒友網站提供《LM82帶雙線串行接口的數字溫度傳感器數據表.pdf》資料免費下載
    發表于 08-14 10:29 ?0次下載
    LM82帶雙線串行<b class='flag-5'>接口</b>的數字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>數據表

    TMP106 雙線接口數字溫度傳感器數據表

    電子發燒友網站提供《TMP106 雙線接口數字溫度傳感器數據表.pdf》資料免費下載
    發表于 08-12 10:17 ?0次下載
    TMP106 雙線<b class='flag-5'>接口</b>數字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>數據表

    溫度傳感器怎么測好壞_溫度傳感器的測量方法是什么

    溫度傳感器是測量溫度的儀器,廣泛應用于工業、科研、醫療等領域。本文將詳細介紹溫度傳感器的測量方法和判斷好壞的標準。 一、
    的頭像 發表于 06-19 14:54 ?3758次閱讀

    非接觸溫度傳感器如何測量內部溫度

    非接觸溫度傳感器,又稱為紅外溫度傳感器,是一種通過測量物體表面發射的紅外輻射來確定物體溫度傳感器
    的頭像 發表于 06-19 14:43 ?1154次閱讀

    水位溫度傳感器的作用和原理

    水位溫度傳感器是一種廣泛應用于水處理、環境監測、農業灌溉、工業控制等領域的傳感器。它能夠實時監測水體的水位和溫度,為相關領域提供重要的數據支持。本文將詳細介紹水位
    的頭像 發表于 06-19 10:34 ?1268次閱讀

    溫度傳感器的原理及應用

    溫度傳感器是一種將溫度變化轉換為電信號的傳感器,廣泛應用于工業、農業、醫療、氣象等領域。本文將詳細介紹溫度
    的頭像 發表于 06-19 10:27 ?2885次閱讀

    溫度傳感器的類型與設計技巧

    作者:DigiKey Editor 溫度傳感器是一種用來測量環境或物體溫度的器件,它們在各種應用中都扮演著重要的角色,從家用電器到工業控制系統都有廣泛應用,像是熱水、干衣機、暖通空調
    的頭像 發表于 05-05 10:29 ?3008次閱讀
    <b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的類型與設計技巧

    光纖溫度傳感器的原理 光纖溫度傳感器的應用

    光纖溫度傳感器的原理 光纖溫度傳感器的應用? 光纖溫度傳感器是一種利用光纖的熱學特性實現
    的頭像 發表于 03-07 15:55 ?3129次閱讀
    主站蜘蛛池模板: 美女免费黄| 四虎影院网站| 欧美成人免费全部观看天天性色| 国产成人综合日韩精品婷婷九月| 超薄肉色丝袜精品足j福利| 天天看天天爽天天摸天天添| 又大又粗又爽黄毛片| 国产高清一区二区三区| 免费大秀视频在线播放| 欧美一区福利| 天堂视频在线视频观看2018| xxx色xxx性| 国内夫妇交换性经过实录| 亚洲欧美综合一区二区三区四区| 视频在线观看免费网站| 99热色| 丁香五月网久久综合| 激情综合激情五月| 黄色成人在线| 成人免费国产gav视频在线| 婷婷色九月综合激情丁香| 91操视频| 69xxx视频| 99热免费| 色偷偷91综合久久噜噜噜男男| 四虎永久在线精品免费影视| 欧美一区二区在线观看视频| 国产乱码精品一区二区| 爱爱免费小视频| wwwwww日本| 夜夜综合网| 亚洲射图| 天堂网在线资源| 欧美黑人换爱交换乱理伦片| 欧美aaaav免费大片| 人人九九精| 亚洲国产精品婷婷久久| 四虎影院网站| 国产中日韩一区二区三区| 一级片影院| 综合色久七七综合七七蜜芽|