日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

STM32開發(fā)調(diào)試踩坑指南:從時鐘配置到串口通信的典型問題與排查思路

STM32開發(fā)調(diào)試踩坑指南:從時鐘配置到串口通信的典型問題與排查思路 1. 項(xiàng)目背景與調(diào)試切入點(diǎn)搞嵌入式開發(fā)這些年STM32可以說是繞不開的一個平臺。從剛開始拿著開發(fā)板點(diǎn)燈到后來做完整的電機(jī)控制、傳感器采集、通信組網(wǎng)項(xiàng)目幾乎每個階段都會碰到各種匪夷所思的問題。有些坑是芯片本身的使用姿勢不對有些坑純粹是工具鏈用得不熟還有不少坑是代碼邏輯和硬件設(shè)計(jì)糾纏在一起導(dǎo)致的。我一直有記錄調(diào)試筆記的習(xí)慣這次把其中比較有代表性的問題整理出來涵蓋時鐘配置、串口通信、定時器中斷、調(diào)試器連接、內(nèi)存管理、電源干擾等幾個高頻踩坑區(qū)域。文章里涉及的案例都是實(shí)際跑過的項(xiàng)目不是從文檔里抄出來的理論每個問題都附帶了現(xiàn)象描述、排查思路和最終的解決辦法。這套經(jīng)驗(yàn)對剛?cè)腴T的新手特別有用能幫你少走很多彎路對已經(jīng)做了一兩年開發(fā)的人來說也可以對照看看有沒有踩過類似的坑順手補(bǔ)充一些排查技巧。2. 芯片基礎(chǔ)配置階段的常見問題2.1 時鐘樹配置不當(dāng)引發(fā)的詭異現(xiàn)象時鐘配置是 STM32 開發(fā)的第一個大坑。很多人習(xí)慣直接照抄參考例程里的 SystemClock_Config 函數(shù)但不同型號的芯片、不同頻率的外部晶振配置邏輯是有差異的。我遇到過一個非常典型的案例某次項(xiàng)目中用了 STM32F103C8T6板子上外部晶振是 8MHz但同事直接復(fù)制了 25MHz 外部晶振的配置代碼。結(jié)果系統(tǒng)上電后串口輸出的數(shù)據(jù)全是亂碼Delay 延時時間也明顯不對用示波器測量 PWM 波形頻率比預(yù)期值差了整整三倍多。這個問題的本質(zhì)是 PLL 倍頻系數(shù)沒有根據(jù)實(shí)際晶振頻率調(diào)整。STM32F103 的最高主頻是 72MHz而 PLL 的輸入頻率范圍要求在 2MHz 到 16MHz 之間。用 25MHz 作為 HSE 輸入時PLL 倍頻系數(shù)是 2 倍也就是 50MHz主頻直接跑低。而用 8MHz 晶振時需要配置 9 倍頻才能達(dá)到 72MHz。排查這類問題時先確認(rèn)兩個參數(shù)外部晶振的實(shí)際頻率是多少PLL 倍頻系數(shù)是否和目標(biāo)主頻匹配。推薦的做法是在代碼開頭加一段 RCC_GetFlagStatus 檢測確認(rèn) HSE 起振成功后再根據(jù)晶振頻率動態(tài)計(jì)算分頻系數(shù)這樣代碼在不同板卡之間移植時不容易出錯。void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct {0}; RCC_OscInitStruct.OscillatorType RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.PLL.PLLState RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL RCC_PLL_MUL9; // 8MHz * 9 72MHz if (HAL_RCC_OscConfig(RCC_OscInitStruct) ! HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider RCC_HCLK_DIV1; HAL_RCC_ClockConfig(RCC_ClkInitStruct, FLASH_LATENCY_2); }順帶提醒一下如果使用內(nèi)部 HSI 時鐘精度相對較低做串口通信或者 USB 功能時容易出現(xiàn)波特率偏差。對時序要求嚴(yán)格的應(yīng)用盡量使用外部晶振。2.2 啟動文件與芯片型號不匹配另一個高頻問題是啟動文件選錯。Keil 工程里 startup_stm32f10x_hd.s、startup_stm32f10x_md.s、startup_stm32f10x_ld.s 分別對應(yīng)不同容量的芯片很多人圖省事直接復(fù)制整個工程模板沒注意芯片容量等級。這個問題的典型表現(xiàn)是程序下載成功后代碼不跑或者跑起來后隨機(jī)死機(jī)但編譯時沒有任何報錯。原因在于啟動文件里定義的堆棧大小、中斷向量表偏移和實(shí)際芯片不匹配導(dǎo)致某些外設(shè)的中斷無法正確響應(yīng)。我之前還遇到過一種更隱蔽的情況用了帶 FPU 的 STM32F4 芯片但工程配置里沒有勾選 Use Single Precision 選項(xiàng)結(jié)果程序一旦執(zhí)行浮點(diǎn)運(yùn)算就進(jìn)入硬件錯誤中斷。這類問題一般出現(xiàn)在 CubeMX 生成的工程被手動改動過配置之后解決方法是檢查 C/C 編譯器選項(xiàng)里的目標(biāo)芯片選型和浮點(diǎn)運(yùn)算單元配置。啟動文件配置這塊建議花點(diǎn)時間把不同型號的差異搞清楚。表格里列一下常用型號的分類方便檢索芯片系列啟動文件選擇依據(jù)中斷向量表大小STM32F103C8T6中容量md64 字節(jié)STM32F103RCT6中容量md64 字節(jié)STM32F103ZET6大容量hd128 字節(jié)STM32F407VET6大容量hd128 字節(jié)STM32F429IGT6大容量hd128 字節(jié)實(shí)際上對于 F4 系列啟動文件通常統(tǒng)一用 startup_stm32f40xx.s但部分型號需要對應(yīng)到 startup_stm32f429xx.s搞混了就會出現(xiàn)莫名其妙的啟動異常。2.3 Keil 工程配置的幾個隱蔽選項(xiàng)Keil 雖然用的人最多但里面的坑也不少。最常見的三個問題編譯器優(yōu)化等級設(shè)置不當(dāng)。有些代碼在 -O0 下正常運(yùn)行一旦把優(yōu)化等級調(diào)到 -O2 或更高就出現(xiàn)變量莫名被清零、循環(huán)多跑少跑的情況。這是典型的 C 語言未定義行為和編譯器優(yōu)化沖突。比如很多人寫延時函數(shù)時喜歡用空循環(huán)像一個簡單的變量遞減循環(huán)在 -O2 下會被編譯器整體優(yōu)化掉導(dǎo)致延時直接失效。解決辦法是定義一個 volatile 變量或者改用 HAL_Delay。另一個是 MicroLIB 的坑。Keil 里默認(rèn)勾選了 Use MicroLIB 選項(xiàng)它裁剪了標(biāo)準(zhǔn)庫的一部分功能最典型的影響就是 printf 的浮點(diǎn)輸出。如果代碼里有用 printf 輸出 float 類型數(shù)據(jù)勾選 MicroLIB 后可能輸出不了或者輸出錯誤的字符而取消這個選項(xiàng)后固件體積會大不少。我之前在 F103C8T6 上遇到過 Flash 不足的問題就是因?yàn)槿∠?MicroLIB代碼體積從 32KB 漲到了 48KB。后來是靠調(diào)整 printf 的重定向方式解決的保留 MicroLIB 的同時用__io_putchar手動實(shí)現(xiàn)單字符輸出。還要注意 Include Path 的配置。工程拷給別人后編譯報錯基本都是頭文件路徑缺失導(dǎo)致的。CubeMX 生成的新版工程會把驅(qū)動代碼放在 Drivers 目錄下如果中途手動改過目錄結(jié)構(gòu)一定要同步更新 C/C 選項(xiàng)卡里的 Include Paths。3. 串口通信調(diào)試的實(shí)戰(zhàn)經(jīng)驗(yàn)3.1 打印日志的正確姿勢串口打印是嵌入式開發(fā)最常用的調(diào)試手段但很多人第一步就把路走歪了。我用過的最省心的方案是重定向 printf 到串口配合串口調(diào)試助手查看輸出。重定向的核心代碼如下不同編譯環(huán)境下略有差異#ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif PUTCHAR_PROTOTYPE { HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, 0xFFFF); return ch; }這里有個小注意點(diǎn)HAL_UART_Transmit的最后一個參數(shù) Timeout 不要設(shè)置太短。如果主循環(huán)里頻繁調(diào)用 printf超時時間太短會導(dǎo)致高波特率下丟數(shù)據(jù)。但設(shè)置過長又會在串口被占用時卡死整個主循環(huán)。我一般用 100ms 這個值調(diào)試時夠用也不會明顯影響響應(yīng)。另外一個容易忽視的地方是 GPIO 的復(fù)用功能配置。用了 STM32CubeMX 生成代碼的話它會自動把 PA9、PA10 配置為 USART1 的 TX、RX 引腳。但如果自己寫寄存器很多人只配置了 GPIO 模式忘了開啟復(fù)用功能串口怎么調(diào)都調(diào)不出來。檢查 GPIO_InitStruct.Alternate 是否正確賦值這是 F4 系列特別容易犯的錯。3.2 串口 DMA 接收的環(huán)形緩沖設(shè)計(jì)項(xiàng)目里如果用串口收發(fā)不定長數(shù)據(jù)輪詢接收方式效率太低中斷接收方式在數(shù)據(jù)量大時又容易丟字節(jié)這時候就得用 DMA 空閑中斷的方式。關(guān)于空閑中斷老一點(diǎn)的庫用的是USART_IT_IDLEHAL 庫則是__HAL_UART_CLEAR_IDLEFLAG。我自己的調(diào)試項(xiàng)目里設(shè)計(jì)了一個簡易的環(huán)形緩沖區(qū)來處理不定長串口數(shù)據(jù)#define RX_BUFF_SIZE 256 uint8_t rx_buff[RX_BUFF_SIZE]; volatile uint16_t rx_tail 0; volatile uint16_t rx_head 0; void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if (huart-Instance USART1) { rx_tail RX_BUFF_SIZE - __HAL_DMA_GET_COUNTER(hdma_usart1_rx); } } void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { if (huart-Instance USART1) { __HAL_UART_CLEAR_OREFLAG(huart); HAL_UART_Receive_DMA(huart, rx_buff, RX_BUFF_SIZE); } }主循環(huán)里處理數(shù)據(jù)時將rx_head向后移動當(dāng)rx_head追上rx_tail時說明數(shù)據(jù)已經(jīng)全部處理完畢。這個設(shè)計(jì)的核心思路是 DMA 持續(xù)不斷地往緩沖區(qū)寫數(shù)據(jù)而 CPU 這邊按自己的節(jié)奏取數(shù)據(jù)兩邊互不阻塞。實(shí)際調(diào)試中遇到的坑是 DMA 半傳輸中斷和傳輸完成中斷的處理不清導(dǎo)致數(shù)據(jù)被重復(fù)讀取。要么在回調(diào)里加保護(hù)標(biāo)志要么直接將 DMA 循環(huán)模式配置為DMA_CIRCULAR且不啟用半傳輸中斷。我第一次做這個設(shè)計(jì)時啟用半傳輸中斷后數(shù)據(jù)總是丟一半排查了半天才發(fā)現(xiàn)是回調(diào)里誤操作了緩沖區(qū)指針。3.3 串口調(diào)試助手的選擇與踩坑串口調(diào)試助手這類工具市面上一抓一大把但不同工具之間的行為差異很大。某些調(diào)試助手發(fā)送十六進(jìn)制數(shù)據(jù)時自動添加回車換行如果協(xié)議對幀格式要求嚴(yán)格這個自動添加的字節(jié)就會導(dǎo)致協(xié)議解析失敗。我的做法是準(zhǔn)備兩個工具一個是在線調(diào)試輔助工具適合快速看數(shù)據(jù)亂不亂另一個是本地安裝的經(jīng)典工具適合需要發(fā)送自定義幀格式的場景因?yàn)榭梢允謩涌刂瓢l(fā)送的每一個字節(jié)。另外調(diào)試 USB 虛擬串口時Windows 驅(qū)動偶爾會出問題表現(xiàn)為設(shè)備管理器中識別到設(shè)備但無法打開串口。這種情況一般需要重新安裝 USB 轉(zhuǎn)串口驅(qū)動或者更換一根帶屏蔽層的數(shù)據(jù)線嘗試。USB 虛擬串口VCP這塊有個很有意思的現(xiàn)象值得單獨(dú)提出來。很多人第一次用 STM32 自帶的 USB 模塊做虛擬串口時用串口助手打開發(fā)送數(shù)據(jù)一切正常但用自己寫的上位機(jī)代碼打開同一個串口卻發(fā)現(xiàn)無法通信。這可能不是串口配置的問題而是上位機(jī)請求的串口參數(shù)波特率、校驗(yàn)位等與固件端 USB 描述符不匹配導(dǎo)致的。虛擬串口本質(zhì)上不依賴物理波特率但很多上位機(jī)軟件在打開串口時會發(fā)送波特率設(shè)置請求固件若未正確處理這個請求設(shè)備就會處于無法收發(fā)數(shù)據(jù)的狀態(tài)。在 STM32 的 USB 庫中處理CDC_SetLineCoding請求時建議直接忽略參數(shù)內(nèi)容始終按 8N1 方式處理數(shù)據(jù)這樣可以避免這類問題。4. 定時器、中斷與實(shí)時性的坑4.1 定時器中斷處理耗時導(dǎo)致的溢出定時器中斷處理函數(shù)里做太多事情是嵌入式開發(fā)最常見的實(shí)時性問題來源。我之前做一個步進(jìn)電機(jī)控制的調(diào)試項(xiàng)目時用 TIM3 的中斷做脈沖計(jì)數(shù)中斷服務(wù)函數(shù)里放了一個阻塞式的 LCD 刷新操作?,F(xiàn)象是電機(jī)轉(zhuǎn)速稍微一快脈沖計(jì)數(shù)就開始丟步整個系統(tǒng)響應(yīng)變得卡頓。排查后發(fā)現(xiàn)LCD 刷新一次需要大約 8ms而定時器中斷周期是 1ms。中斷還沒處理完下一次中斷請求就已經(jīng)到了觸發(fā)定時器更新中斷溢出。中斷標(biāo)志位沒有被及時清除導(dǎo)致計(jì)數(shù)丟失。這類問題的最佳實(shí)踐是中斷服務(wù)函數(shù)只做標(biāo)記和輕量級數(shù)據(jù)處理把繁重的工作放到主循環(huán)里處理。用狀態(tài)機(jī)配合一個event_flag變量中斷里只置位標(biāo)志主循環(huán)檢測到標(biāo)志后再做耗時操作。volatile uint8_t event_flag 0; void TIM3_IRQHandler(void) { if (TIM_GetITStatus(TIM3, TIM_IT_Update) ! RESET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update); event_flag | 0x01; } } void Main_Loop(void) { if (event_flag 0x01) { event_flag ~0x01; LCD_Refresh(); // 耗時操作放到這里 } }如果確實(shí)需要在中斷里做高優(yōu)先級處理也要嚴(yán)格控制中斷服務(wù)函數(shù)內(nèi)部的耗時時長。一般建議控制在 20 微秒以內(nèi)超過這個量就要考慮用 DMA 或者拆到多個時間片去執(zhí)行。4.2 編碼器模式與定時器輸入捕獲的沖突STM32 的高級定時器和通用定時器功能很豐富能配置成編碼器模式、輸入捕獲模式、PWM 輸出模式等。但同一個定時器的多個通道在某些模式下是有資源沖突的。我在電機(jī)測速項(xiàng)目里用 TIM2 的編碼器模式讀取 AB 相正交編碼器信號同時又想用 TIM2 的通道 3 做一個頻率測量。結(jié)果無論如何配置通道 3 的捕獲值都是亂的頻率測量結(jié)果完全不可用。查了參考手冊才明白編碼器模式下定時器的時鐘源和計(jì)數(shù)方向完全由編碼器信號決定此時定時器本身已經(jīng)不能再承擔(dān)普通的定時計(jì)數(shù)功能了通道 3 自然無法正常工作。正確的方案是編碼器模式獨(dú)占一個定時器頻率測量換用其他定時器。如果引腳資源不足用外部中斷加 GPIO 模擬測頻也是一種辦法但要注意外部中斷持續(xù)觸發(fā)時對 CPU 的占用。4.3 中斷優(yōu)先級配置不當(dāng)導(dǎo)致系統(tǒng)鎖死中斷優(yōu)先級這個坑比想象中隱蔽得多。Cortex-M 內(nèi)核的 NVIC 支持搶占優(yōu)先級和子優(yōu)先級如果配置不當(dāng)兩個中斷之間可能產(chǎn)生不可預(yù)知的嵌套行為。我遇到過最嚴(yán)重的一次死機(jī)現(xiàn)象開啟兩個外部中斷 EXTI0 和 EXTI1兩個中斷的搶占優(yōu)先級設(shè)置成相同數(shù)值但子優(yōu)先級不同。當(dāng)兩個中斷同時觸發(fā)時系統(tǒng)沒有按照預(yù)期的順序執(zhí)行而是進(jìn)入了死鎖狀態(tài)。后來參考了勘誤手冊和論壇上的討論才意識到問題出在把兩個中斷的搶占優(yōu)先級設(shè)為相同值但子優(yōu)先級設(shè)為不同值這會導(dǎo)致中斷通道無法正確響應(yīng)。實(shí)際項(xiàng)目中我的配置原則是需要搶占的中斷優(yōu)先級必須不同子優(yōu)先級只在同一搶占級別內(nèi)部有意義。例如電機(jī)控制中的過流保護(hù)中斷搶占優(yōu)先級設(shè)為 0串口接收中斷設(shè)為 1按鍵中斷設(shè)為 2這樣即使在調(diào)試中斷里執(zhí)行長操作過流保護(hù)也能立刻打斷。4.4 精準(zhǔn)延時的幾種實(shí)現(xiàn)方式很多項(xiàng)目需要在跑操作系統(tǒng)的任務(wù)中做微秒級延時比如傳感器時序、通信時序這時HAL_Delay明顯不夠用它的精度只有毫秒級而且被中斷打斷后誤差很大。我在編寫超聲波測距項(xiàng)目的調(diào)試代碼時就面臨這個問題。超聲波模塊需要一個至少 10 微秒的觸發(fā)脈沖之后等待回波信號。如果用HAL_Delay(1)來驅(qū)動觸發(fā)脈沖的寬度就變成了 1ms雖然模塊也能工作但檢測精度受到了影響。比較可靠的方案是用 DWT 模塊做微秒級延時Cortex-M3/M4 內(nèi)核自帶這個模塊不需要額外占用定時器static volatile uint32_t *DWT_CYCCNT (uint32_t *)0xE0001004; static volatile uint32_t *DWT_CONTROL (uint32_t *)0xE0001000; static volatile uint32_t *SCB_DEMCR (uint32_t *)0xE000EDFC; void DWT_Delay_Init(void) { *SCB_DEMCR | (1 24); // 使能 TRCENA *DWT_CONTROL | (1 0); // 使能 CYCCNT *DWT_CYCCNT 0; } void DWT_Delay_Us(uint32_t us) { uint32_t start *DWT_CYCCNT; uint32_t ticks us * (SystemCoreClock / 1000000); while ((*DWT_CYCCNT - start) ticks); }這套方案的好處是精準(zhǔn)度直接取決于系統(tǒng)主頻不占用外設(shè)定時器資源在 RTOS 環(huán)境中也不會被調(diào)度器影響。需要注意的是如果主頻很高us * (SystemCoreClock / 1000000)的計(jì)算結(jié)果可能溢出用 uint64_t 做中間變量會更保險。5. 調(diào)試下載環(huán)節(jié)的疑難雜癥5.1 連接不上目標(biāo)板的排查思路玩 STM32 的都知道最絕望的時刻是點(diǎn)擊下載按鈕后Keil 提示 Cannot access Target然后板子就再也沒有反應(yīng)了。這個問題新手遇到的概率最大原因也是五花八門。先從最簡單的排除確認(rèn)調(diào)試器ST-Link 或者 J-Link有沒有被電腦識別設(shè)備管理器里能看到對應(yīng)的端口。然后檢查接線SWD 接口的四個信號線是必須的SWDIO、SWCLK、GND、VCC。有時候 VCC 沒接也會導(dǎo)致無法連接芯片。接下來在 Keil 的 UTILITIES 選項(xiàng)卡里看 Flash Download 配置是否正確芯片型號選錯也會報同樣錯誤。如果硬件連接和工程配置都沒問題那還有一個可能性是芯片已經(jīng)被鎖死。之前調(diào)試時因?yàn)閷π酒鲎x保護(hù)之后想重新下載程序Keil 便提示無法連接。解決辦法是按住板子的復(fù)位鍵在點(diǎn)擊下載按鈕的同時松開復(fù)位利用芯片啟動瞬間的短暫時間窗口擦除整個 Flash。ST 官方工具 ST-Link Utility 有整片擦除功能直接用它可以解鎖芯片。但 ST-Link Utility 這個軟件現(xiàn)在更新得比較慢了在 Windows 11 系統(tǒng)上偶爾會碰到驅(qū)動兼容問題。這種情況下可以考慮用 STM32CubeProgrammer它新一些功能也齊全還支持命令行操作方便集成到自動化腳本里。5.2 調(diào)試器接口速率與信號完整性SWD 接口的最高速率能達(dá)到 10MHz但對于常規(guī)調(diào)試尤其是連接線較長的情況下跑這個速率很容易出現(xiàn)連接不穩(wěn)定的問題。表現(xiàn)為代碼能下載但程序開始運(yùn)行后調(diào)試器偶爾就斷開連接重新連接后又恢復(fù)正常。有一次我自己做的一個項(xiàng)目里用杜邦線連接 ST-Link 和板子接線長度大概 20 厘米調(diào)試器速率設(shè)置成 10MHz每次跑幾分鐘就斷連。把速率降到了 1MHz 之后跑了一整天也沒再斷過。如果你的目標(biāo)板硬件設(shè)計(jì)允許推薦在 SWDIO 引腳上加一個 100 到 220 歐姆的串聯(lián)電阻在 SWCLK 上加一個 4.7k 歐姆的下拉電阻這樣可以顯著提升 SWD 接口的抗干擾能力。當(dāng)然最簡單有效的方法還是縮短杜邦線長度或者直接用帶有屏蔽層的一體化調(diào)試線。5.3 Win11 環(huán)境下的驅(qū)動兼容問題Windows 11 系統(tǒng)對舊版本調(diào)試器驅(qū)動的兼容性不太好。ST-Link V1 版本在 Win11 上偶爾會被系統(tǒng)識別為未知設(shè)備導(dǎo)致 Keil 無法找到目標(biāo)芯片。解決方法是使用更新的 ST-Link 驅(qū)動或者給 ST-Link V2 單獨(dú)安裝驅(qū)動包。需要注意的是Win11 對驅(qū)動的數(shù)字簽名校驗(yàn)很嚴(yán)格某些自簽名驅(qū)動無法正常安裝。這種情況下可以在開機(jī)啟動時選擇禁用驅(qū)動簽名強(qiáng)制或者在系統(tǒng)設(shè)置 — 恢復(fù) — 高級啟動中進(jìn)入啟動設(shè)置選擇禁用驅(qū)動程序強(qiáng)制簽名。J-Link 的情況類似老版本的 J-Link 驅(qū)動在 Win11 上有已知問題表現(xiàn)為連接速度極慢或者頻繁超時。升級到新版驅(qū)動后基本都能解決。5.4 下載調(diào)試中的代碼優(yōu)化陷阱Debug 模式下程序跑得好好的Release 模式下程序就跑飛了。這個問題我在做編碼器程序調(diào)試時遇到過。原因很簡單調(diào)試模式下編譯器默認(rèn)降低優(yōu)化等級Release 模式默認(rèn)是高優(yōu)化等級代碼里某些未定義行為在高優(yōu)化下暴露出來了。典型例子是volatile關(guān)鍵字的缺失。如果某個全局變量在中斷函數(shù)和主循環(huán)中同時被訪問但不加volatile修飾編譯器在某些優(yōu)化策略下會把它加載到寄存器里導(dǎo)致主循環(huán)反復(fù)使用同一個舊值中斷更新后的值被忽略。// 錯誤示例 uint8_t uart_flag 0; void UART_IRQHandler(void) { uart_flag 1; } void main_loop(void) { // 編譯器優(yōu)化后可能永遠(yuǎn)看不到 uart_flag 變成 1 if (uart_flag) { ... } } // 正確示例 volatile uint8_t uart_flag 0;這個問題的本質(zhì)是 C 語言標(biāo)準(zhǔn)中規(guī)定對 volatile 變量的訪問不能被優(yōu)化掉每次讀取都必須從內(nèi)存地址重新加載。只要記住中斷和主循環(huán)共享的變量、DMA 緩沖區(qū)相關(guān)標(biāo)志、寄存器映射的結(jié)構(gòu)體指針這三個場景下用 volatile 是硬性要求。6. 電源、布線與硬件聯(lián)調(diào)6.1 電源紋波導(dǎo)致的 ADC 采樣跳變ADC 采樣值跳變有時不是代碼的問題而是電源紋波在搗鬼。某次我用 STM32F407 做一個電流采樣項(xiàng)目ADC 采樣值在空載時就有 ±30 個 LSB 的跳動怎么說都不對。用示波器測量了 3.3V 電源軌紋波高達(dá) 120mV遠(yuǎn)超 ADC 參考電壓的穩(wěn)定要求。解決方式是增加 π 型濾波電路串聯(lián) 10Ω 電阻并聯(lián)兩個 10μF 鉭電容和 0.1μF 陶瓷電容的組合然后將濾波后的電壓單獨(dú)供給到芯片的供電引腳或 MCU 的電源輸入引腳。如果模擬和數(shù)字部分共用一個電壓源還要考慮在 PCB 上用磁珠或 0Ω 電阻將模擬地和數(shù)字地做星形連接。ADC 采樣本身也可以軟件補(bǔ)償多次采樣取平均值是最容易實(shí)現(xiàn)的方案。但要注意如果信號本身變化很快過度的軟件濾波會帶來滯后這時候優(yōu)先解決硬件紋波才是正途。6.2 通信接口的上下拉電阻設(shè)計(jì)STM32 的 I2C 接口屬于開漏輸出必須外接上拉電阻才能正常工作。很多人把一個 I2C 傳感器接上去之后發(fā)現(xiàn)通信失敗讀不到寄存器數(shù)據(jù)排查到最后發(fā)現(xiàn)是上拉電阻沒焊接。關(guān)于上拉電阻阻值的選取有個經(jīng)驗(yàn)區(qū)間標(biāo)準(zhǔn)模式 100kHz 時用 10kΩ快速模式 400kHz 時用 2kΩ 到 4.7kΩ 比較合適。阻值太大上升沿過緩傳輸速率上不去阻值太小靜態(tài)功耗增大而且驅(qū)動能力不夠時會把電平拉低。CAN 總線也有類似講究CAN_H 和 CAN_L 之間需要接一個 120Ω 的終端電阻而且是在總線的兩端各接一個。做 CAN 通信調(diào)試時如果只在板子上留了一端電阻長距離通信會出現(xiàn)波形反射導(dǎo)致數(shù)據(jù)錯誤或總線直接進(jìn)入錯誤狀態(tài)。6.3 晶振布局與起振失敗外部晶振不起振或者振蕩不穩(wěn)定是新手很容易碰上的一個硬件問題?,F(xiàn)象是程序下載成功但芯片不運(yùn)行程序。如果嘗試斷電重新上電偶爾又能正常工作。原因通常是晶振電路的設(shè)計(jì)不符合規(guī)范。兩個負(fù)載電容的容值必須和晶振手冊要求的負(fù)載電容匹配。一個 8MHz 晶振通常要求 12pF 到 22pF 的負(fù)載電容選錯容值會造成起振困難。此外晶振引腳下面盡量不要走其它信號線這個區(qū)域要保持干凈的地平面。調(diào)試時用示波器測量晶振引腳的波形可以看到正旋波是否穩(wěn)定。如果波形幅度很小或者頻率明顯偏移優(yōu)先減小負(fù)載電容容值。還有一個技巧晶振附近的 PCB 走線盡量短實(shí)測下來線長超過 10mm 后抗干擾能力明顯下降。7. 常用工具鏈搭配的探索與對比7.1 Keil、STM32CubeMX 與 VSCode 的聯(lián)用方式現(xiàn)在搞 STM32 開發(fā)工具鏈的選擇已經(jīng)非常多樣了。我日常的習(xí)慣是先用 STM32CubeMX 生成外設(shè)初始化代碼然后在 Keil 里做編譯調(diào)試偶爾也會用 VSCode 看代碼、做代碼分析。CubeMX 生成代碼的優(yōu)勢很明顯外設(shè)時鐘樹、GPIO 復(fù)用、中斷優(yōu)先級這類繁瑣事它會自動處理人工配置出錯的概率大幅降低。不過也有它的副作用每次重新生成代碼時用戶添加的自定義代碼會被覆蓋。CubeMX 里保留了用戶代碼區(qū)USER CODE BEGIN / END 之間的內(nèi)容一定要把自定義初始化代碼放進(jìn)這個區(qū)域里。VSCode 搭配 EIDE 插件或 CMake 工具鏈可以實(shí)現(xiàn)更順暢的代碼編寫和 Git 集成體驗(yàn)代碼補(bǔ)全、格式化、靜態(tài)檢查都比 Keil 自帶的編輯器舒服不少。但是編譯調(diào)試還是可以回到 Keil兩邊互補(bǔ)使用。7.2 從 STD 庫遷移到 HAL 庫老工程師基本都是從標(biāo)準(zhǔn)外設(shè)庫STD 庫過來的現(xiàn)在官方主推 HAL 庫。兩者風(fēng)格差異很大STD 庫是直接操作寄存器的方式HAL 庫封裝程度更高提供了更上層的 API。遷移過程中最需要適應(yīng)的是初始化方式。STD 庫里寫 GPIO 配置需要自己構(gòu)造 GPIO_InitTypeDef 然后調(diào)用 GPIO_Init而 HAL 庫需要先使能時鐘再調(diào)用 HAL_GPIO_Init 并傳入 GPIO 引腳、模式、速度等參數(shù)。邏輯類似但函數(shù)名和參數(shù)結(jié)構(gòu)變化很大。我從 STD 庫遷移到 HAL 庫時有幾個體會。第一不要在中斷回調(diào)里做耗時處理HAL 庫的 UART 接收中斷是需要重新觸發(fā)下一次接收的忘了重新調(diào)用 HAL_UART_Receive_IT 的話數(shù)據(jù)就停在那里不動了。這個坑很多從 STD 庫轉(zhuǎn)過來的人都踩過。第二熟悉 HAL 庫的句柄結(jié)構(gòu)體對排查問題幫助很大很多問題的根源都在句柄配置錯誤上。7.3 調(diào)試打印的輕量級實(shí)現(xiàn)方案printf 雖然好用但有體積和性能的代價。如果你用的是 Flash 和 RAM 都比較緊張的芯片就要考慮輕量級日志方案了。一種方式是用snprintf格式化字符串到局部緩沖區(qū)然后一次性通過串口 DMA 發(fā)送。相比逐字符發(fā)送DMA 方式可以大幅降低 CPU 占用率。如果調(diào)試信息不需要在正式固件中出現(xiàn)還可以用宏定義做條件編譯#ifdef DEBUG_ENABLE #define LOG_INFO(fmt, ...) printf([INFO] fmt \r\n, ##__VA_ARGS__) #define LOG_ERROR(fmt, ...) printf([ERROR] fmt \r\n, ##__VA_ARGS__) #else #define LOG_INFO(fmt, ...) #define LOG_ERROR(fmt, ...) #endif這種方式在調(diào)試階段可以很方便地打開正式發(fā)布時把DEBUG_ENABLE宏注釋掉日志代碼就全部從二進(jìn)制中移除不會占用任何資源。8. 通信協(xié)議調(diào)試的實(shí)用技巧8.1 狀態(tài)機(jī)解析與幀同步恢復(fù)串口通信的協(xié)議解析最好用狀態(tài)機(jī)來實(shí)現(xiàn)而不是簡單的字符判斷堆疊。我之前做一個基于 STM32 的傳感器采集項(xiàng)目時用了一個簡單的 State-Action-Response 狀態(tài)機(jī)來處理幀結(jié)構(gòu)typedef enum { FRAME_IDLE, FRAME_HEADER, FRAME_LENGTH, FRAME_DATA, FRAME_CHECK } frame_state_t; frame_state_t state FRAME_IDLE; uint8_t frame_buff[64]; uint8_t frame_len 0; void UART_Parse_Byte(uint8_t data) { switch (state) { case FRAME_IDLE: if (data 0xAA) state FRAME_HEADER; break; case FRAME_HEADER: frame_len data; frame_buff[0] data; if (frame_len 64) state FRAME_IDLE; else state FRAME_DATA; frame_len 0; break; case FRAME_DATA: frame_buff[frame_len] data; if (frame_len frame_buff[0]) state FRAME_CHECK; break; default: state FRAME_IDLE; break; } }這類狀態(tài)機(jī)實(shí)現(xiàn)有幾個細(xì)節(jié)要處理好。幀頭校驗(yàn)不能只判斷第一個字節(jié)一個好的設(shè)計(jì)會加入幀頭和幀尾的雙重校驗(yàn)。接收到的數(shù)據(jù)長度要嚴(yán)格控制防止惡意數(shù)據(jù)包導(dǎo)致緩沖區(qū)溢出。校驗(yàn)失敗的處理邏輯很重要不要簡單丟棄然后回空閑態(tài)更好的方式是記錄錯誤計(jì)數(shù)并嘗試在下一個可能位置重新同步。幀同步恢復(fù)是我實(shí)際調(diào)試中踩過的一個大坑。通信鏈路偶爾出現(xiàn)一個字節(jié)的錯誤后續(xù)所有幀數(shù)據(jù)都解析失敗表現(xiàn)為主機(jī)一直收不到有效數(shù)據(jù)包。原因是狀態(tài)機(jī)在收到錯誤數(shù)據(jù)后跳轉(zhuǎn)到空閑態(tài)時沒有正確消耗掉當(dāng)前字節(jié)導(dǎo)致接下來的正確數(shù)據(jù)無法被識別為幀頭。修正方式是在空閑態(tài)收到非幀頭數(shù)據(jù)時繼續(xù)停留空閑態(tài)等待而不是直接退出整個解析流程。8.2 串口數(shù)據(jù)丟幀的排查流程串口通信不定期丟數(shù)據(jù)可以從下面幾個方向排查波特率誤差。STM32 的 USART 波特率發(fā)生器是有一個分頻公式的當(dāng)所需波特率不是整數(shù)倍分頻時會存在誤差。對于 115200 波特率在 72MHz 主頻下理論誤差很小但如果你把主頻通過 PLL 設(shè)置為非標(biāo)準(zhǔn)頻率誤差就會明顯增大。接收中斷處理時間過長。如果在 UART 接收中斷里做太多工作可能導(dǎo)致下一字節(jié)到達(dá)時中斷還沒來得及退出硬件的接收寄存器被覆蓋數(shù)據(jù)丟失。用 DMA 接收是更穩(wěn)妥的方案。線材質(zhì)量。長距離串口通信用普通杜邦線抗干擾能力很差。改用屏蔽雙絞線后可以減少很多隨機(jī)丟幀的問題。更重要的是在軟件上做好接收緩沖保護(hù)。我之前調(diào)試時在接收中斷里直接處理協(xié)議解析業(yè)務(wù)導(dǎo)致業(yè)務(wù)邏輯稍微一卡就丟數(shù)據(jù)。后來改成中斷只做數(shù)據(jù)入隊(duì)把協(xié)議解析放到主循環(huán)的任務(wù)里執(zhí)行丟幀的問題就消失了。8.3 網(wǎng)絡(luò)通信與 UDP 調(diào)試的注意點(diǎn)很多 STM32 項(xiàng)目開始用以太網(wǎng)功能了用 W5500 這類芯片實(shí)現(xiàn) UDP 通信調(diào)試時又有一批新坑。UDP 本身是無連接協(xié)議調(diào)試起來比 TCP 簡單但也正因?yàn)闊o連接出現(xiàn)問題時更難排查。我在調(diào)試時遇過的一個典型問題STM32 的 UDP 客戶端發(fā)送數(shù)據(jù)給上位機(jī)軟件上位機(jī)能收到數(shù)據(jù)但上位機(jī)發(fā)送數(shù)據(jù)給設(shè)備時設(shè)備端完全沒反應(yīng)。排查后發(fā)現(xiàn)設(shè)備端雖然綁定了正確的本地端口號但上位機(jī)發(fā)送的源端口號不在設(shè)備的允許接收范圍內(nèi)。UDP 通信中設(shè)備端需要知道上位機(jī)的 IP 和端口才能回復(fù)數(shù)據(jù)如果上位機(jī)每次用不同端口發(fā)送設(shè)備端在初始化時只綁定了一次通信端點(diǎn)后續(xù)就無法收到來自新端口的數(shù)據(jù)。解決辦法是設(shè)備端動態(tài)記錄收到的最后一個數(shù)據(jù)包的源 IP 和端口回復(fù)時用這個地址?;蛘哂脧V播模式配合端口約定來規(guī)避這個問題。以太網(wǎng)物理層調(diào)試最容易出現(xiàn)的問題是網(wǎng)口變壓器的中心抽頭電平不匹配。DP83848 這類 PHY 芯片對差分信號的共模電壓有要求如果中心抽頭接錯就會導(dǎo)致鏈路始終起不來。這個問題的排查特征是網(wǎng)口指示燈不亮或者閃個不停用示波器測量 RMII 接口的 TX 時鐘可以發(fā)現(xiàn)根本沒有時鐘輸出。9. 常見問題排查速查表為了便于快速定位問題我把這些年調(diào)試中遇到的典型失敗模式整理成了表格方便大家直接對照問題現(xiàn)象可能原因排查方向程序下載后無法運(yùn)行啟動文件與芯片容量不匹配檢查工程所用啟動文件型號程序下載后無法運(yùn)行外部晶振未起振示波器測量 OSC_IN / OSC_OUT芯片無法連接調(diào)試器芯片進(jìn)入讀保護(hù)狀態(tài)ST-Link Utility 整片擦除芯片無法連接調(diào)試器SWD 線序接反檢查 SWDIO / SWCLK 接線串口輸出亂碼時鐘頻率與初始化配置不一致確認(rèn) HSE 頻率與 PLL 倍頻系數(shù)串口輸出亂碼波特率誤差過大用示波器實(shí)測發(fā)送端波形串口輸出亂碼調(diào)試助手發(fā)送設(shè)置不符檢查 HEX / ASCII 發(fā)送模式ADC 采集跳動大電源紋波過高示波器測量電源軌ADC 采集跳動大采樣時間設(shè)置過短增加采樣周期時間ADC 采集跳動大參考電壓不穩(wěn)定檢查 VREF 引腳濾波電路定時器計(jì)數(shù)不準(zhǔn)中斷處理時間過長縮短中斷服務(wù)函數(shù)代碼定時器計(jì)數(shù)不準(zhǔn)定時器分頻配置錯誤核對 PSC / ARR 數(shù)值中斷觸發(fā)無響應(yīng)NVIC 優(yōu)先級配置沖突檢查搶占優(yōu)先級設(shè)定DMA 傳輸卡死未使能 DMA 中斷或未重新觸發(fā)檢查 DMA 中斷配置浮點(diǎn)運(yùn)算死機(jī)未開啟 FPU檢查編譯選項(xiàng)與啟動文件I2C 通信失敗上拉電阻缺失或阻值不對檢查外部電路SPI 讀數(shù)據(jù)全 FF時鐘極性和相位不匹配檢查 CPOL / CPHA 配置CAN 無法通信終端電阻缺失檢查總線兩端 120Ω 電阻10. 幾個值得養(yǎng)成的調(diào)試習(xí)慣文章的最后分享幾個我這些年總結(jié)出來的、能實(shí)實(shí)在在提升調(diào)試效率的小習(xí)慣。第一調(diào)試時把工程里的優(yōu)化等級固定在 -O0等所有功能測試通過后再調(diào)整為需要的優(yōu)化等級做驗(yàn)證。不要在調(diào)試階段就開高優(yōu)化不然代碼出問題后還要糾結(jié)是不是優(yōu)化器的問題排查成本直接翻倍。第二寫日志時統(tǒng)一加上時間戳或者幀計(jì)數(shù)。這樣在分析日志時可以清楚地看到數(shù)據(jù)發(fā)生的時間間隔定位問題是周期性出現(xiàn)的還是偶發(fā)性的。我一般用系統(tǒng)滴答定時器作為時間基準(zhǔn)在日志初始化和串口初始化后每次打印前更新那個計(jì)數(shù)變量這樣每個日志條目前都能顯示精確到毫秒的時間。第三做硬件調(diào)試時養(yǎng)成先測電源的習(xí)慣。很多時候軟件怎么查都找不到原因的詭異問題最后都是硬件電源引起的。上電后第一件事用萬用表量每個電源軌的電壓用示波器看紋波確保不欠壓、不過壓、紋波在可接受范圍內(nèi)再繼續(xù)調(diào)試其他部分。第四也是最重要的一點(diǎn)遇到問題先記錄現(xiàn)象完整復(fù)現(xiàn)之后再做修改。很多人調(diào)試時發(fā)現(xiàn)一個可能的問題就立刻改代碼改完發(fā)現(xiàn)好了但不知道具體是哪個改動起了作用。我自己的經(jīng)歷證明做調(diào)試筆記、記錄每次修改的內(nèi)容和結(jié)果看起來費(fèi)時間實(shí)際上可以大幅減少重復(fù)勞動尤其是那種需要來回嘗試才能定位的疑難雜癥效果非常明顯。11. 個人調(diào)試體會與收尾最后再多說一點(diǎn)體會。STM32 調(diào)試這件事與其說是在查代碼不如說是在做系統(tǒng)性的排查。很多問題表面上看是代碼邏輯錯誤深入一查發(fā)現(xiàn)是硬件設(shè)計(jì)缺陷再往下挖甚至可能是工具鏈配置問題。所以每次遇到問題時先別急著改代碼把問題現(xiàn)象記錄完整按類別排查把各種可能性按概率排序一條一條確認(rèn)這是最高效的方法。在我調(diào)試過的所有板子里印象最深的還是第一次用 STM32F103 做串口通信時被亂碼折騰了整整三天。后來發(fā)現(xiàn)是 GPIO 復(fù)用功能沒配置對一個函數(shù)調(diào)用的問題。從那以后我每次看官方參考手冊和例程代碼都格外仔細(xì)而且把關(guān)鍵初始化流程都熟記于心。這個習(xí)慣幫我在后續(xù)的使用中少踩了很多坑。調(diào)試是一個積累的過程每一次坑都是經(jīng)驗(yàn)。希望這篇總結(jié)能幫你在 STM32 開發(fā)調(diào)試的路上少走一些彎路也歡迎大家在實(shí)際調(diào)試中不斷總結(jié)新的心得。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
2017av无码免费无线播| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 欧美三级免费伊人| 97在线视频观看免费| 最新无码国产| 亚洲熟妇自偷自拍另欧美| 一区二区三区色综合| 97在线免费观看视频| 国产乱码精品一区二区三区四川| 色第一页| 成人午夜小视频手机在线看| 丰满精品人妻少妇久久字幕| 亚洲无码超碰免费| 99日韩| 精品人妻一区春色| 午夜激情成人在线观看| 狼人综合婷婷激情四射 | 天美传媒国产原创中文字幕亚洲欧美另类| 97久久国产亚洲精品超碰热| 中文字幕一区二区三区高清| 国产欧美后入| 强奸乱伦AV网址| 亚洲人在线成线成人| 欧美综合第一页| 日本一级性爱| 亚州性色| 夜夜嗷嗷一区二区| 久久直播国产| 91亚洲综合在线| 婷婷午夜| 干少妇视频| 情色AV电影| 东京热视频网| 亚洲综合九| 婷婷午夜成人色中色| 伊人亚洲综合| 香蕉久久国产AV一区二区| 97资源站日韩| 人妻一区久久二区三区色播| 色情乱伦AV| 久久草视频污视频| 超碰在线成人| 日韩无码精品综合久久| 天美传媒av在线| 国产女人成人精品视频| 婷婷色综合欧美日韩| 大香网伊人久久综合网eew| 国产黄片在线免费观看| 天天操福利视频综合网站| 成人无码影片视频在线| 伊人热综合| 一区二区国产视频在线观看| 99综合| 1769成人国产精品视频| 嗯~啊~快点 死我视频免费看网站| 偷拍自拍在线视频观看| 久久久久久久性爱| 午夜精品久久久久久久| 加勒比在线视频| 国产aⅴ无码片毛片一级网站| 欧美日日人人天天| 97久精品| 蜜臀无码视频在线观看| 精品国产片亚洲一区| 操碰97| 97 视频在线| 亚洲天堂99| 金莲网址| 91精品国产91久久青草| 天美精品原创av片国产| 久久久久久久性爱| 91少妇通奸网站| 色av中文字| 精品日韩中文在线| 26uuu成人影片| 综合情欲网| 久久的网站啊啊啊啊啊| 黄色av一区二区在线| 中文?日韩?免费?精品| 男人的亚洲天堂| 人人摸人人干| 午夜精品探花| 亚洲av综合色区无码一| 91中文字幕制服丝袜免费视频| 久久熟女人| 久久综合99| 婷婷丁香五月天综合东京热| 日逼逼免费看| 国产强奸乱伦xd| 9久久久久久| 欧美色图片欧美色图| 熟女一区二区| 免费观看欧美日韩操逼视频| 97干com| 久久综合婷婷| 激情第四色| 欧美成人四级在线播放| 精品人妻视频入口| 电家庭影院午夜69久久夜色精品国产69乱| 大色综合| 狠狠操,使劲操| 91狠狠综合久久| 岛国成人av在线播放网址| 国产一区二区三区白丝| 日韩三A大片在线观看| 精品对白久久不卡| 性久久久| 国产精品麻豆成人av| 97干97色| 欧洲精品一级二级精品综合视频综合| 少妇精品| 秋霞色色影院| 国产高清自拍视频| 免费1级a做爰片观看| 呦呦一区| 午夜福利国产欧美日韩夜夜| 国产一区二区免费福利片| 天美91| 国产日韩精品人妻久久久久色欲网站 | 日韩AV熟女乱伦| 久久美女福利是上海美女| 日本操大逼| 精品性爱一二三区| 免费一级视频特黄色大片| 国产精品网址| 综合影视国产无码| 色五月综合网| 你操综合| 老司机免费视频在线91| 亚洲性少妇| 成人欧美日超碰| 久久后入制服| 97这里有精品| 亚洲精品一区二区日本| 亚洲无992tv| 香蕉国产精品麻豆亚洲欧美日韩 | 亚洲av乱伦色图网站| 国产一区二区三区久久久精品| 内射老妇BBWX0C0CK| 欧美日韩1234| 在线观看国产黄色| 超碰色中文| 久久久精久久久| 婷婷精品国产一区二区三区日韩| 粉嫩av一区二区三区四季| 国产精品一区在线播放| AV乱伦专区| 国产女人91精品嗷嗷嗷嗷| 92午夜免费福利视频| 99性爱| 一二三四区操操Av| 欧美精品自慰系列寂寞少妇 | 翔田千里爆乳巨臀无码| 日韩免费大片一级播放| 国产大学生高潮在线播放| 综合网色| 啊啊啊在线观看免费视频| 日韩精品国模| 亚洲人精品午夜不卡| 4tube欧美女厕所| 91色婷婷综合久久中文字幕二区| 91欧美网| 综合免费无码中文| 91亚洲黑人| 久久久精品一区二区| 精品人妻少妇| 日韩国产不卡在线视频| 东京热激情视频一二三区| 青娱乐大香蕉| 国产一区二区精品久久久不卡蜜臀| 久久69| 丁香五月综合| 亚洲欧美另类少妇精品| 懂色Av一区二区三区| 午夜福利在线视频1000| 中国熟女91| 国产日韩欧美中文在线播放| 亚洲乱码国产乱码精网站| 国内精品久久人妻性色av| 热热色青青草| 人人澡综合涩| 青青操在线视频| 操91| 91色图片| 97在线免费看视频| 国产精品女aA片爽爽视频| 国产高清亚洲日韩一区| 精品免费囯产一区二区三区| 香蕉99秘 一区精品蜜桃臀| 精品国产国产AV| 日韩中文字幕国产| 女性喷水高潮在线观看| 婷婷伊人网| 欧洲精品久久| 中日亚韩免费视频| 国产AV人人 夜夜人人澡| 亚洲小说视频| 丁香六月激情综合| 天天舔日美女视频| 综合色99| 国产欧美日产一区二区三区 - 国产欧美日 | 中文字幕一区二区三区人妻不卡 | 91欧洲入口| 在线岛| 超碰人妻久久人妻中文97| 国产精品农村妇女| 不卡啪啪视频| 美女上床网站| 成人性爱AV在线免费观看| 国产精品国产自产高清AV| 午夜啪啪片| 国产精品一区二区校花| 岛国精品视频在线观看| 亚洲精品丝袜-不卡成人免费……| 91丨精品丨国产丨丝袜| 亚洲男人天堂Av| 婷婷五月av| 欧美亚洲韩国视频十五区| jizzjizz欧美| 亚洲成人一二三区| 婷婷五月天无码 | 欧美激情欧美精品| 精品亚洲国产成人AV制服丝袜 | 精品熟妇视频一区二区| a在线观看| 中日韩久久久免费看| 久久精品国产亚洲AV无码做| 国产精品密臀网在线观看| 强被迫伦姧在线观看无码网站| 色性荡荡荡荡视频| 精品国产一区探花在线观看| 884t在线| 欧美精品自慰系列寂寞少妇| 欧美激情在线观看视频| 亚洲日本男人天堂网| 97亚洲精品| 偷拍欧美激情| 伊人久久大香线蕉无码| 密乳AV免费观看| 人妻少妇视频在线播放| 国产无码精品无码| 欧美后入视频| 日本 欧美 亚中文字幕| 国产精品嫩草久久久久| 国产精品动态一区二区三区四四| 婷婷丁香五月综合| 搡老女人911熟妇老熟女| 日韩av色图| 欧美在线播放aaaa| 综合网亚洲| 91久久18禁| 日本激情免费大片| 日韩电影在线观看网址| 国产精品久久久久久久免牛肉蒲团 | 不卡码视频| 亚洲欧美综合区自拍另类| 无卡一区=区| 91oumei| 尤物黄色在线观看网站| 天天操天天干美女网址导航| 天天干2区3区| 日韩中文字幕在线视频观看| 中国人高清www色视频免费| 青女在线| 免费视频无码| 国模无码一区二区三区在线| 成人久久久| 国产精品视频在线播放| 色噜噜综合在线| 久久综合亚洲色1080p| 久久午夜神马| 91精品少妇搡搡搡| av情色影音| 高清在线偷拍自拍视频| 国产精品福利资源在线尤物| 久久久亚洲精品中文字幕人妻| 一区二区三区四区五区高清无码永久视频 | 97色涩| AA丁香综合激情| 中文字幕日韩精品久久| 97超碰色色| 精品一区二区久久| 欧美综合在线91| 亚洲无码色| 极品尤物自安慰| 成人小说另类在线| 久久久久女教师免费一区| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 色翁荡息又大又硬又粗又爽| 91精品国产综合久久久蜜臀酒店| 日本大香蕉综合网红本杳社区| 久久国模av| 久久久久久久少妇| 亚洲欧美中日韩| 日本欧美亚洲高清在线看| 亚洲欧洲av影音| 97超碰美女| 熟女熟妇一区二区三四区| 干美女人妻| 金典av| 国产精品网站www| 久久久久久亚洲精品中文字幕人妻| 999国产精品999| 日韩国产不卡在线视频| 欧美黄片免费在线观看视频| 伊人五月天婷婷| 黄色免费网| 9国产超碰| 超碰97人人cao| 免费无码婬片AAAA片直播色戒| 成人怡红院| 欧美色就是色| 九九精品99| 91少妇| 久久精品熟女亚洲AV麻豆软件| 91爱网| 神马午夜久久| 欧美东京热青青草| 天天亚洲| 色视频蜜乳| 欧美日韩黄片精品在线| 色就色综合| 国产亚洲禁久一区二区| 熟女被操视频网址| 日韩黄色一区二区三区| 五月花婷婷| 亚洲国产午夜真人一级片中文字幕精品黄网站| 欧美很很操视频| 久久婷婷伊人| 青娱乐亚洲热| 日本最新免费韩国1区2区视频播放| 国产高清不卡视频| 色哟哟AV| 精品无码久久久久久久杏吧| 在线看的av| 中文字幕狠狠玩| 国产精品99久久久www| 午夜婷婷| 又摸又舔在线观看网站| 人人综合| 亚洲少妇激情一区二区三区| 亚洲欧美首页| 人人看欧美性爱| 婷婷丁香五月激情啪啪| http://qxhbdz.com| 操我啊啊啊啊啊| 日日噜噜夜夜久久亚洲一区二区 | 成人免费福利网站国产| 国产女人高潮视频| 97超碰超欧美。| 天堂综合网| 精品久久无码午夜福利| 国产99热| 免费成人在线熟妇网| 国产精品一区二区三区在线| 福利操逼| 黄网站黄视频网站进入口| 亚洲情色 无码专区| 亚洲日韩人妻中文字幕一区| 亚洲乱熟女一区二区三区大香蕉| 日韩伦理久 久久 清纯| 91久热这里只有精品| 美女主播色欲91抠b在线播放| 91色人| 密乳视频在线| 99热66| 欧洲精品网| 人人操人人摸超碰| 欧美视频边做饭边橾| 久久色一区| 亚洲色图片区| 成片免费播放| 中文啪啪视频| 91精品国| 国产成人精品日本亚洲语言| 日本一久是| 日本人妻丰满熟妇久久久久久| 五月丁香六月婷| 国产不卡中文字幕免费avi| 欧美劲爆第一页| 2017人人操,人人摸| 五月婷婷激情网| 18精品一二区| 国产成人精品日本亚洲语言| 91国产美女丝袜足交精品视频 | 男人的天堂2000| 操一操摸一摸| 欧美黑人XXXⅩ高潮交| 色97综合中文字幕| 色色香蕉| 日本超碰色精品| 久久性生大片免费观看性| 99热精品在线| 精品九九九九九九九九九| 欧美视频一| 性爱动态120秒| 97超碰大| 超碰97精品在线| 亚洲人妻精品一区二区| 2010男人的天堂| 大香蕉中文在线| 三级特黄60分钟播放| 久久精品老司| 18禁精品网站在线看| 国产精品欧美激在线| 欧美v亚洲v综合v国产v妖精| 欧美无圣光在线| 成人五级久久| 大香蕉色欲AV| 国产成人99久久亚洲综合| 精品国产网站| 欧美亚洲国产91在线| 久久亚洲不卡一区二区三区| 岛国免费视频在线| 97在线观视频免费观看| 约操熟妇| 欧美欧美少妇| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 青娱乐久久艹| 不卡在线观看视频| 色月天AV导航| 欧美v亚洲v综合v国产v妖精| 亚洲精品不卡一二三区| 入口操逼网站| 91在线丝袜| 日本女人操逼| 在线视频亚洲无码| 色网在线| 人人摸人人叼| 色欧美综合| 国产大片精久久久久久| 国产精品久久久久亚洲av| 中国黑人三级片网站上区| 乱伦图一区| 后入人妻无码| 少妇人妻精品| 色爱三区| 久久性爱视频免费看| 久久同城AV| 亚洲无码久久久久久久| 亚洲综合在线第一页| 激情综合五月天| 中国AV美女| 偷拍新久久| 天美av在线观看| wwwxxx日本爽| 欧美美女视频| 涩涩久久精品| 中文字幕日韩国产传媒欧美精品| 九九干| 天天干夜夜鈤| 亚州中文字幕超碰97| 国产中文字幕曰本毛片| 亚洲中文字幕熟女| 在线啊啊啊| 亚洲淫乱骚妇AV| 婷婷激情综合网| 日韩操p| 一本色道人妻久久| 亚州熟妇精品| 精品国产99| 99九九久久| 一区操逼| 亚洲国产成人精品久久久国产成人一区二区 | 欧美最大综合网| 中文字幕一区av| 亚洲欧洲无码bt精品合集| 大茄子熟女AV导航| 男人的天堂日韩| 亚洲天堂自拍| 久久超碰亚洲人| 狠狠穞A片一區二區三區| 亚洲精品性爱片| 欧美国产精品久久九九| 欧美综合综合| 欧美在线55555| 青青草在线成人视频| 377p欧洲日本亚洲大胆| 嫩草美女久久| 大象AV在线| 中文 人妻 制服| com 首页 18岁 禁区 女优 免费 精选 同城 | 黄色AAAAA欧美| 春色91| 怡红院成人av| 亚洲欧美黄| 78超碰| 欧美黄色手机在线观看| 五月综合视频| 亚洲,欧美,综合网| 色吊丝 日日骚 清纯唯美| 91搞逼视频| 日本成a人v网站在线观看| 久久久91| 欧美爱爱97| 亚洲 欧美 色图| 9Ⅰ超碰| 中出人妻中文字幕91在线| 天天天天天天天天综合| 啊啊啊啊啊好大好舒服想要| 密臀AV在线| 青青操在线亚洲视频观看欧美在线 | 精品99999| 精品国产av一区二区三区四区入口| 九九九精品美女| 欧美色图电影| 伊香蕉综合久久久久久久噜噜噜| 夜夜性| 超碰在线一区二区三区| 日本阿v天堂在线观看| 亚洲九九九| 日韩成人高清一区二区| 午夜精品久久久久久久久久久久久| 天天在线91| 大香蕉性欧美| 欧美性五月| 九九热精品视频六| 九九九九9999| 免费?级毛片无码?∨蜜芽试看| 人妻一二三区| 91精品伊人久久久大香线蕉91| 思思热er精品视频| 99欧美| 超AV色女| 超碰在97| 成人三级片一区二区三区视频| 大香蕉综合网| 欧美色视频在线| 久久久精品成人国产| 国产呦精品一区二区三区下载 | 精品国产99999| 东北老熟女| 精人妻一区二区三区| 国产一国产一级毛片古装| 成人自拍三级在线观看| 99热9| 青青草视频久久久久| 97国产色图| 欧美丝袜中文字幕07在线| 亚洲天堂男人| 啪啪啪精品视频| 日韩免费性爱视频在线观看| 亚洲第一在线视频| 啊啊啊好湿久久| 成人一级二级| WWW.操逼.COM| 婷婷丁香成人| 二对二中文字幕。| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 99re在线视频这里只有精品| 欧美97| 天堂8在线新版官网| 99热综合| 色九九综合AV| 日韩在线地址一| 色色色综合网| 艳尻美人妻| 蜜臀久久99精品久久久久久婷婷 | 成人小电影网站tex| 高清孕妇孕交| 黄色高清无码无码破解免费暗网| 亚洲少妇在线影音| 91av天美性媒精品视频| 2021国产成人精品久久| 东北女人的毛片| 免费人成在线观看网站品爱网| 欧美欲色| 亚洲 欧美 手机在线观看| 求求你操操我| 欧美日产国产在线成人第一区| 97久久精品亚洲中六字幕| 五十路六十路七十路熟婆| 亚洲熟女乱综合一区二区三区| 亚洲国产麻豆一区二区三区| 亚州熟女乱伦| 91热色| 亚洲欲色9532548967一区| 免费αV在线视频| 日韩少妇无吗| 蜜臀久久一区二区| 69视频入口| 亚洲欧美综合网站| 亚洲不卡不卡中文字幕不卡| 三级网色| 性饥渴少妇av无码毛片| 伊人国产AV| 青青草色情网站视频| 日本色色的视频| 国产精品一区av在线| 亚洲图片 欧美电影| 亚洲情色图片区| 97五月天| 9久精品| 三级特黄60分钟播放| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 日本欧美中文字幕| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 欧美性性性| 粉嫩国产精品久久久| www.zbzhongsen.com| 无码最新| 一线黄色免费性爱片| 操逼网站网站| 国产精品精品系列在线观看| 婷婷爽人人婷婷爽视频| 国产中文字幕在线观看| 国产91专区| 免费亚洲国产精品久久一区| 风月影院男女十八禁| 狠狠色一区二区中文字幕| 嫩草 人人网精品| 另类专区加勒比| 四虎免费视频| 久久99九九九九6666免费观看软件| 亚洲狠狠入| 91网站18禁| av网站在线看| WWW啪啪的com| 激情看片网站| 又大又白奶子| 综合网久久| 97资源制服丝袜| 日本少妇va7777| 1区2区3区中文字幕日韩| 色妇91| 久九九九九九九九热| 青青草好吊色| 91在线超高颜值国产| 人、人、摸,人、人、草| 欧美aa一级片| 久久五月天婷婷| 小草精彩毛片| 是还免费视频1727我| 亚洲 欧美 日韩另类 麻豆| 欧美牲| 欧美1区二区三区公司| 亚州色阁| 亚洲阿v天堂在线| 青青免费在线视频一区| JIZZJIZZ国产精品喷水| 欧美久久草熟女| 久久九九精品一区二区| www.久久制服糖| 激情四射婷婷四五月天| 欧洲精品久久| 黄页av| 中文字幕在线观| 久久一区二区三区入口| 最新亚洲风情电影| 成人情色综合网| yaouchengrenav| 一本道综合色图| 抽插一区二区视频| 国产精品久久久无码AV网站| 蜜臀99999| 日韩免费福利在线观看| 99久久无色码| 麻豆久久精品亚洲精品88| 久热九九| 超碰午夜| AV污污污污| 欧美在线 亚洲| 草草影院最新网址| 欧美 亚洲 综合 制服 另类| 国产精品9999| 99久久久| 中文字幕丰满人妻日本| 嗯嗯啊啊亚欧精品| 操迟操逼在巾线Fre看| 久草男人天堂| 激情接吻视频久久久久久| 美女久久久久久久久久久| 一区二区三区精品黑丝白丝酒店对鸡 | 草莓精品视频在线免费观看| 亚洲男人天堂2016| 国产午夜无码片在线观看影视| 97超级色碰碰| 亚洲天堂另类美腿| 一区二区三区黄片免费观看| 国产一区二区久久| 五月色综合| 日韩黄片影院| 精品人妻伦一区二区三区久久| 狼人久草| 操逼视频免费日韩无码| 亚洲无 码A片在线观看麻豆| 中文伊人大香蕉视频| 操日韩第| 欧美少妇色图| 大香蕉手机在线| 亚洲 91 在线| 亚州操逼网| 加勒比综合网| 91国产丝袜美女| 欧美性爱97超碰| 插欧洲美女欧美精品| 亚洲国产中文字幕| 色五月天AV| 国产又色又爽又舒服的三级视频| 男女猛烈无遮掩视频免费软件| 超碰97人人乐| 久久99操天天日| 黄色性爱网网| 黄色区免费观看中文字幕| 东京热一区二区中文字幕| 99xav| 欧美图片色综合| 91亚洲不卡一区| 五月婷婷大香蕉| 久操黄色视频| 九九无码视频| 中文字幕成人| 亚洲av综合色区无码一| 国产精品ⅴ无码大片在线看.| 精品午夜福利| 人人妻人人爱人人玩| 亚洲91射| 日日夜夜骑| 色香综合| 久久久久久人体| 亚洲欧美激情小说| 亚洲女毛多水多21P| 黑人精品成人一区二区三区| 极品欧美一区二区三区| 久久精品久久九九精品| 强奸乱伦免费网站| 熟女精品va中文字幕| 久久无码一区二区二三区性色| 91插B网站| 久九九九九九九九热| 久久久久国产精品久久久| 2017天天透天天通天天擦| 国产精品午夜精品| 丝袜色综合| 97干97色| 天天色综亚洲91污| 男人的天堂不卡一区二区| 欧美午夜精品久久久久久超碰| 久久久久久久久久久久黄色| 国产自啪精品视频网站黑丝| 亚洲高清欧美总合| 亚洲无码国产探花在线观看| 五十路六十路七十路熟婆| 国产综合永久精品日韩鬼片| 一区二区三区四区五区高清无码永久视频 | 爆乳免费黄网站| 精品少妇人妻| 日韩人妻一区二区| 日韩午夜啪啪视频| 伊人青青草久久| 少妇精品| 特级丰满少妇一级AAAA爱毛片| www网站黄| 激情小说五月天| 爱啪精品一区| 国产极品粉嫩馒头一线天av| 亚洲精品男人的天堂| 超碰免费欧美7| 天天操熟妇| 波多野结衣被操50分钟免费视频| 99综合视频一体| 欧洲一区二区三区四区在线观看| 岛国福利在线精品播放| 日韩有码一区三区| 久久久日本电影| 十八禁视频网站| 午夜精品久久久久| 啪啪啪东京| 欧美性,色九九| 久久久亚洲精品中文字幕人妻| 丰满岳乱妇一区二区三区| 国产精品肉丝自拍| 男女啪啪啪18禁网站| 亚洲日韩一区电影| 91久久青青草原精品| 天天综合网国产| 亚洲啪AⅤ永久无码| 亚洲欧洲色情高清| 日本不卡高清视频| 日本免费二区三区| 丝袜狠狠草尤物人妻av91| 黄人人操人人操| 大香蕉AV在线| 伊人成人情色综合| 屁股久久久久久| 久久久久久久久久久久黄色| 天天日天天干天天色| 啊啊啊不要好爽日韩无码一区| 国产成人无码a| 易易A毛视频| 嗯阿好爽好紧| 午夜免费福利视频一区| 国产一二三在线视频五十路| 久久99999| www.人人cao| 四虎国产精品永久在线囯在线 | 超碰九7| 久久精品一区一起草| 色综合91| 97干日韩| 色色婷| 国产三区免费在线观看| 黄骗免费网站| 97中文字幕九区| 天天日熟妇| 免费看一级a性色生活片久久无| 国产1024在线播放| 欧美日韩亚洲天堂| 四虎影视 亚洲无码| 天美传媒av 在线| 一级久久久久久久久久久| 色婷婷激一区二区三区| 人人做天天爱| 九色精品视频导航1| 精品亚洲| 青娱乐妇女性生活| 欧成人精品一区二区三区| 97超碰免费生活| 国产乱码久久久| 日本幼女18+| 国产精品福利视频| 欧美性xxxxx狂欢| 欧美性爽xyxOOOO| 日韩三级伊人| 欧美日本成人一区二区| 国产福利合集| 欧美少妇色图| 欧美中文字幕日韩在线| 免费少妇一区二区| 国产强奸乱伦第1页| 在线有码中文字幕| 精品人妻中文字幕4399| 久久东京伊人一本到鬼色| 国产精品亚洲高清在线| 国产家庭乱伦网址| 国产一区二区啪啪视频| 色婷婷导航| 久久精品色欧美aⅴ一区二区| 黄片不用下载在线观看| 猛交交| 欧美无圣光在线| 亚洲日韩狠狠撸视频| 91 丝袜在线播放| 欧美日韩性爱电影在线| 综合操逼| 日韩在线视频1234| 亚洲区限制级 99| 天天干人人看综合| 操逼逼无码| 日日夜夜精品视频| 久久首页| 亚洲免费精品一区| 中日韩久久久免费看| 99av| 国产吞精a级片激情电影| 99在线精品观看99| 欧美国产有色电影| 欧州一区二区三区四区| 五月天大香蕉| 999九九九九国产动| 被男人添B超爽视频| 一区二区久久天天干狠狠| www.91视频网| 精品伊人久久久大香线蕉小说| 日韩性色b| 啊啊啊啊免费视频| 操逼1区| 夜夜国产一区| 噜噜噜在线视频| 嗯嗯啊啊用力视频免费| 97超碰欧美中文字幕| 中字乱伦AV| 乱操9999| 精品性爱一区二区| 久久中久文96| 丁香九月激情啪| AV在线播放网址| 精品国产人成在线| av一区二区三区四区五区久草臀| 中国AAAAAA黄色片| 国产人伦精品一区二区三区 | 中文字幕国产| 婷婷久月| 无码一区免费在线不卡| 中文字幕 一区二区 亚洲无码| 亚洲欧美日韩不卡人妻| 亚洲91av| 亚洲精品毛片在线观看| 国产欧美成人精品| 99热在线播放| 中文无线日韩一区| 强奸乱伦大香蕉网| 国产91精品久久久久久久网曝门| 少妇一区二区三区高速| 国产精彩女在线观看视频| 亚洲日韩一区电影| 香蕉国产精品麻豆亚洲欧美日韩| 丰满搜索结果 -第18页- 久久高清无码 | 操死我干死我| 人妻aa| 欧美日韩免费性爱| 97在线/亚洲| 欧美韩国你懂得在线 | 久久久com| 日本一级特级毛片视频| 久久偷拍人| 91综合色噜噜| 熟女久久| 亚洲第一页色| 激情网色| 国产精品国产亚洲区艳妇糸列| 91激情国产| 久久AV色| 神马久久中文字幕| 粉嫩不卡一区二区性爱| 无码人妻一区二区三区色欲aⅴ | 久久精品无码熟妇一区二区三区视频导航| 密臀AV在线| 蜜臀av中字字幕网站| 夜夜夜久久| 精品精品精品| 国产精品成人无码av| 少妇人妻好深太紧了vr91| 亚洲在线| 国产精品熟女一区二区三区| 亚洲熟女少妇免费视频| 欧美视频一区二区三区| 日韩精品一区,二区 九九...老司机| 亚洲AV永久无码一区仙野| 日本加勒比无码专区| 操曰本熟女| 裸体美女国产免费久久久网站| 爱做久久久久久| 久久性爱精品一区| 收看日本人日bb| 成人无码在线超碰网| 两女互慰AV高潮喷水在线观看| 精品九九| 欧美一区二区三区四区综合| a片偷拍视频| 亚洲AV成人精品网站在AV| 天天看人人操屄犊摸阴| 夜草欧美| 97AV在线观看| 国产高清午夜成人在线观看| 亚洲成人免费中文字幕| 亚洲 自拍偷拍 欧美| 欧美 亚洲 偷拍自拍| 日韩三级久久久| 舔舔啊| 99久久久久久久久| 丁香五月自拍| 国产男女无套97| 久久精品噜噜噜成人看免欧美大片| 97超碰超欧美。| 久久精品国产久精国产| 亚洲一二三四区在线免费看视频| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 亚洲欧美天堂| 丰满的三级少妇欧美久久久| 久久99草| 欧美日韩*字幕一区| 亚洲精品一二区| WWW4虎| 欧美人妻制服| 五月天偷拍| 欧洲大香蕉| 亚洲无无码αⅴ每日更新| 五月色网| 嗯~啊~快点 死我视频免费看网站| 97在线视频观看| 92人人操人人| 97射欧美| 操逼逼中文字幕| 人人爽夜夜操| 91五十路| 天天综合网一91网| 欧亚日韩中文在线| 大香蕉啪啪啪| 男人的天堂久久| 日韩免费看黄片| 天天天堂影视日韩亚洲91| 亚欧成人综合影院| 99蜜桃臀久久久欧美精品网站| 欧美特大AA级黄片| 欧美韩国你懂得在线| 岛国在线一区二区三区| 欧美黑人168页欧美黑人167| 香蕉综合网| 欧州91高潮| 97超碰色屌| 日本性交操一区二区不卡系列| 天天干天天日天天射黄色片| 第四色奇米影视777| 941超碰| 色色色欧美| 久久中文字幕一区不卡| 亚洲 综合 第一页| 人人摸人人叼| 精品欧美乱码久| 嗯嗯啊啊视频在线看| 欧美色老汉| 久久这里都是精品| 欧美色性爱| 亚洲精品黄码久久久久| 精品无码一区二区| 日本熟妇人妻中出视频| 男人天堂网站| 夜夜精品视频一区二区| 久久一二三四五六七八九区区| 亚洲综合五月天| 欧美另类综合久久| 国产精品农村妇女| 青娱乐手机日韩在线视频| 91美女中出| 精品少妇一区二区三区在线视频| 欧美高清无码免费视频高清版| 午夜操一视频一区| 中文无线日韩一区| 国产欧美一区二区| 男人的天堂啪啪啪啪啪蜜桃不卡| 欧美极品性爱天天射| 7777奇米影视久久| 欧美色图色综合| 99精品九九九九九九| 精品美女在线视频| 亚洲少妇色| 韩日精品四区| 人妻乱仑一区二区三区| 日本免费人成视频播放120秒| 狠狠超| 久久老熟女| 丰满人妻一区二区三区四区| 免费亚洲国产精品久久一区| 超碰天天操你比| 91亚洲欧美色图| 黄色不卡视频| 天天透伊人| 色女女女导航| 97 国产一区| 久插不卡| 亚洲精品黑丝| 久久9精品网站| 日韩大香蕉AV影片| 久久黄人人爽视频| 嗯嗯啊啊啊好爽| 最新制服中文第一页| 欧美色999| 大香蕉欧美| 久久毛卡| 久久超碰久| 亚洲永久永久永久永久一级一级一级精品 | 大香蕉亚洲中文| 亚洲欧美一区二区三区在钱蜜桃| 成人五月香网在线| 2019AV天堂| 欧美亚洲清纯| 麻豆一区二区AV天美| 伊人九九九| 国产一级内射无挡观看| 黄aaaaaaaaaaaaaaaaaa色网站| 久久婷婷五月综合| 伊人操操| 国产999精品久久久| gogogo免费高清看中国国语 | 人妻一二三区| 色情成人五月天| 992这里有精品| 久久久久久亚洲精品中文字幕人妻| 粉嫩AV输入| 成人毛片免费| 日韩性爱视频免费在线| 国产在线76页| 尤物视频新赏网鲜网色诱网| 国产人妖的免费的视频| 狠狠狠狠狠狠| 人妻素股| 最新的亚洲无吗| 99综合自拍| 九九九九精| 婷婷五月天影院| 91精品国| 午夜福利精品| 天天干天天日天天射黄色片| 999综合网| 天天看综合网| 性欧美999| 久久99久久99精品免视看婷婷| 好舒服视频| 9久久精品| 亚洲有薄码区日本系列中文字幕| 国产9l 大屁股| 亚洲天堂久久| 亚洲欧美日韩偷拍色图| 影音先锋视频在线| 久久是精品| 久久久婷| 丰满人妻区一区二区三| 色女99一级片在线观看| 9久久久久久| 精品久久久久瑟瑟| 一级黄色视频网| 一级黄碟在线看| aaa一级黄片| 黄骗免费网站| 青青草日逼视频| 91高清无码下载| 青草地一本线一区二区三区| 97中文超碰| 涩综合导航| 东京热99999| 人妻久热在线| 亚洲乱码国产乱码精网站| 欧美熟妇精品黑人巨大91| 欧美性色综合网| 国产农村一一级特黄毛片| 熟妇女伦乱视频| 成人一区二区三区四区| 淫淫总合网| 一级久久久久久久久久久| 99re视频这里只有精品| 欧美综合 站| 亚洲色图欧美色图日韩色图| 国产精品福利视频播放| 麻豆性爱视频在线播放| 亚洲 日韩 欧美 国产综合体| 亚洲欧美日韩制服另类| 精品少妇一区二区三区| 中文字幕老熟妇黄色视频| 亚洲五码一区二区三区| 91人精品妻入口| 97综合在线| 熟妇女伦乱视频| 色色九区| 久久精品国产亚洲粉嫩| 曰本特级特黄特色黄色A级网站高清在线免费看 | 久久99精品九九久久久婷婷| 国产精品经典一卡久久久| 91亚洲黑人| 国产农村一一级特黄毛片| 欧美日韩性爱操大逼| 秋霞曰韩R级| 国产精品成人无码a v毛片| 99re6在线视频播放免费精品| 91精品国产乱码| 久久精品99久久久久久| 天天干夜夜操一区二区| 欧美亚洲色的图| 老司机午夜福利视频一区二区| 黄呦呦在线| 操老熟女AV| 999久久久久久久久| 91天堂网| 牛牛操视频逼| xxxx网站亚洲精品| 亚洲综合色婷婷| 国产视频三区四区| 亚洲色图 欧美热图 清纯唯美 另类自拍| 久久a久久| 超碰视97中文|