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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

基于STM32CubeMX的HAL庫的USB接口使用(MSC基于SD卡模擬U盤)

撞上電子 ? 2023-05-17 10:08 ? 次閱讀

一、USB簡介
USB(Universal Serial BUS)通用串行總線,是一個外部總線標準,用于規(guī)范電腦與外部設(shè)備的連接和通訊。是應(yīng)用在PC領(lǐng)域的接口技術(shù)。USB接口支持設(shè)備的即插即用和熱插拔功能。USB是在1994年底由英特爾、康柏、IBM、Microsoft 等多家公司聯(lián)合提出的。

USB 發(fā)展到現(xiàn)在已經(jīng)有USB1.0/1.1/2.0/3.0等多個版本。目前用的最多的就是USB1.1,USB2.0和USB3.0 目前已經(jīng)開始普及。

STM32F103 自帶的USB符合USB2.0規(guī)范,不過STM32F103的USB 都只能用來做設(shè)備,而不能用作主機。

標準USB共四根線組成,除VCC/GND外,另外為D+,D-,這兩根數(shù)據(jù)線采用的是差分電壓的方式進行數(shù)據(jù)傳輸?shù)摹T赨SB主機上,D-和D+都是接了15K的電阻到GND的,所以在沒有設(shè)備接入的時候,D+和D-均是低電平。而在USB設(shè)備中,如果是高速設(shè)備,則會在D+上接一個1.5K的電阻到 VCC,而如果是低速設(shè)備,則會在D-上接一個1.5K 的電阻到VCC。這樣當設(shè)備接入主機的時候,主機就可以判斷是否有設(shè)備接入,并能判斷設(shè)備是高速設(shè)備還是低速設(shè)備。

STM32F103的MCU自帶USB 從控制器,符合USB規(guī)范的通信連接;PC主機和微控制器之間的數(shù)據(jù)傳輸是通過共享一專用的數(shù)據(jù)緩沖區(qū)來完成的,該數(shù)據(jù)緩沖區(qū)能被USB外設(shè)直接訪問。這塊專用數(shù)據(jù)緩沖區(qū)的大小由所使用的端點數(shù)目和每個端點最大的數(shù)據(jù)分組大小所決定,每個端點最大可使用 512 字節(jié)緩沖區(qū)(專用的512字節(jié),和CAN共用),最多可用于16個單向或8個雙向端點。

USB模塊同PC主機通信,根據(jù)USB規(guī)范實現(xiàn)令牌分組的檢測,數(shù)據(jù)發(fā)送/接收的處理,和握手分組的處理。整個傳輸?shù)母袷接捎布瓿桑渲邪?CRC 的生成和校驗。

1.1 USB MSC簡介

USB大容量存儲設(shè)備類是一種計算機和移動設(shè)備之間的傳輸協(xié)議,它允許一個通用串行總線(USB)設(shè)備來訪問主機的計算設(shè)備,使兩者之間進行文件傳輸。通過這個標準的計算機連接到的設(shè)備包括:移動硬盤、移動光驅(qū)、U盤、SDTF等儲存卡讀卡器、數(shù)碼相機、各種數(shù)字音頻播放器和便攜式媒體播放器、智能卡閱讀器、掌上電腦和手機

MSC的通用性和操作簡單使他成為移動設(shè)備上最常見的文件系統(tǒng),USB MSC并不需要任何特定的文件系統(tǒng), 相反,它提供了一個簡單的界面來讀寫接口用于訪問任何硬盤驅(qū)動器操作系統(tǒng)可以把MSC像本地硬盤一樣格式化,并可以與他們喜歡的任何文件系統(tǒng)格式它,當然也可以創(chuàng)建多個分區(qū)。

1.2 SDIO簡介

SD卡在我們生活中已經(jīng)非常普遍了,控制器對SD卡進行讀寫通信操作一般有兩種通信接口可選,一種是SPI接口,另外一種就是SDIO接口。SDIO 全稱是安全數(shù)字輸入/輸出接口,多媒體卡(MMC)、SD 卡、SD I/O 卡都有SDIO接口。MMC卡可以說是SD卡的前身,現(xiàn)階段已經(jīng)用得很少。STM32F1系列控制器有一個SDIO主機接口,它可以與MMC卡、SD 卡、SD I/O卡以及CE-ATA設(shè)備進行數(shù)據(jù)傳輸。另外,STM32F1系列控制器的SDIO是不支持SPI通信模式的,如果需要用到SPI通信只能使用SPI外設(shè)。e4de91cc-f445-11ed-ba01-dac502259ad0.png

