色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

STM32 HAL庫USB開發(fā)實戰(zhàn):從HID到CDC虛擬串口

STM32 HAL庫USB開發(fā)實戰(zhàn):從HID到CDC虛擬串口 1. 項目概述為什么STM32的USB開發(fā)值得深究如果你玩過STM32大概率用過串口打印調(diào)試信息或者通過串口和上位機通信。但當你需要高速、穩(wěn)定地傳輸大量數(shù)據(jù)時比如傳輸攝像頭圖像、音頻流或者想做一個看起來更專業(yè)的設(shè)備插上USB線就能識別為一個特定設(shè)備而不是一個串口USB就成了繞不開的話題。而HAL庫作為ST官方主推的硬件抽象層它把USB這個復(fù)雜的協(xié)議棧封裝起來讓我們這些應(yīng)用開發(fā)者能更專注于業(yè)務(wù)邏輯而不是去死磕USB協(xié)議手冊里那些令人頭禿的細節(jié)。我最初接觸STM32的USB是想做一個自定義的HID人機接口設(shè)備控制器用來傳輸游戲搖桿的數(shù)據(jù)。當時在標準庫和HAL庫之間糾結(jié)了很久最終還是選擇了HAL庫。原因很簡單ST未來的新芯片幾乎只提供HAL庫支持生態(tài)在往這邊遷移而且HAL庫的結(jié)構(gòu)更統(tǒng)一雖然初期覺得有些“臃腫”但熟悉之后移植和跨項目復(fù)用代碼的效率高得多。這個項目標題“STM32 HAL庫之USB”聽起來像是一個技術(shù)模塊但背后實際是一整套從硬件連接、協(xié)議棧配置、到驅(qū)動編寫和上位機聯(lián)調(diào)的完整工程實踐。它解決的不僅僅是“通信”問題更是如何讓一個嵌入式設(shè)備以更標準、更高效的方式融入現(xiàn)代計算機體系的問題。2. 核心思路與框架設(shè)計HAL庫如何“抽象”USB很多新手拿到STM32CubeMX生成的一大堆USB代碼會感到迷茫感覺像在看天書。要理清頭緒關(guān)鍵在于理解HAL庫為USB設(shè)計的分層架構(gòu)。它不是一坨不可分割的代碼而是一個精心設(shè)計的“洋蔥”每一層都有明確的職責。2.1 HAL庫USB驅(qū)動框架的三層模型我們可以把HAL庫的USB支持分為三層從下到上依次是硬件抽象層HAL/PLL Driver這是最底層直接操作STM32內(nèi)部的USB外設(shè)寄存器。它負責處理最基礎(chǔ)的USB電氣信號、端點緩沖區(qū)管理、中斷觸發(fā)等。這部分代碼通常是stm32f4xx_hal_pcd.c/.h對于設(shè)備模式或stm32f4xx_hal_hcd.c/.h對于主機模式。作為應(yīng)用開發(fā)者我們幾乎不直接調(diào)用這一層的函數(shù)HAL庫已經(jīng)幫我們封裝好了。USB設(shè)備協(xié)議棧層USB Device/Core Library這是核心層實現(xiàn)了USB 2.0規(guī)范中設(shè)備端的基本協(xié)議。它管理設(shè)備描述符告訴主機“我是什么”、處理標準的設(shè)備請求如獲取描述符、設(shè)置地址、設(shè)置配置、管理各個端點的數(shù)據(jù)流狀態(tài)。這一層的代碼位于Middlewares/ST/STM32_USB_Device_Library/目錄下。它提供了一套回調(diào)函數(shù)接口我們需要填充這些回調(diào)函數(shù)來定義設(shè)備的行為。USB設(shè)備類層USB Device Class這是應(yīng)用層基于協(xié)議棧層實現(xiàn)具體的USB設(shè)備類別功能。比如你想做一個USB虛擬串口CDC類就使用CDC類庫想做一個人機接口設(shè)備HID如鍵盤、鼠標就使用HID類庫想實現(xiàn)大容量存儲MSC模擬一個U盤就使用MSC類庫。ST提供了這些常用類的實現(xiàn)模板位于Middlewares/ST/STM32_USB_Device_Library/Class/目錄下。我們的主要工作就是基于某個類模板進行修改和適配。為什么這樣設(shè)計這種分層最大的好處是解耦和復(fù)用。協(xié)議棧層是通用的不管你做鍵盤還是U盤處理標準請求的邏輯都一樣。類層是可選的你可以用ST提供的也可以自己實現(xiàn)一個自定義類。而我們的應(yīng)用代碼只需要關(guān)心“數(shù)據(jù)來了怎么處理”和“數(shù)據(jù)怎么發(fā)出去”無需關(guān)心底層數(shù)據(jù)包是如何被拆解、CRC校驗、發(fā)送的。這極大地降低了開發(fā)門檻。2.2 關(guān)鍵概念端點、管道與描述符在深入代碼前必須吃透這三個概念否則配置起來就是盲人摸象。端點Endpoint可以理解為USB設(shè)備上的“數(shù)據(jù)收發(fā)信箱”。每個端點都有一個唯一的地址和方向。地址0是默認的控制端點用于傳輸配置、命令等關(guān)鍵信息。其他端點如0x81, 0x01用于傳輸應(yīng)用數(shù)據(jù)。IN端點設(shè)備到主機和OUT端點主機到設(shè)備通常是成對出現(xiàn)的。管道Pipe邏輯上的數(shù)據(jù)傳輸通道建立在主機和設(shè)備上的某個端點之間。你可以把它想象成連接主機和端點“信箱”的“郵路”。描述符Descriptor一組定義設(shè)備屬性、能力和配置的數(shù)據(jù)結(jié)構(gòu)。它是USB設(shè)備的“身份證”和“說明書”。主機在枚舉設(shè)備時會一步步讀取這些描述符從而知道該如何與設(shè)備通信。主要描述符包括設(shè)備描述符描述設(shè)備的總體信息如廠商IDVID、產(chǎn)品IDPID、設(shè)備版本、支持的配置數(shù)量等。配置描述符描述設(shè)備的一種工作模式如高功耗模式、低功耗模式包括接口數(shù)量、最大功耗等。接口描述符描述設(shè)備提供的一種功能。一個配置可以包含多個接口。例如一個帶音頻功能的USB攝像頭可能有視頻捕獲接口和音頻流接口。端點描述符描述某個端點的屬性如端點地址、方向、傳輸類型控制、中斷、批量、同步、最大包大小等。字符串描述符可選的提供人類可讀的設(shè)備名稱、廠商字符串等。在HAL庫項目中這些描述符通常以常量數(shù)組的形式定義在一個獨立的文件如usbd_desc.c中。通過STM32CubeMX配置USB設(shè)備時它會自動生成這些描述符的框架我們只需要修改里面的VID、PID、字符串等關(guān)鍵信息即可。注意VID/PID非常重要。如果只是個人學習可以使用ST的測試ID如VID0x0483 PID0x5740。但如果產(chǎn)品要上市必須向USB-IF申請屬于自己的VID并為每個產(chǎn)品分配唯一的PID否則可能會與系統(tǒng)已有的設(shè)備沖突導(dǎo)致無法識別。3. 從零構(gòu)建一個USB HID設(shè)備以自定義報告設(shè)備為例理論講得再多不如動手做一遍。我們以創(chuàng)建一個自定義的USB HID設(shè)備為例它不模擬鍵盤鼠標而是傳輸我們自定義格式的數(shù)據(jù)比如傳感器數(shù)據(jù)包。這種設(shè)備在需要PC軟件與STM32進行實時、雙向、小數(shù)據(jù)量通信的場景下非常有用因為HID類設(shè)備的驅(qū)動在Windows、macOS、Linux上都是系統(tǒng)自帶的無需額外安裝驅(qū)動。3.1 環(huán)境準備與CubeMX工程配置首先確保你有一個支持USB Device功能的STM32開發(fā)板如STM32F103、F407、F429等并且板載了USB Micro-B或Type-C接口或者你通過跳線正確連接了USB的DM/DP線到芯片對應(yīng)引腳。啟動STM32CubeMX選擇你的芯片型號。配置時鐘樹USB模塊需要精確的48MHz時鐘。對于STM32F4系列通常由主PLL分頻得到。在Clock Configuration標簽頁確保USB OTG FS或USB OTG HS取決于你使用的USB接口的時鐘源被正確配置為48MHz。這是最容易出錯的一步時鐘不對USB根本無法工作。使能USB外設(shè)在Pinout Configuration標簽頁找到Connectivity-USB_OTG_FS以全速USB為例。將Mode設(shè)置為Device_Only。此時對應(yīng)的USB DMPA11和 DPPA12引腳會被自動分配。配置USB中間件切換到Middleware區(qū)域激活USB_DEVICE。在Class For FS IP下拉菜單中選擇Human Interface Device Class (HID)。配置HID參數(shù)在Configuration標簽頁下找到USB_DEVICE-HID。這里需要設(shè)置HID Report Descriptor。報告描述符是HID設(shè)備的核心它定義了設(shè)備上報的數(shù)據(jù)格式。對于初學者可以先使用一個簡單的示例。你可以點擊Use custom report descriptor然后粘貼一個簡單的描述符。例如下面這個描述符定義了一個包含4字節(jié)輸入報告和4字節(jié)輸出報告的設(shè)備__ALIGN_BEGIN static uint8_t HID_CUSTOM_ReportDesc[] __ALIGN_END { 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0x01, // Usage (0x01) 0xA1, 0x01, // Collection (Application) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8 bits) 0x95, 0x04, // Report Count (4) 0x09, 0x01, // Usage (0x01) 0x81, 0x02, // Input (Data, Var, Abs) - 4字節(jié)輸入報告 0x09, 0x01, // Usage (0x01) 0x91, 0x02, // Output (Data, Var, Abs) - 4字節(jié)輸出報告 0xC0 // End Collection };設(shè)置HID Polling Interval為10即10ms這是主機輪詢設(shè)備獲取輸入報告的間隔。生成工程設(shè)置好你的IDEKeil、IAR、STM32CubeIDE和工程名生成代碼。3.2 剖析生成的代碼結(jié)構(gòu)與關(guān)鍵回調(diào)函數(shù)CubeMX生成的代碼結(jié)構(gòu)非常清晰。我們重點關(guān)注以下幾個文件Core/Inc/usbd_conf.h和Core/Src/usbd_conf.cUSB設(shè)備底層配置如端點緩沖區(qū)大小、內(nèi)存管理函數(shù)等。一般無需修改。Core/Inc/usbd_desc.h和Core/Src/usbd_desc.c設(shè)備描述符定義。你需要在這里修改USBD_VID、USBD_PID、USBD_PRODUCT_STRING等。USB_DEVICE/App/usbd_hid.c和USB_DEVICE/App/usbd_hid.hHID類應(yīng)用層代碼的核心。我們需要修改的就是這里。打開usbd_hid.c找到幾個關(guān)鍵的回調(diào)函數(shù)static int8_t HID_Init_FS(void)HID設(shè)備初始化函數(shù)。在這里你可以初始化你的應(yīng)用相關(guān)變量。static int8_t HID_DeInit_FS(void)反初始化函數(shù)。static int8_t HID_OutEvent_FS(uint8_t event_idx, uint8_t state)這個函數(shù)在HID類模板中可能不存在。實際上對于自定義HID接收主機發(fā)來的數(shù)據(jù)輸出報告通常是通過另一個機制。ST的HID類庫提供了一個函數(shù)USBD_HID_ReceivePacket來啟動接收并在接收到數(shù)據(jù)后會調(diào)用一個名為HID_OutEvent_FS的回調(diào)如果實現(xiàn)的話或者更常見的是我們需要在應(yīng)用層主動輪詢或在一個全局回調(diào)里處理。這是一個常見的困惑點。 更標準的做法是在main.c或你的應(yīng)用文件中調(diào)用USBD_HID_SendReport發(fā)送數(shù)據(jù)并處理接收。接收數(shù)據(jù)通常通過端點OUT中斷回調(diào)來處理。但HAL庫的HID類已經(jīng)封裝了這部分。查看usbd_hid.c你會發(fā)現(xiàn)一個函數(shù)static int8_t USBD_HID_Setup (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req)它處理HID特定的SETUP請求。對于OUT數(shù)據(jù)數(shù)據(jù)會被接收到類庫內(nèi)部的一個緩沖區(qū)。因此我們的主要任務(wù)變?yōu)榘l(fā)送數(shù)據(jù)設(shè)備-主機在需要的時候例如定時器中斷、傳感器數(shù)據(jù)準備好時調(diào)用USBD_HID_SendReport(hUsbDeviceFS, report_buf, report_size)。其中report_buf是你的數(shù)據(jù)緩沖區(qū)report_size必須與報告描述符中定義的輸入報告大小一致本例中為4。接收數(shù)據(jù)主機-設(shè)備主機發(fā)送的輸出報告數(shù)據(jù)會存放在HID類庫內(nèi)部。我們需要周期性地檢查或在一個回調(diào)中處理。一個簡單可靠的方法是在main函數(shù)的while(1)循環(huán)中調(diào)用一個處理函數(shù)來檢查是否有新數(shù)據(jù)。但更優(yōu)雅的方式是利用HAL庫提供的機制。實際上在usbd_hid.c中有一個函數(shù)USBD_HID_DataOut它在OUT端點接收到數(shù)據(jù)后被底層調(diào)用。我們可以修改這個函數(shù)將接收到的數(shù)據(jù)拷貝到我們的應(yīng)用緩沖區(qū)并設(shè)置一個標志位。3.3 實現(xiàn)自定義數(shù)據(jù)收發(fā)修改HID類模板讓我們動手修改實現(xiàn)一個明確的收發(fā)機制。步驟一定義應(yīng)用緩沖區(qū)在usbd_hid.h中添加以下外部變量聲明/* USER CODE BEGIN EXPORTED_VARIABLES */ extern uint8_t UserRxBufferFS[4]; // 接收緩沖區(qū)大小與輸出報告一致 extern volatile uint8_t UserRxReady; // 接收完成標志 /* USER CODE END EXPORTED_VARIABLES */在usbd_hid.c文件頂部定義這些變量/* USER CODE BEGIN PV */ uint8_t UserRxBufferFS[4] {0}; volatile uint8_t UserRxReady 0; /* USER CODE END PV */步驟二修改數(shù)據(jù)接收回調(diào)在usbd_hid.c中找到函數(shù)static int8_t USBD_HID_DataOut (USBD_HandleTypeDef *pdev, uint8_t epnum)。這個函數(shù)在OUT端點有數(shù)據(jù)到達時被調(diào)用。修改它static int8_t USBD_HID_DataOut (USBD_HandleTypeDef *pdev, uint8_t epnum) { /* Get the received data length */ uint32_t recv_len USBD_LL_GetRxDataSize(pdev, epnum); if(recv_len 4) // 確保長度符合預(yù)期 { /* Copy data to user buffer */ // 這里假設(shè)pdev-pClassData指向HID句柄我們需要獲取接收緩沖區(qū)地址。 // 更直接的方式是HAL庫的HID類將接收到的數(shù)據(jù)放在一個內(nèi)部結(jié)構(gòu)體中。 // 查看USBD_HID_HandleTypeDef結(jié)構(gòu)體定義在usbd_hid.h它有一個成員uint8_t Report_buf[USBD_HID_REPORT_MAX_SIZE]。 // 實際上數(shù)據(jù)已經(jīng)在這個緩沖區(qū)里了。我們需要從類句柄中獲取它。 USBD_HID_HandleTypeDef *hhid (USBD_HID_HandleTypeDef *)pdev-pClassData; if(hhid ! NULL) { memcpy(UserRxBufferFS, hhid-Report_buf, recv_len); UserRxReady 1; // 設(shè)置標志位 } } /* Prepare next OUT transfer */ // 這句很關(guān)鍵它重新啟動OUT端點的接收等待主機下一次發(fā)送數(shù)據(jù)。 USBD_LL_PrepareReceive(pdev, HID_EPOUT_ADDR, hhid-Report_buf, USBD_HID_REPORT_MAX_SIZE); return USBD_OK; }實操心得USBD_LL_PrepareReceive這個調(diào)用至關(guān)重要。USB通信是主機主導(dǎo)的輪詢機制。設(shè)備在接收到一次數(shù)據(jù)后必須明確告知底層驅(qū)動“我準備好接收下一次數(shù)據(jù)了”否則主機后續(xù)發(fā)送的數(shù)據(jù)將無法被接收導(dǎo)致通信中斷。這是很多USB通信“只能收一次”問題的根源。步驟三在應(yīng)用中發(fā)送和接收數(shù)據(jù)現(xiàn)在你可以在主循環(huán)或中斷服務(wù)程序中輕松地處理USB數(shù)據(jù)了。發(fā)送數(shù)據(jù)到PCuint8_t sensor_report[4] {0xAA, 0xBB, 0xCC, 0xDD}; // 模擬傳感器數(shù)據(jù) if(USBD_HID_SendReport(hUsbDeviceFS, sensor_report, 4) ! USBD_OK) { // 處理發(fā)送錯誤 } // 注意此函數(shù)是非阻塞的。它把數(shù)據(jù)放入發(fā)送FIFO后立即返回。 // 實際發(fā)送由USB中斷在后臺完成。接收并處理數(shù)據(jù)來自PCwhile (1) { /* USER CODE END WHILE */ if(UserRxReady) { UserRxReady 0; // 清除標志 // 處理UserRxBufferFS中的數(shù)據(jù) // 例如控制一個LED if(UserRxBufferFS[0] 0x01) { HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET); } } /* USER CODE BEGIN 3 */ }3.4 上位機測試使用Python或Bus Hound設(shè)備端代碼寫好了如何測試你需要一個上位機程序。簡單測試Bus Hound這是一個強大的USB協(xié)議分析工具。插上你的設(shè)備在Bus Hound中選擇對應(yīng)的USB設(shè)備就能看到所有USB通信的原始數(shù)據(jù)包包括描述符請求、SETUP事務(wù)、IN/OUT數(shù)據(jù)。你可以用它來驗證設(shè)備枚舉是否成功以及報告描述符是否正確。發(fā)送數(shù)據(jù)測試則需要編寫上位機。Python上位機推薦使用pywinusbWindows或hidapi跨平臺庫可以非常方便地與HID設(shè)備通信。import hid # 需要安裝 pip install hidapi # 根據(jù)你的VID/PID打開設(shè)備 VID 0x0483 PID 0x5740 device hid.device() device.open(VID, PID) # 打開設(shè)備 # 發(fā)送數(shù)據(jù)輸出報告 data_to_send [0x00, 0x01, 0x02, 0x03] # 第一個字節(jié)通常是報告ID我們沒定義報告ID所以從0開始或忽略 device.write(data_to_send) # 接收數(shù)據(jù)輸入報告 data_received device.read(4) # 讀取4個字節(jié) print(fReceived: {data_received}) device.close()運行這個Python腳本你就能實現(xiàn)PC與STM32的雙向通信了。4. 進階實現(xiàn)USB虛擬串口CDCHID適合小數(shù)據(jù)量、實時性要求高的場景。如果你需要兼容傳統(tǒng)的串口調(diào)試工具如Putty、串口助手或者傳輸?shù)臄?shù)據(jù)流更像文件那么USB虛擬串口CDC類是更好的選擇。CDC設(shè)備在主機上會顯示為一個COM口所有現(xiàn)有的串口軟件都能直接使用。4.1 CubeMX配置CDC配置過程與HID類似但在Middleware中選擇Communication Device Class (Virtual Port Com)。CubeMX會自動幫你生成一個功能完整的虛擬串口設(shè)備代碼包括printf重定向到USB的代碼usbd_cdc_if.c中的CDC_Transmit_FS。關(guān)鍵的回調(diào)函數(shù)在usbd_cdc_if.c中static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length)處理CDC特定控制請求如設(shè)置串口波特率雖然USB通信本身與波特率無關(guān)但這是為了兼容上位機設(shè)置。static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)這是最重要的回調(diào)。當主機通過虛擬串口發(fā)送數(shù)據(jù)下來時這個函數(shù)被調(diào)用。Buf是數(shù)據(jù)指針Len是數(shù)據(jù)長度。你需要在這里處理接收到的數(shù)據(jù)。uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)發(fā)送數(shù)據(jù)到主機。你可以直接調(diào)用它就像調(diào)用HAL_UART_Transmit一樣。4.2 CDC使用注意事項與性能調(diào)優(yōu)緩沖區(qū)與阻塞CDC_Transmit_FS函數(shù)內(nèi)部有一個發(fā)送緩沖區(qū)。如果上一次的數(shù)據(jù)還沒發(fā)送完再次調(diào)用可能會返回USBD_BUSY。好的做法是實現(xiàn)一個簡單的發(fā)送狀態(tài)機或隊列而不是盲目重試或死等。// 示例非阻塞發(fā)送檢查 if(CDC_Transmit_FS(tx_buffer, length) USBD_OK) { // 發(fā)送成功啟動 } else { // 發(fā)送忙將數(shù)據(jù)存入應(yīng)用層隊列稍后重試 }接收速率匹配在CDC_Receive_FS回調(diào)中處理數(shù)據(jù)要快。如果你在這里進行復(fù)雜的運算或阻塞操作可能會導(dǎo)致USB端點緩沖區(qū)滿造成數(shù)據(jù)丟失。最佳實踐是在這個回調(diào)里只做最少的操作比如將數(shù)據(jù)拷貝到一個環(huán)形緩沖區(qū)然后設(shè)置一個標志在主循環(huán)中處理這個環(huán)形緩沖區(qū)里的數(shù)據(jù)。大流量傳輸對于高速連續(xù)數(shù)據(jù)流如音頻要確保端點的最大包大小wMaxPacketSize設(shè)置得足夠大全速USB最大64字節(jié)高速USB最大512字節(jié)并合理使用多個IN端點進行同步傳輸以提高吞吐量。5. 常見問題排查與調(diào)試心得實錄玩USB沒有不踩坑的。下面是我和很多同行在實踐中總結(jié)出來的“血淚史”。5.1 設(shè)備無法識別或枚舉失敗這是最常見的問題現(xiàn)象是插上USB線電腦沒反應(yīng)或者提示“未知設(shè)備”。檢查清單硬件連接DM/DP線是否接反是否接了上拉電阻1.5kΩ接DP到3.3V對于全速設(shè)備這是必須的很多開發(fā)板已經(jīng)集成自制板子容易忽略。電源USB的5V電源是否穩(wěn)定STM32的3.3V供電是否正??梢杂萌f用表測量。時鐘配置重中之重用CubeMX的時鐘圖反復(fù)核對USB時鐘必須是精確的48MHz。使用外部晶振時檢查PLL倍頻分頻設(shè)置。可以使用SystemCoreClock變量打印系統(tǒng)主頻并用邏輯分析儀或示波器測量PA8MCO輸出的時鐘來間接驗證。描述符錯誤描述符數(shù)據(jù)結(jié)構(gòu)有誤比如長度字段寫錯、描述符順序不對、總數(shù)不匹配。使用USBlyzer或Wireshark配合USBPcap驅(qū)動抓取USB枚舉過程的通信包對比標準請求和設(shè)備的回應(yīng)能精準定位問題所在。例如主機發(fā)送Get_Descriptor(Device)請求你回應(yīng)的設(shè)備描述符第8個字節(jié)bMaxPacketSize0應(yīng)該是64如果你填了0就會導(dǎo)致枚舉失敗。堆棧大小USB中斷服務(wù)程序以及HAL庫的中間件需要一定的??臻g。如果Stack_Size在啟動文件或IDE的鏈接器配置中設(shè)置得太小比如默認的0x400可能在枚舉過程中發(fā)生棧溢出導(dǎo)致程序跑飛。建議將棧大小至少設(shè)置為0x800或更大。5.2 通信不穩(wěn)定時斷時續(xù)或數(shù)據(jù)錯誤問題能識別但傳輸數(shù)據(jù)時偶爾丟失或者上位機收到亂碼。排查端點緩沖區(qū)溢出檢查你的發(fā)送代碼。是否在上一次USBD_HID_SendReport或CDC_Transmit_FS還沒完成返回USBD_BUSY時就強行發(fā)送了新數(shù)據(jù)必須等待發(fā)送完成或?qū)崿F(xiàn)發(fā)送隊列。接收未重啟對于OUT傳輸你是否在每次接收回調(diào)USBD_HID_DataOut或CDC_Receive_FS的最后調(diào)用了USBD_LL_PrepareReceive來重新使能接收如果沒有設(shè)備只會在第一次接收數(shù)據(jù)。數(shù)據(jù)對齊與長度確保你發(fā)送的數(shù)據(jù)長度嚴格等于報告描述符中定義的報告長度。對于CDC也要注意單次發(fā)送的數(shù)據(jù)不要超過端點最大包大小。中斷優(yōu)先級USB中斷如OTG_FS_IRQn應(yīng)該有較高的優(yōu)先級避免被其他長時間的中斷如某些定時器中斷阻塞導(dǎo)致數(shù)據(jù)無法及時處理而丟失。在CubeMX的NVIC配置中調(diào)整。電源噪聲如果電路板上有電機、繼電器等大功率器件可能會干擾USB通信的差分信號。確保電源去耦良好USB數(shù)據(jù)線走線盡量短且等長必要時在DM/DP線上串聯(lián)小電阻22Ω并并聯(lián)對地電容如15pF進行阻抗匹配和濾波。5.3 從標準庫移植到HAL庫的注意事項很多老項目用的是標準庫遷移到HAL庫時USB部分幾乎是重寫。架構(gòu)差異標準庫的USB驅(qū)動更“裸”你需要手動處理更多底層細節(jié)。HAL庫封裝得更好但抽象層次更高理解其回調(diào)機制是關(guān)鍵。描述符定義兩者描述符的結(jié)構(gòu)體定義可能略有不同但內(nèi)容本質(zhì)一樣。需要將舊描述符數(shù)組按照HAL庫示例的格式移植過來?;卣{(diào)函數(shù)名標準庫的回調(diào)函數(shù)名如EP1_IN_Callback與HAL庫的如HAL_PCD_DataInCallback完全不同。需要仔細閱讀HAL庫的USB文檔將業(yè)務(wù)邏輯移植到正確的新回調(diào)函數(shù)中。工具鏈確保你的HAL庫版本與STM32CubeMX版本、芯片支持包DFP版本兼容。不匹配的版本是很多詭異問題的源頭。調(diào)試USB一個好的習慣是充分利用LED和串口如果還有其他串口的話進行狀態(tài)指示。比如在HAL_PCD_ConnectCallback設(shè)備連接和HAL_PCD_DisconnectCallback設(shè)備斷開中翻轉(zhuǎn)一個LED在描述符請求回調(diào)中打印日志能讓你快速了解設(shè)備枚舉到了哪一步。當硬件工具不足時這種“土法調(diào)試”往往最有效。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
啊啊啊啊好疼视频| 久久‘黄片视频| 午夜亚洲国产理论秋霞| 97人肏| 怡红院成人av| 狠日欧美| 亚洲二区精品在线观看| 1二区9| 午夜欧美精品久久久| av一区二区三区不卡| 粉嫩AV一区夜夜嗨| 成人国产视频在线观看| 97精彩视频网站| 暴力av在线| 老熟妇一区二区三区…| 裸体美女久久久| 中国一级特黄大片护士| 欧美亚洲宗合色性图| 国产精品久久久久久亚洲色欲| 亚洲午夜免费狠狠干| 久久黄黄黄| 任你草| 午夜噜噜噜| 天堂种子在线www网资源| 午夜AV污污污| 探花一区在线| 国产精品第一页国产大屁股视频免费区 | 五月丁香成人网| 亚洲综合 欧美| 亚洲无码AV九九九| 天天搞欧美| 色婷婷激情| 日1区2区3区2020| 丁香五月大香蕉| 欧亚日韩中文在线| 青青草五月天| 手机在线人成免费视频| 少妇被c 黄 免费观看| 久久久不能久久久久| 日韩欧美性爱电影在线观看| 四虎视频在线观看| 日韩av一级黄片| 欧美成人精品一区二区男人蜜臀| AV老汉| 密乳AV免费观看| 久久宗合亚洲| 一区二区三区四区五区高清无码永久视频 | 色综合网1| 97在线观看视频| 26uuu欧美| 超碰95| 熟女自慰久久久| 黄色电影观看久久9| 久热网| 亚洲人成色9999精品久久 | 综合大香蕉美。| 国产美女mm131爽爽爽爽| 色亚洲欧美| 黄色二级片网站| 18禁免费视频| 成人夜夜爽| 亚洲欧美国产中文视频| 在线电影亚洲色图| 丰满少妇一区二区三区专区| 一区二区三区精品久久| www.色吧5.com| 夜夜高潮夜夜爽夜夜爱爱一区| 国产精品经典一卡久久久| 成人七区| 黄色免费网| 五月天婷婷社区| 情色五月天久久久| 二色av| 国产黄色小视频网站| 天天日熟妇| 欧美综合色站| 中文字幕一二三区| 91操人视频| 秋霞操逼片| 日韩欧美麻豆| 夜夜无码| av 模特一区了| 日本在线不卡123| 亚洲码专区| 国产成年女人免费视频播放a| 国产蜜臀在线| 男人久久精品| 美女在线H91| 99这里有精品| 白嫩国模丰满一二三区| 免费a级毛片av无码久久精品中文字幕| 超碰人妻久久| 蜜臀AV一区二区三区| 青青伊人加勒比海| 欧美大波激情xxxx| av影片在线观看不卡| 久久宗合97| 狠狠做深爱婷婷久久二区| 久jiu久神马影院| 日本欧美国内在线| 亚洲黑丝在线| 欧美成人都市人妻| 夜夜嗨av午夜成人| www.四虎在线| 性欧美另类高清| 一区二区三区激情在线观看| 免费一级精品啪啪视频| 日本操逼aaaaa| 国产精品人妻无码久久久互動交流| 久久宗合97| 青草伊人久久| 麻豆尤物视频网| 人伦四五区| 大香蕉日亚洲日本亚大| 亚洲色棕合| 欧美骚少妇| 午夜精品久久久99热蜜桃的功能特点| 熟女久久久| 土豪酒店各种姿势玩弄极品幼稚| 小骚逼被操的爽不爽| 无码久| 好舒服视频| 亚州久久9| 免费看国产大AB| 本道在线| 美女久久久久久久久久久| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 一级特级aaaa毛片免费观看| 免费看久久久性性| 在线不卡视频| 蜜臀久久99精品久久久老,,| 黑人与人妻| 嗯,啊。舔我逼| 视频在线中文字幕| 91日韩网站| 丝袜足交视频| 极品综合| 丁香激情五月天| 婷婷伊人一区| 亚洲色图 综合| 天天在线91| 久久超碰com| 国产一国产一级毛片古装| 强奸乱伦AV一天堂网| 小视频玖玖| 精品超碰国产| 啊啊啊好湿久久| 欧美一区二区三区黄色影视| 99re99在线视频| 色五月AV| 色婷婷狠狠| 国产老熟女| 偷拍片久久| 大香蕉狠狠爱| 日韩丝袜二区| 96久久科窝| 欧美日韩青操| 日韩欧美亚欧在线视频| 国产精品久久久鸭无码的功能| 狠狠干狠狠干| 色哟哟AV| 999精品国产高清一区二区| 亚洲强奸乱伦影视网| 中文字幕啊啊啊在线观看视频| 色狠狠综合噜一二三区| 夜夜嗨免费视频| 成年无码动漫av片无尽在线 | 啊啊啊啊无码| 狠狠色噜噜狠狠狠狠狠色综合久久 | 18禁止看精品中文字幕| 在线 制服丝袜中出 人妻| surenchaopeng| 亚洲成人AB| 日本操逼视频不卡直接放| 亚洲成人性爱在线观看| 99久久com免费视频′| 欧美丝袜美女电影一二三四区| 舔足天天操天天射| 99热99色| 国产后入清纯| 中文字幕亚洲永久精品| 天天亚洲综合| 国产精品人妻无码久久久老鸭窝 | 久久九色| 丁香五月激情网| 亚洲乱伦图片视频| 无码78| 精品欧美乱码久| 天天综合网亚洲综合网| 最新av中文字幕高清| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 东京热,男人的天堂| av绯色| 欧美久久毛片基地| 亚洲国产精品久久AV| 天美麻花大全视频| asc国产精品| 丰满人妻一区二区三区四区| 人妖欧美一区二区| 日欧操屄视频| 91观看 国产白丝| 人人插人人摸人人| 国产免费一区| 日亚韩精品视频二区三| 亚洲欧美综合网站| 日本性爱网址| 91熟女视频网| 国产免费永久精品无码| 青青青草原| 入口操逼网站| 大香蕉中文201| 中出91| 欧美日韩一二三| 色噜噜人妻丝袜a∨先锋影| 伊人亚洲综合| 国产精品秘 福利姬在线观看| 无码男人天堂| 亚乱色| 女上位精品在线| 无码乱人伦中文视频| 330dv亚洲成年视频网| 色官网色综合| 欧美淫乱视频| 91在线色综合| 午夜成人爽爽爽爽A片李冰冰| 欧美熟妇乱码在线一区| 曰本人妻人人澡人人夹| 蜜臀99久久精品久久久久久| 亚洲精品男人的天堂| 中文字幕一区二区无码成人| 国产精品久久久蜜臀| 一级婬片120分钟试看| 五月天伊人| 人妻一区视频| 欧美色图99| 蜜臀av一区二区三区免费观看| 好属操| 98精品国产乱码久久久久久| 久9视频| 啊啊啊网站| 性色av一区二区| 国产一级黄色片在线观看| 久久久亚洲精品中文字幕人妻| 久久午夜伦| 中文字幕人妻资源在线| 91劲爆| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 91爱啪| 欧色综合| 91热爆在线| 天天草天天日| 日韩97视频| 96精品在线| 日韩黄片视频试看| 粉嫩av一区二区三区天美传媒| 台湾佬中文娱乐自偷自拍| 91社区拍啪人妻| 亚洲天天操| 97色视频在线| 看日韩美女二区三区免费操逼视频| 日本黄大片在线观看视频| 亚洲综合伊人| wwe 天天干.com| 国产成人无码久久精品| 五码视频在线观看| 人人妻人人玩人人澡人人爽| 综合网97| 亚洲污污网站| 97硬碰| 亚洲精品视频在线播放| JIZZJIZZ国产精品喷水| 午夜男女爽爽大片免费观看| 嗯嗯不要视频| 尤物视频偷拍免费| 精品久久久久久久久久久久| 懂色综合久久久| 国产又色又爽又舒服的三级视频 | 欧美色图小说综合| 噜噜噜亚洲精| 丝袜色综合| 91最新综合| 人妻天天夜夜爽一区二区| 在线v中文字幕一区二区三区| 国产精品久久久久久亚洲色欲| 午夜福利合集| 久久青娱乐| 试看60秒| 国产精品在线一区二区| 中文字幕超碰CAO| 欧美一二三区四五区| 久草成人福利导航| 激情久久久| 国产92麻豆天美精品色欲5| A 在线网址| 91亚洲色人| 日日骚AV| 眼镜人妻101.com| 亚洲欧美一区二区网址| 亚洲色婷婷久久91| 亚洲 欧美 日韩 国产一区二区| 久久这里只有精品9| 怡红院成人视频| 91老司机精品| 天天干18禁| 91综合熟女| 91爱综合| 好湿好紧好爽 视频| 少妇免费视频| 欧美亚洲影视| 欧美夜色| 97网址97| 躁躁躁日日躁2020| 视频不卡中文字幕| 明星性猛交ⅹxxx乱大交| 久久精品| 美女一区二区国产精品| 丁香五月婷婷五月| 久久熟女人| 99re3这里只有精品| 91网站18在线观看| 污污污8888| 欧美偷偷网| 97超碰精品图片| 91精品人妻一区二区三区蜜桃| 久久男人天堂| 欧美日韩另类在线播放| 亚洲色欲天天人妻无码系列专区| 亚洲欧美精品一区天堂久久 | 久久天天躁日日躁狠狠躁| 99啪啪| 成人片视频| 偷窥自拍亚洲| 一本色道无码DVD中文字幕| 日本成人A片网站| 在线观看综合精品亚洲| 97亚洲一区| 强奸熟女一区二区三区 | 精品96久久| 亚洲一二三四区在线免费看视频| 日韩在线电影| www.av在线视频| 深爱五月婷婷| 日韩综合无码色欲vv| 欧美日韩国产中文精品字幕自在自线| 激情婷婷五月天| 屌妞视频久久久久久久| 亚91网| 香蕉黄色一级视频| 九九精品热| 91爱看| 亚洲中文字幕一区二区| 午夜毛片亚洲精品片国产久久久| 亚洲日本激情| 大香蕉综合| 男人的天堂.com| 亚洲日韩熟女人妻高清在线| 9久久久久| 亚洲欧美国产va在线播放频| 亚洲无码久久久久久久| 美女黄页| 国产精品久久久久久久久久久久久久吹 | 色激情五月天| 狠狠色婷婷| 一级黄碟在线看| 极品色综合| 一级@啪啪视频| 综合久久婷婷| 东京热AV男人的天堂| 丰满人妻一区二区三区色-百度| 国产又黄又粗的视频| 亚洲欧美精品福利在线| 国产免费一区| 亚洲一区日韩精品| 大香蕉免费中文| 亚洲熟久久| 一区二区三区亚洲| 男女打扑克高清网站| 亚洲图片在线| 亚洲一区日韩精品| 久久內射| 亚洲天天操| 无码抄逼网| 欧美与日韩97| 蜜臀一区二区三区在线| 美国一区二区三区视频| 91大神精品长腿在线观看网站| 日韩三级视频一区二区三区| 亚欧操逼片在线观看| 91丨九色丨国产丨人妻在线| 国产成人网址| 男人的天堂va| 国产激情久久久| 天堂综合| 密乳无码| 日韩不卡网操逼中文字幕日韩| 毛片一区二区| 国内91熟女人妻丝袜天天精品视频在线 | 国产伦乱91| 老女人老91妇女老热女| 一级岛国大片| 啊啊啊好湿久久| 亚洲人成在线放东京热| 精品区9| 超碰97国产欧美| 精品国产久热在线观看| 久久久无码精品人妻二区 | 国产精品操| 日本99视频| 欧美综合自拍亚洲综合图| 国产一级不卡在线观看| 欧美日韩另类字幕中文| 在线观看成人性爱免费小视频| av天天在线| www.黄色在线| 日韩干B| 亚洲成?V人片在线观看福利| 大香蕉淫人| 五月婷婷大香蕉| 花花AV导航| 殴美牲| 一级人妻性爱视频| 亚洲自拍一区夜夜操| 懂色中文一区二区三区 | 国产亚洲综合欧美一区| 欧美色院| 久久做97| 破苞ⅩXXX性无码动漫无码| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 久久久精品国产亚洲AV无码| 久久超碰com| 激情文学欧美| 亚洲aV性爱| 怡红院成人视频| 中文字幕在线24| 日韩中文字幕国产| 超碰色美女| 色五月婷婷网| 欧美黄色手机在线观看| 国产AV无码AV| 97日韩超碰超碰中文字幕| 九九精品美女高溯喷水| 天天操天天射天天日| 99草精| 人人澡人人爽人人精品| 日韩欧美字幕亚洲一区二区| 亚洲女优有码无码高清| 久久久久ab| 极品尤物在线观看| 91人精品妻入口| 中文字幕青青草| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 国产日韩精品suv| 91美女視頻| 六月丁香五月婷婷| 淫荡少妇免费| 亚洲最新Av| 欧美日韩国产精品久久色婷婷| 超碰亚洲欧美日韩无| 日本三级一区二区 在线| 午夜毛片亚洲精品片国产久久久| 狠狠躁天天躁日日躁| 97香蕉碰碰人妻国产欧美| 欧美真人抽搐一进一出gif| 欧美韩日精品99综合| 美女大乳久久久久久久女人18| 五月天黄色激情视频| 日韩91网| 久久久久久久综合,国产| 一区二区三区网站日日骚| 日韩精品永久在线观看| 免费在线黄片视频| 久96热在线观看视频| 亚欧美色图| 91天美传媒精品| 久热伊人99re| 人妻中文在线| 十八禁视频网站| 一个国产在线综合网站| 久久中文字幕不卡人妻| 91熟女丨91老女人| 亚洲清纯综合| 欧美97av| 久久精品高清无码一区| 啊啊啊啊啊好大好舒服想要| 久久久一热在线播放| 99热这里只有精品8| 激情综合网五月婷婷五月天| 白天啪啪晚上啪啪视频| 日韩性爱1级片视频| 国产无码精品久久久久久| 麻豆天天躁天天揉揉AV| 国产中文字幕在线观看| 成人夜夜| …中文字幕亚洲乱,97人妻无码费视…| 中文字幕亚洲欧美在线不卡| 97视频7| 呦呦一区| 久久精品国产亚洲5555| 久久久天美| 97资源站国产精品| 噜噜噜亚洲精| 亚洲综合色图欧美| 东京热男人天堂| 久久久久久999| 久久精品国产亚洲粉嫩| 九九九九九九免费视频| 一区二区无码视频| 中文字幕一二三av| 国产精品一区二区麻豆| 88在线一区二区三区| 精品人妻一区二区三区不卡断 | 国产精品香蕉热久久新品| 亚洲欧美在线观看2021| 五月丁香社区婷婷日韩欧美精品影院 | 蜜臀色乳| 久久精品国产精品| 99最新日韩偷拍视频| 日本精品性生活久久久| 中文字幕av片| 97超碰欧美中文字幕| 亚洲日韩天堂| 91精品久久久久五月天精品| 国产女人和拘做爰视频 | k频道色撸撸| julia国产在线| 丰满人妻一区二区三区免费| 插入逼91| 成人无码电影在线观看网| 女人喷水视频在线观看| 精品色色| 伊人久久大香蕉线AV五月天| 蜜桃臀AV在线| 超碰97 线线 在现| 中字幕人妻一区二区三区| 亚洲超碰AV| 五月天激情小说网| 情色五月天久久久| 91美女高潮| 亚洲国产一级黄色视频| 韩日性爱av| 超碰久超碰久| 亚洲综合另类小说色区亚洲成av人片在www | 国产熟妇一区二区| 四虎影视国产精品| 国产探花日韩援交| 久9视频| 成人女人国产| 久草看看看| 免费成人在线观看91| 在线视频免费播放一区| 嗯啊不要啊啊在线观看视频| 91劲爆| 成人精品在线免费视频| 日韩无码专区| 综合 青草 伊久久 影院 综合| 941超碰| 97AV在线观看| 亚洲欧美中文日韩视频中国语| 美国美女AV在线| 色偷偷男人的天堂麻豆| 99这里只有精品国产| 亚洲一区日韩| 久热久| 日韩免费福利在线观看| 啊啊啊啊嗯嗯嗯用力好爽 | 精品午夜福利国产一区二区在线观看 | 人妻人人澡人人爽人人| 欧美人体性爱互联网第一页婷婷日本| 日本视频一区二区三区| 欧美亚男人的天堂| 久久精品国产亚洲粉嫩| 狠狠色狠狠色狠狠五月| 青青草视频爽一爽| 亚洲熟女人妻中文字幕一区二区| 欧亚乱色熟女一区二区| 日日橹狠狠爱欧美超碰| 精品国产Av无码久久久伦古装| 97干在线视频| 国产精品在线一区二区| 欧美性爱免费短视频| 人人污日韩一区二区| 99re黄| 国内毛片免费h片在线| 激情文学小说一区二区 | 日韩久射综合| 国产精品成人在线| 免费一级视频特黄色大片| 九九九精品色乱九九九| 国产精品久久久久无码A√| 欧美A√综合网| 日韩国产精品人妻无码久久久| 先锋精品av色鲁| 欧美 亚洲精品首页| 色小视频蜜乳| 一本色道人妻久久| 欧美黑人性猛交91| 一区二区三| 天综合网| 操逼无码操逼| 青青草精玖玖69精品| 黄片视频观看| 国产第二页| 熟女五十路一区二区三| 91 亚洲情侣偷拍 久久| 国产精品免费视频不卡| 干妹子| 夜夜草网站| 777超碰| 韩国一区二区精品亚洲| 亚洲色图欧美色图另类图片| 大香蕉天天看妹子| 又粗又长又爽在线观看| 国产乱码久久久久久| 女人与公拘交酡2020视频| 搞中出视频在线观看| 亚洲天堂中文字| 无码操逼天堂| 婷婷五月天补不补| 18禁无码永久免费无限制| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 成人在线视频网| 久草午夜| 日韩欧美丝袜诱惑| 天美麻花大全视频| 色综合国产在线观看| 中文字幕久久精品一区| 亚洲另类电影| 中文字幕在线免费观看2| 日韩在线97| 亚洲色五月| 成人精品无码| 无毛精品| 亚洲91色在线| 激情接吻视频久久久久久| 99re视频在线播放青草| 亚州综合AⅤ| 国产超碰| 精品一区二区国产日韩| 亚洲天堂久久| 2025亚洲男人天堂| 亚洲色图美腿丝袜| caorenqi shipin| AV乱伦国产| 久久少妇人妻| 澳门人妻久久| 国产1769在线| 午夜男女爽爽大片免费观看| 国产AV天美传媒一区二区三区 | 91熟女综合| 中文字幕jul-617人妻熟女| 老司机深夜18禁污污网站| 67914在线兔费成人视频| 艹我哪美一区无码| 久久婷婷亚洲| 日本狂喷奶水在线播放212| 97久久超碰亚洲| 天天操天天谢| 日韩美女久久一区二区三区| 东亚亚洲无码高清| 亚洲欧美自拍偷拍| 精品无码秘 人妻一区二区 | 欧美情色亚洲| 97爱b| 亚洲伊人久久精品狠狠在线| 欧美一级黄片免费播放| 人人操人人插人人摸人人干| 欧美18老人禁| 神马麻豆福利院| 精品一区二区久久| 亚洲综合贴图91 | 中文字幕交换人妻| 国产精品亚洲高清在线| 2024年最新色情网站在线观看| 国内外毛片在线观看| 十八禁一区二区无码观看| 亚洲综合另类欧美久久久| 黄色香蕉视频网站一区| 十八禁啪啪视频| 四虎影视精品| 亚洲一区亚洲天堂| 国产精品欧美激在线| 毛片中心9视频99| 极品五月天噜噜| 99热婷婷| 国产免费一区在线观看| 久久性视频| 国产AV超爽| 91在线精品| 欧美性爱另类综合| 美女被艹尤物视频| 啪一啪免费视频| 国产一级黄色片在线观看| 欧美成人四级在线播放| av无码av无码专区| 久久亚洲AV无码专区首页| 午夜福利一区二区影院| 久久黄色视频一区二区三区 | 又摸又舔在线观看网站| 久久黄黄| 亚洲人在线| 女同性恋一区二区三区精品视频| 天美欧美国产| 国产熟妇一区二区| 成人久久精品| 激情文学小说一区二区 | 男人天堂.AB| 亚洲国产精品久久久久婷婷青年| 天无日色综合| 国产精品久久久久久久久久久久久久久久久久 | 精品999一区二区| 一中国女人毛片水真多| 日本熟女不卡视频| 久久久久亚洲AV无码专区少妇| www黄片免费看com| 免费黄色视频网址| 欧美丰满熟妇XXXX性ppX人交| 色综合五月天| 91女人的网站| 亚洲偷91色| 东京热,男人的天堂| 天天cao在线| 日本熟女免费視颖| 懂色AV蜜臀无码精品APP| 久操热| 男人天堂站| 国产AV色黄看到爽| 99精品久久久久久久婷婷蜜桃| 久操操| 免费农村成人少妇人妻Aa一区二区视频| 加勒比海成人视频网| 久久久久96| 美女上床网站| 日韩簧片免费看| 性爱精品一区| 日欧美色| 久久精品人妻一区二区三区| 夜夜爽夜夜| 日韩欧美中文日韩欧美色| av中文在线| 日日日骚女人精品| 日韩久射综合| 欧美一级美片在线观看免费| 色婷五月| 九九热视频这里只有精品| 欧美日韩97在线| 国语对白露脸XXXXXX | 高清孕妇孕交 交| 亚洲伊人a线观看视频| 欧美另类色图片| 欧美亚洲厕所精品偷拍91| 国产精品丝袜在线| 欧亚性爱啪啪| 女一区二区| 男人天堂2030| 极品尤物女神在线观看| 69人妻人人揉人人躁人人精品| 999久久芭蕾| 欧洲站一级二级三级h| 香蕉综合网| 国产乱伦性爱AV| 粉嫩AV输入| 在线视频97| 99色在线| 久久久久久91香蕉国产| 91爱剪切久久| 免费精品福利在线观看| 九九九久久久久| 欧美精品庄| 久久精品国产72国产精品福利| 殴美日韩m| 国产真实子伦对白| 色999五月色| 亚洲永久AV无码精品秋霞| 欧美高清第一页| 操一区| 婷婷探花久久精品一区| 欧美激情另类一区二区| 国产四虎在线| 国产精品美女久久久久久网站| 色综合色欲色综合色综合色综合| 爱丝福利| a v网站在线播放| 99操| 天天激情干| 久久神马影院| 99久久婷婷丁香| 在线黄色污污网站| 久久精品人人做人人看| 你草精品在线视频| 国产精品成久久久久午夜午夜| 欧美日韩222| 亚洲无 码A片在线观看麻豆| 五月天偷拍| 9美女超碰在线免费观看| 亚洲欧美在线观看2021| 亚洲,欧美,综合网| 9999久久久久| 欧美日韩性爱操大逼| 久久久久久裸体| 国产女人操逼视频| 超碰4A| 91Chinese在线| 日躁天天爽爽| 欧美久久草熟女| 超碰在线人人射| 综精品久久久aaaa| 少妇熟女1区2区3区| 日韩噜噜69| 一本一道波多野毛片中文在线| 亚洲系列欧美| 亚洲激情在线一区二区| 校园春色 亚洲| 插入综合网| 精品日韩人妻视频| 制服丝袜第二页| 国产精品成人无码av| 屁股久久久久久| 亚洲熟女乱色| 日韩图区 偷拍| 日本幼女18+| 91在线欧色| 国产在线视频二区| 国产后入清纯| 欧美超碰9798| 国产女同视频在线播放| 久久九九一区二区三区成人| 五月丁香社区婷婷日韩欧美精品影院| 精品大全99999| 大香蕉综合| 中日亚韩免费视频| 草草草视频| 九九成人精品| 岛国免费视频在线| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 九色97| xxxx网站亚洲精品| 91美女精品| 97超碰无码网| 色综合色色| 啪啪性爱免费视频| 亚州五月| 久久久99久9| 再深点灬舒服灬太大了好硬好爽| 精品人妻一区二区三区在| 亚洲中文字幕日产无码久久| www.夜夜操| 熟妇xxxxx性春色| 精品久9| 欧美大战久久久伊人| 亚洲影视综合网| 日本视频一区二区三区| 日本性感人妻91| 亚洲色图片区| 97色色色综合网站| 91N欧美| 久久夜黄色无码A级大片| 中文操逼字幕| 91M一社| 欧美第二页午夜| 色综合中文字幕不卡| 91色久| 人人操人人插人www| 鸥美中出| 日韩亚洲97| 福利风月五月天影院| 日本 欧美 亚中文字幕| 欧美日韩国产高清在线一二三区| 成人性爱免费播放| 久久久涩| 亚洲天堂少妇| 欧美少妇高潮久久91| 久久欧洲| 天综合中文| 香蕉在线一区二区三区| 黄色一级视| 一级日本牲交大片好爽在线看| 天美精品原创av片国产| 青青操日韩| 性感美女啊啊啊在线| 伊人一区二区三区| 久久曰曰| 嗯阿好爽好紧| 欧美少妇第一页| 日韩av女优在线免费一区| 91超级碰碰| 国产做?爰片久久毛片?片美国| 人人艹亚洲| 日韩国产欧美伦理在线| 国产无马在线| 性色av大全| 尤物av网站免费在线播放| 激情五月天中文字幕色| 快灬快灬 一下爽蜜桃在线观看| 亚洲黄色电影| 大色网久久| 亚洲欧美在线丝袜| 精品国产乱码久久久久久久| 性性久久| 91N综合网在线| 男人天堂 天天射| 夜夜国自区| 欧美日韩亚洲国产中文永久天天看| 亚洲欧美日韩中文久久自慰| 久久草视频污视频| 一级免费精品| 九九九久| 神马午夜久久| 成人怡红院| 尤物av网站免费在线播放| 青草综合| 91性高朝久久久久久久久| 你懂的在线观看区国产| 国产最新小视频在线播放下载| 国产精品露脸在线观看| 中文字幕日韩人妻视频一区二区三区 | 女色视频社区| 夜夜高潮夜夜爽高清视频一| 熟女一区二区| 国产乱码久久久久久| 操老熟女AV| 亚洲九九视频| 青青草好吊色| 无遮挡一级毛片视频免费的| 国产一区二区三区视频在线看| 日韩激情中文字幕有码| 99超级碰免费视频| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 91亚洲影视| 亚洲欧美高清无码| 黄片qw| 蜜桃av综合网发布| 一区二区激情国产熟女 | 激情抓乳插进去啪啪啪日韩| 亚洲一区二区精品福利| 国产激情久久久| 亚洲av热热色| 丝袜高跟澳门91视频| 亚洲成人贴图| 天天躁日日躁AAAAXXXX国产| 亚洲国产无码精品首页久久久| 日韩熟妇二区| 99久久9| 久久久久99999| 岛国毛片手机在线观看| 91热爆在线| 日本精品免费一区二区三区四区| 亚洲色图第一页| 日韩啊V| 99久久e免费热视| 97超碰69| 啊啊啊啊啊啊啊网址在线观看| 清纯唯美亚洲综合| 国产一区自拍欧美日韩| 亚洲 日韩 欧美 国产综合体| 欧洲Au麻豆| 少妇高潮一区二区三区在线| 国产午夜精品理论片一二三区区| 久久性爱大全| 亚洲美女精品| 99rre在线精品99re8| 亚州熟女乱伦| 欧美国产日韩清纯唯美| 9999亚洲电影| 亚洲成人激情小说视频| 插日本熟女视频| 欧美综合制服在线| 91欧美色| 日本在线激情一区二区三区| 白丝1区2区3区| 麻豆精品.欧美精品.日韩精品.| 91香蕉视频在线观看免费| 99re视频在线观看这里只有精品| 97精品国产手机| 五月天婷婷在线看| 激情五月综合网| 国产和美国毛片| 欧美一区二区男人天堂| 五月天婷婷久久| 加勒比伊人综合| 日本一区视频在线观看| 中文啪啪视频| 伊人久久AV诱惑悠悠| 亚洲成?V人片在线观看福利| 日本黄色裸日本黄色裸体 | 精品一区二区三区四区外站| 大香蕉中文| 这里有精品| 国产自偷| 99热这里只有精品地址| 亚洲色图欧美另类在线| 强奸乱伦免费网站| 自拍偷拍2025在线观看| 91艹| 内射夫妻三片| 亚洲熟妇图片| 亚洲一级黄色毛片| 国产在线76页| 亚洲欧美情色| 丁香成人五月天| 午夜一区| 99操视频| 久久色精品视频在线| 99久久婷婷国产综合| 亚91网| 色综合九九| 91精品人妻一区二区三区蜜臀| 成年人一级黄色毛片大全在线观看| 98福利在线视频| 无码操逼网| 色哟哟精品1精品2| 芊芊操逼视频无码| 天天干天天日天天射黄色片| 99老司机精品视频在线观看| 中文乱码99| 成人麻豆av电影网站| 今日头条成人一区二区三区四虎精品| 岛国毛片在线观看免费| 亚洲永久永久永久永久一级一级一级精品 | 伦在线97| 日本东京热加勒比久久| 国产精品丝袜久久亚洲不卡| 亚洲精品无码成人久久久99| 97超碰逼| 八戒无码国产午夜福利| 欧美 亚洲 综合 制服 另类| 99久久久久久亚洲精品不卡| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 国产欧美一区激情交| 日本一线产区和二线产区伦理片| 色五91| 久久国产逼| 国产免费一区| 久久99视频| 日本国产亚洲一区在线观看| 极品五月天噜噜| 蜜乳Av成人片网站| 97se亚洲| 麻豆天美久久91| 国产日韩欧美亚洲精品95| 欧美日韩美女精品久草一区二区三区| 十八禁视频网站| 婷婷爽人人婷婷爽视频| 操学生天天| 免费强奸av| 久久伊人最新网址视频| 青青操在线亚洲视频观看欧美在线 | 日韩人体偷拍| 精品久久久高清无码| 尤物视频偷拍免费| 亚洲日韩肥臀视频在线观看| 中文字幕日韩专区精品系列| 国产熟女自拍| 成人5码视频| 91情色| 亚洲自拍青操视频| 日本 欧美 亚中文字幕| 波多野42部无码喷潮在线观看| 好一吊区二区| 天天看人人操屄犊摸阴| 亚洲第一成人影院色播| 亚洲一区在线观看欧洲| 极品后入免费视频| 久久9视频| 二男一女成人A片| 久久久青青草| 欧美美女后入| 天天综合亚在线| 国产精品熟女丝袜一区二区| 亚洲第一视频 欧美风情 日韩| 伊人久久大香线综合无码| 99热在线观看| 色五天伊人| 精品国产三级av韩国在线| 一本色道久久综合熟妇| 怡红院视频在线| 我要看免费韩日黄片| 欧美色涩| 国语精品对白| 国产后入清纯| 天美一二三在线观看Av| 五月花婷婷| 可以免费观看的日韩av毛片| 亚洲啪啪视频免费| 亚洲欧洲激情卡通另类文学四射小说网站| 中国黑人三级片网站上区| 日韩情色视频| 操婷婷逼| 欧美人妻久久精品二区三区| 99热线麻豆| 视频二区熟女人妻| 国产 大胆 对白| 99热超碰| 野狼激情网| 最新国产精品久久精品| 成人网站 免费观看| 377p欧洲日本亚洲大胆| 久久永久无码人妻视频| 亚洲欧美不卡线| 插B在线观看| 舔舔啊| 黄色高清久久无码依人| 992这里有精品| 四虎AV在线观看| 精品美女少妇一区二区三区| 九月激情婷婷| 亚州综合色| 久久免费少妇| 亚洲天堂电影网99999| 中文字幕熟女人妻丝袜丝| 青青色综合| 日韩av三四区| 中文乱码99| 精品久久久九九九孕妇| 中文字幕二区日韩天堂| av资源在线观看少妇| 丁香婷婷啪啪| 激情五月天网站| 五月天婷婷基地| 五月婷婷激情网| 国模精品娜娜一二三区 | 亚洲天堂精品日韩电影| 久久东京热成人| 超碰在线91| 欧美亚洲特P| 精品福利| 乱性AV| 久久久久久网址| 成人性爱AV在线免费观看| 翔田千里无码一区| 日韩操逼HD| 在免费jIzzjIzz在线视频| 国产人伦a片信息免费片| 美國A片| 久久性生大片免费观看性| 豆花视频操逼网址| 伊人久久大香线蕉无码| 激情无码日韩| 日本熟女中文| 性色av婷婷久久一区二区点复制| 麻豆国产96在线| 91一区二区| 欧美午夜精品久久久久久超碰| 中文字幕91综合| 欧天美中出| 男人成人黄色视频在线观看免费下载| 蜜桃臀av一区二区| 熟女熟妇一区二区三四区| 国产品精品自在在线午夜免费| 五十路六十路七十路熟婆| 99这里只有精品国产| 欧美亚洲中文字幕| 青青草原人妻| 欧美狠狠操| 久久久久久99999国产精品| 日产精品久久久一区二区| 九九九热| 黄色免费网页无码| 天天天天天干夜夜夜夜夜操| 江都AV在线| 91N综合网在线|