1.3 SD卡簡介

SD卡除了SD-Micro卡之外,還有兩種分別是SD和mini-SD,他們分別長這樣:

e5222446-f445-11ed-ba01-dac502259ad0.png

SD卡的四個角有一個是沒有的,以便我們認識正反來使用它,SD卡的一側(cè)還有一個可以扳動的讀寫保護開關(guān),這三種卡里面SD卡最大,SD-Micro最小。根據(jù)SD卡的容量,可劃分為SDSC、SDHC、SDXC三種標準。現(xiàn)今,市場的主流SD產(chǎn)品是SDHC和SDXC這兩種較大容量的存儲卡,而SDSC卡因容量過小,已逐漸被市場淘汰。SD卡(三種卡的統(tǒng)稱)的存儲空間是由一個一個扇區(qū)組成的,SD卡的扇區(qū)大小是固定的,為512byte(這一點很重要) ,若干個扇區(qū)又可以組成一個分配單元(也被成為簇),分配單元常見的大小為4K、8K、16K、32K、64K。需要注意的是,SD-Micro只有8個引腳,而SD卡是有九個引腳的,這兩種都可以直線4線通訊。

二、新建工程2.1打開軟件,點擊“新建工程”

e54aa646-f445-11ed-ba01-dac502259ad0.png2.2選擇 MCU 和封裝

e5974c58-f445-11ed-ba01-dac502259ad0.png

2.3配置時鐘

RCC設(shè)置,選擇HSE為 Crystal/Ceramic Resonator。

e5c531a4-f445-11ed-ba01-dac502259ad0.png

配置系統(tǒng)時鐘 SYSCLK為 72MHz,修改HCLK的值為72后,輸入回車,軟件會自動修改所有配置。

e5f9b514-f445-11ed-ba01-dac502259ad0.png2.4配置調(diào)試模式

非常重要的一步,否則會造成第一次燒錄程序后續(xù)無法識別調(diào)試器,SYS 設(shè)置,選擇 Debug 為 Serial Wire。

e617e638-f445-11ed-ba01-dac502259ad0.png三、USB3.1 參數(shù)配置

在 Connectivity 中選擇 USB 設(shè)置,并勾選 Device(FS) 激活 USB 設(shè)備。

e65961e4-f445-11ed-ba01-dac502259ad0.png

在 Parameter Settings 進行具體參數(shù)配置。

e674f3f0-f445-11ed-ba01-dac502259ad0.png

Speed:Full Speed 12MBit/s(固定為全速)

Low Power:默認 Disabled(在任何不需要使用usb模塊的時候,通過寫控制寄存器可以使usb模塊置于低功耗模式。在這種模式下,不產(chǎn)生任何靜態(tài)電流消耗,同時usb時鐘也會減慢或停止。通過對usb線上數(shù)據(jù)傳輸?shù)臋z測,可以在低功耗模式下喚醒usb模塊。也可以將一特定的中斷輸入源直接連接到喚醒引腳上,以使系統(tǒng)能立即恢復(fù)正常的時鐘系統(tǒng),并支持直接啟動或停止時鐘系統(tǒng))

3.2 引腳配置

USB 的 DP 引腳必須上拉 1.5K 歐的電阻,電腦才能檢測到 USB,否則檢測不到。

e6955596-f445-11ed-ba01-dac502259ad0.png

查看野火指南者開發(fā)板原理圖可知,需要將 PD6 配置為低電平使能 USB。e6bcf63c-f445-11ed-ba01-dac502259ad0.png在右邊圖中找到 PD6 引腳,選擇 GPIO_Output。e6df484a-f445-11ed-ba01-dac502259ad0.png

在GPIO output level 中選擇 Low 輸出低電平。

e7124998-f445-11ed-ba01-dac502259ad0.png3.3 配置時鐘

選擇 Clock Configuration,USB 時鐘配置為 48MHz,且來源最好是外部晶振分頻得到。

e73dc230-f445-11ed-ba01-dac502259ad0.png3.4 USB Device

USB有主機(Host)和設(shè)備(Device)之分。一般電腦的USB接口為主機接口,而鍵盤、鼠標、U盤等則為設(shè)備。

部分型號的STM32芯片有1~2個USB接口。像STM32F103系列的有一個USB Device接口,STM32F407系列的有2個USB接口,既可以作為HOST,又可以作為Device,還可以作為OTG接口。

在 Middleware 中選擇 USB_DEVICE 設(shè)置,在 Class For FS IP 設(shè)備類別選擇 Mass Storage Class(HID) 大容量存儲設(shè)備類。

e77376d2-f445-11ed-ba01-dac502259ad0.png

參數(shù)配置保持默認(或根據(jù)存儲介質(zhì)的最小存儲單元修改緩沖區(qū)大小)。

e7a998c0-f445-11ed-ba01-dac502259ad0.png

MSC_MEDIA_PACKET (Media I/O buffer Size)(讀寫緩沖區(qū)大小):512(默認為512,這個的大小對于USB讀寫速度會有一些影響,最好和存儲介質(zhì)的最小存儲單元一致)

本實驗板使用的SD卡(三種卡的統(tǒng)稱)的存儲空間是由一個一個扇區(qū)組成的,SD卡的扇區(qū)大小是固定的,為512byte(這一點很重要) ,若干個扇區(qū)又可以組成一個分配單元(也被成為簇),分配單元常見的大小為4K、8K、16K、32K、64K。

設(shè)備描述符保持默認。

e7df4b64-f445-11ed-ba01-dac502259ad0.png

四、SDIO

STM32 控制器可以控制使用單線或 4 線傳輸,本開發(fā)板設(shè)計使用 4 線傳輸。

e8035e1e-f445-11ed-ba01-dac502259ad0.png

4.1 參數(shù)配置

在 Connetivity 中選擇 SDIO 設(shè)置,并選擇 SD 4 bits Wide bus 四線SD模式

e835e974-f445-11ed-ba01-dac502259ad0.png

此時 SDIO 對應(yīng)的管腳也被選中。

e89af7ce-f445-11ed-ba01-dac502259ad0.png

在 Parameter Settings 進行具體參數(shù)配置。

Clock transition on which the bit capture is made:Rising transition。主時鐘 SDIOCLK 產(chǎn)生 CLK 引腳時鐘有效沿選擇,可選上升沿或下降沿,它設(shè)定 SDIO 時鐘控制寄存器(SDIO_CLKCR)的 NEGEDGE 位的值,一般選擇設(shè)置為上升沿。

SDIO Clock divider bypass:Disable。時鐘分頻旁路使用,可選使能或禁用,它設(shè)定 SDIO_CLKCR 寄存器的 BYPASS 位。如果使能旁路,SDIOCLK 直接驅(qū)動 CLK 線輸出時鐘;如果禁用,使用 SDIO_CLKCR 寄存器的 CLKDIV 位值分頻 SDIOCLK,然后輸出到 CLK 線。一般選擇禁用時鐘分頻旁路。

SDIO Clock output enable when the bus is idle:Disable the power save for the clock。節(jié)能模式選擇,可選使能或禁用,它設(shè)定 SDIO_CLKCR 寄存器的 PWRSAV 位的值。如果使能節(jié)能模式,CLK 線只有在總線激活時才有時鐘輸出;如果禁用節(jié)能模式,始終使能 CLK 線輸出時鐘。

SDIO hardware flow control:The hardware control flow is disabled。硬件流控制選擇,可選使能或禁用,它設(shè)定 SDIO_CLKCR 寄存器的 HWFC_EN 位的值。硬件流控制功能可以避免 FIFO 發(fā)送上溢和下溢錯誤。

SDIOCLK clock divide factor:6。時鐘分頻系數(shù),它設(shè)定 SDIO_CLKCR 寄存器的 CLKDIV 位的值,設(shè)置 SDIOCLK 與 CLK 線輸出時鐘分頻系數(shù):CLK 線時鐘頻率=SDIOCLK/([CLKDIV+2])。

SDIO_CK 引腳的時鐘信號在卡識別模式時要求不超過 400KHz,而在識別后的數(shù)據(jù)傳輸模式時則希望有更高的速度(最大不超過 25MHz),所以會針對這兩種模式配置 SDIOCLK 的時鐘。

這里參數(shù)描述建議將SDIOCLK clock divede factor 參數(shù)使用默認值為0,SDIOCLK為72MHz,可以得到最大頻率36MHz,但請注意,有些型號的SD卡可能不支持36MHz這么高的頻率,所以還是要以實際情況而定。

4.2 配置DMASDIO 外設(shè)支持生成 DMA 請求,使用 DMA 傳輸可以提高數(shù)據(jù)傳輸效率,因此在 SDIO 的控制代碼中,可以把它設(shè)置為 DMA 傳輸模式或輪詢模式,ST 標準庫提供 SDIO 示例中針對這兩個模式做了區(qū)分處理。應(yīng)用中一般都使用DMA 傳輸模式。點擊 DMA Settings 添加 SDIO 對應(yīng) DMA2 的通道4。DMA模式選擇循環(huán)模式,方向選為內(nèi)存到外設(shè)。e8c9a182-f445-11ed-ba01-dac502259ad0.png

Priority:當發(fā)生多個 DMA 通道請求時,就意味著有先后響應(yīng)處理的順序問題,這個就由仲裁器也管理。仲裁器管理 DMA 通道請求分為兩個階段。第一階段屬于軟件階段,可以在 DMA_CCRx 寄存器中設(shè)置,有 4 個等級:非常高、高、中和低四個優(yōu)先級。第二階段屬于硬件階段,如果兩個或以上的 DMA 通道請求設(shè)置的優(yōu)先級一樣,則他們優(yōu)先級取決于通 道編號,編號越低優(yōu)先權(quán)越高,比如通道 0 高于通道 1。在大容量產(chǎn)品和互聯(lián)型產(chǎn)品中,DMA1 控制器擁有高于 DMA2 控制器的優(yōu)先級。

Mode:Normal 表示單次傳輸,傳輸一次后終止傳輸。Circular 表示循環(huán)傳輸,傳輸完成后又重新開始繼續(xù)傳輸,不斷循環(huán)永不停止。

Increment Address:Peripheral 表示外設(shè)地址自增。Memory 表示內(nèi)存地址自增。Data Width:Byte 一個字節(jié)。Half Word 半個字,等于兩字節(jié)。Word 一個字,等于四字節(jié)。

4.3 配置NVIC

首先SD可以開啟DMA讀取或者單純的SD的中斷,但是其中優(yōu)先級一定要為 SD > SD DMA Rx/Tx > USB,不然當SD卡在讀寫的時候被其他中斷打斷,會直接導(dǎo)致U盤掉盤,中途卡頓。

e8f4e2a2-f445-11ed-ba01-dac502259ad0.png五、生成代碼六、修改usbd_storage_if.c

打開工程文件夾usbd_storage_if.c文件

e92c5084-f445-11ed-ba01-dac502259ad0.png6.1 聲明SD卡句柄

/* USER CODE BEGIN EXPORTED_VARIABLES */extern SD_HandleTypeDef hsd;/*USERCODEENDEXPORTED_VARIABLES*/

6.2 修改獲取SD卡容量信息函數(shù)

/** * @brief . * @param lun: . * @param block_num: . * @param block_size: . * @retval USBD_OK if all operations are OK else USBD_FAIL */int8_t STORAGE_GetCapacity_FS(uint8_t lun, uint32_t *block_num, uint16_t *block_size){ /* USER CODE BEGIN 3 */ HAL_SD_CardInfoTypeDef info; if(HAL_SD_GetCardState(&hsd) == HAL_SD_CARD_TRANSFER) { HAL_SD_GetCardInfo(&hsd, &info); *block_num = info.LogBlockNbr; *block_size = info.LogBlockSize; return USBD_OK; } return USBD_FAIL; /* USER CODE END 3 */}

6.3 修改存儲讀寫函數(shù)

/** * @brief . * @param lun: . * @retval USBD_OK if all operations are OK else USBD_FAIL */int8_t STORAGE_Read_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len){ /* USER CODE BEGIN 6 */ int8_t ret = USBD_FAIL; if(HAL_SD_ReadBlocks(&hsd, buf, blk_addr, blk_len, HAL_MAX_DELAY) == HAL_OK) { ret = USBD_OK; while(HAL_SD_GetState(&hsd) == HAL_SD_STATE_BUSY); while HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER); } return ret; /* USER CODE END 6 */}

/** * @brief . * @param lun: . * @retval USBD_OK if all operations are OK else USBD_FAIL */int8_t STORAGE_Write_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len){ /* USER CODE BEGIN 7 */ int8_t ret = USBD_FAIL; if(HAL_SD_WriteBlocks(&hsd, buf, blk_addr, blk_len, HAL_MAX_DELAY) == HAL_OK) { ret = USBD_OK; while(HAL_SD_GetState(&hsd) == HAL_SD_STATE_BUSY); while(HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER); } return ret; /* USER CODE END 7 */}

七、查看效果

編譯工程,下載到板子上,插上USB線連接到電腦上,識別出為大容量存儲設(shè)備。

e965e682-f445-11ed-ba01-dac502259ad0.png

注意:如果設(shè)備帶有感嘆號,則參考下面八、注意事項。

e9917b76-f445-11ed-ba01-dac502259ad0.png

彈出格式化對話框,直接格式化就行,文件系統(tǒng)選擇FAT模式。

e9b54538-f445-11ed-ba01-dac502259ad0.pnge9d49a32-f445-11ed-ba01-dac502259ad0.png

新建一個文檔,名為測試.txt。然后在文檔中輸入一些內(nèi)容。

e9ff291e-f445-11ed-ba01-dac502259ad0.png

重新上電斷開后再次打開U盤看里面的內(nèi)容和已用空間。

ea12dc20-f445-11ed-ba01-dac502259ad0.png八、注意事項

用戶代碼要加在 USER CODE BEGIN N 和 USER CODE END N 之間,否則下次使用 STM32CubeMX 重新生成代碼后,會被刪除。

ea366546-f445-11ed-ba01-dac502259ad0.png如果USB端口出現(xiàn)感嘆號設(shè)備無法啟動的問題,可適當將堆改大,如0x400ea4fd6ac-f445-11ed-ba01-dac502259ad0.pngea6ac5de-f445-11ed-ba01-dac502259ad0.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7990

    瀏覽量

    266277
  • STM32
    +關(guān)注

    關(guān)注

    2273

    文章

    10926

    瀏覽量

    357780
收藏 人收藏

    評論

    相關(guān)推薦

    《DNESP32S3使用指南-IDF版_V1.6》第四十六章 SD模擬U實驗

    第四十六章 SD模擬U實驗 本章我們介紹ESP32S3的USB HOST應(yīng)用,即通過
    發(fā)表于 02-07 09:15

    STM32CubeMX生成的代碼,是怎樣的HAL架構(gòu)?

    需要注意,CubeMX只是一個初始化工具,它只是幫你完成了HAL外設(shè)和時鐘的初始化,具體程序的編寫還需要查閱HAL的說明,使用相關(guān)函數(shù)實
    的頭像 發(fā)表于 01-01 21:01 ?233次閱讀
    <b class='flag-5'>STM32CubeMX</b>生成的代碼,是怎樣的<b class='flag-5'>HAL</b>架構(gòu)?

    STM32CubeMX的菜單介紹

    相信初學(xué)者打開STM32CubeMX一定是一臉懵逼,里面都是全英文的,不知道從何入手。這里先給大家簡單講解一下。在新建工程這一欄里,我們最常用的是第一個,它會彈出一個芯片列表供你選擇,然后就會創(chuàng)建一
    的頭像 發(fā)表于 12-25 21:03 ?182次閱讀
    <b class='flag-5'>STM32CubeMX</b>的菜單介紹

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal的固件怎么解決?

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal的固件包,myST賬號注冊卡在最后的郵箱驗證環(huán)節(jié),一直著無法注冊通過 很急很急!以前
    發(fā)表于 07-23 08:05

    cube下模擬U,速度超級慢,為什么?

    模擬U,把USB線連電腦后,像是插上U一樣,能識別出板上SPI驅(qū)動的
    發(fā)表于 05-11 08:04

    STM32F4CUBE USB主讀寫U遇到的幾個疑問求解

    最近用STM32F429ZET6單片機,STM32F4CUBE1.9的調(diào)試MSC 讀寫U,遇
    發(fā)表于 05-06 07:08

    STM32F107VCT6使用USB HOST OTG掛載U連續(xù)讀寫文件錯誤是怎么回事?如何解決?

    最近研究STM32F107VCT6的USB HOST OTG驅(qū)動U,目前可以正確識別到U和掛
    發(fā)表于 04-29 08:28

    STM32CubeMX USB Mass Storage怎樣把U-改設(shè)為CDROM?

    我使用STM32CubeMX,基于STM32_FW_F7_V1.12.0生成了個USB Mass Storage例子。F746參考板插上window10PC上后,可以馬上被認出是u
    發(fā)表于 04-26 06:15

    STM32cubemx和KEIL的有什么不同?

    STM32cubemx軟件有對應(yīng)各個系列芯片的. 使用cubemx,生成代碼框架,比如生成MDK的代碼框架。但MDK也有自己的PACK。那么MDK的PACK和CUBEMX
    發(fā)表于 04-11 06:02

    STM32CubeMX HAL_UART_Receive函數(shù)怎么使用?

    STM32CubeMX HAL_UART_Receive函數(shù)的使用
    發(fā)表于 04-03 08:19

    關(guān)于stm32cubemx usb讀卡和fatfs兼容問題求解

    芯片使用STM32F411,使能SDIO,四線接SD 使用stm32cubemx直接生成USB device,大容量儲存設(shè)備,可以在電腦上
    發(fā)表于 04-01 06:09

    STM32105做USB HOST讀寫U,頻繁插拔后U不識別怎么處理?

    使用STM32F105做USB HOST讀寫U 正常流程下識別寫文件斷開U,這樣操作的話
    發(fā)表于 03-28 07:53

    使用STM32F103RCT6開發(fā)USB設(shè)備,STM32CubeMx生成代碼遇到的問題求解

    大家好,最近在使用STM32F103RCT6開發(fā)USB設(shè)備,使用的是STM32CubeMx生成的代碼,但查看代碼發(fā)現(xiàn)一個問題,HAL_PCD_MspInit函數(shù)中開啟了
    發(fā)表于 03-21 08:30

    STM32Cubemx配置USB虛擬串口,電腦無法識別怎么解決?

    STM32Cubemx配置USB虛擬串口,電腦無法識別問題?(上拉和驅(qū)動都配置好了)
    發(fā)表于 03-08 07:00

    請問rt-thread可以同時開啟usb虛擬串口和sd模擬U嗎?

    rt-thread可不可以同時開啟usb虛擬串口和sd模擬U,求問
    發(fā)表于 03-05 08:06
    主站蜘蛛池模板: 亚洲综合色在线 | 亚洲视频在线一区 | 久久久午夜影院 | 欧美成人性色 | 亚洲午夜在线视频 | 色婷婷五 | 78m-78模成视频在线 | 午夜日本一区二区三区 | 女人特黄大aaaaaa大片 | 亚洲综合色就色手机在线观看 | 在线免费观看h视频 | 国产精品美女免费视频观看 | 成人最新午夜免费视频 | 午夜国产精品免费观看 | 国产高清美女一级a毛片 | 黄色xxxx| 欧美福利网 | 在线你懂的网址 | 激情五月婷婷在线 | 欧美色视频在线 | 免费美剧在线观看 | 国产精品久久久久aaaa | 网站毛片| 五月天婷婷综合 | 黄色福利视频网站 | xxxx日本xx| 美女在线看永久免费网址 | a在线免费| 日本三级成人中文字幕乱码 | 国产亚洲欧美日韩俺去了 | 中文字幕一二三区乱码老 | 亚洲免费国产 | 精品国产自在现线看久久 | 亚洲 图片 小说 欧美 另类 | 三级在线观看网站 | 午夜噜噜噜| 五月天婷婷丁香 | 国产午夜三区视频在线 | 噜噜啪啪| 在线看免费视频 | 欧美激情伊人 |