欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

串口亂碼排查指南:時鐘偏差、GPIO、中斷、DMA與地線環(huán)路

串口亂碼排查指南:時鐘偏差、GPIO、中斷、DMA與地線環(huán)路 1. 串口亂碼這件事為什么總讓人抓狂搞嵌入式的朋友大概都有過這種體驗代碼邏輯翻來覆去檢查了十幾遍串口助手那邊就是一堆看不懂的字符有時候是規(guī)律的“燙燙燙”有時候是零星的亂碼夾雜著幾個正常字節(jié)還有時候干脆一個字節(jié)都收不到。你換了一根USB轉(zhuǎn)串口線換了一個串口助手甚至換了一塊板子問題依舊。更讓人崩潰的是同樣的代碼昨天還好好的今天上電就亂碼了。串口通信看起來簡單——兩根線一個波特率發(fā)出去收回來就完事了。但恰恰是這種“看起來簡單”的東西一旦出問題排查起來往往比復(fù)雜的網(wǎng)絡(luò)協(xié)議還費(fèi)勁。因為串口通信的可靠性依賴于太多底層細(xì)節(jié)時鐘樹的配置、GPIO工作模式的選擇、中斷優(yōu)先級的安排、DMA通道的分配、地線的質(zhì)量、甚至周圍有沒有大功率設(shè)備在干擾。這篇文章不打算給你講串口通信的基礎(chǔ)教程那種內(nèi)容網(wǎng)上太多了。我想做的是把“串口亂碼”這個現(xiàn)象當(dāng)成一個系統(tǒng)性問題來拆解從五個最常見的根因入手逐一分析背后的原理、排查方法和解決思路。這五個原因分別是時鐘偏差、GPIO模式配置錯誤、中斷處理不當(dāng)、DMA與緩沖區(qū)問題、地線環(huán)路與硬件干擾。每一個我都會結(jié)合實際案例和可操作的排查步驟來講盡量讓你看完之后能直接上手定位問題。不管你是剛接觸STM32、GD32、ESP32、CH32V這類MCU的新手還是已經(jīng)在做FPGA串口、Linux串口、PLC串口通信的老手這篇文章里的排查思路都是通用的。串口亂碼的本質(zhì)無非是“發(fā)送方和接收方對信號的理解不一致”而我們要做的就是找到這個“不一致”到底出在哪里。2. 五個核心原因的整體排查思路2.1 為什么先看時鐘偏差串口通信是異步通信沒有單獨的時鐘線。發(fā)送方和接收方各自用自己的時鐘來約定波特率雙方靠起始位來同步。這就意味著如果發(fā)送方的實際波特率和接收方預(yù)期的波特率偏差超過一定范圍采樣就會出錯數(shù)據(jù)就會亂。這個容忍范圍是多少呢對于標(biāo)準(zhǔn)的UART協(xié)議接收方通常在每個位的中間位置采樣。如果波特率偏差導(dǎo)致采樣點偏移超過半個位周期就會采到錯誤的位。理論上總偏差發(fā)送方偏差接收方偏差不能超過±5%實際工程中建議控制在±2%以內(nèi)才比較穩(wěn)妥。時鐘偏差的來源主要有幾個一是系統(tǒng)時鐘配置錯誤比如外部晶振頻率和代碼里寫的不一致二是PLL倍頻參數(shù)算錯了三是波特率分頻系數(shù)計算時用了整數(shù)除法導(dǎo)致截斷誤差四是時鐘源本身精度不夠比如用內(nèi)部RC振蕩器做時鐘源。2.2 GPIO模式為什么會影響串口很多人覺得GPIO配置就是選個復(fù)用功能就完事了但實際上GPIO的工作模式對串口通信質(zhì)量影響很大。推挽輸出和開漏輸出的驅(qū)動能力不同上拉和下拉會影響空閑電平復(fù)用功能的映射關(guān)系如果搞錯了TX和RX可能根本就沒接到USART外設(shè)上。特別是在STM32、GD32這類MCU上GPIO的8種工作模式輸入浮空、輸入上拉、輸入下拉、模擬輸入、開漏輸出、推挽輸出、推挽復(fù)用、開漏復(fù)用如果選錯了輕則通信不穩(wěn)定重則完全不通。而且不同系列的MCU復(fù)用功能的配置方式還不一樣有的用AFR寄存器有的用AFIO有的用設(shè)備樹。2.3 中斷處理不當(dāng)會帶來什么后果串口通信中中斷是用來處理接收和發(fā)送事件的。如果中斷優(yōu)先級設(shè)置不當(dāng)或者中斷服務(wù)函數(shù)里做了太多耗時操作就會導(dǎo)致數(shù)據(jù)丟失或接收緩沖區(qū)溢出。更隱蔽的問題是中斷嵌套和中斷上下文的問題——在高優(yōu)先級中斷里調(diào)用了低優(yōu)先級的串口發(fā)送函數(shù)或者在中斷里用了阻塞式的延時都會導(dǎo)致串口行為異常。還有一種情況是中斷進(jìn)不去或者進(jìn)去了但標(biāo)志位沒清除干凈導(dǎo)致反復(fù)進(jìn)中斷或者再也進(jìn)不去。這類問題在CH32V、GD32等國產(chǎn)MCU上尤其常見因為中斷向量表的配置和GCC編譯器的屬性聲明方式跟Keil不太一樣。2.4 DMA和緩沖區(qū)的關(guān)系用DMA做串口收發(fā)是很常見的優(yōu)化手段但DMA配置不當(dāng)也會導(dǎo)致亂碼。比如DMA的傳輸寬度設(shè)置錯了字節(jié)vs半字vs字或者DMA的源地址和目標(biāo)地址搞反了或者DMA傳輸完成中斷和串口空閑中斷的配合有問題。緩沖區(qū)的問題更隱蔽發(fā)送緩沖區(qū)被覆蓋、接收緩沖區(qū)溢出、緩沖區(qū)大小和DMA傳輸長度不匹配這些都會導(dǎo)致數(shù)據(jù)錯亂。而且這類問題往往不是每次都出現(xiàn)可能跑幾個小時才復(fù)現(xiàn)一次排查起來非常頭疼。2.5 地線環(huán)路為什么是隱形殺手前面四個原因都是軟件和配置層面的地線環(huán)路是純硬件問題。當(dāng)兩個設(shè)備通過串口連接時如果它們各自接了不同的電源地或者地線走線形成了環(huán)路就會在地線上產(chǎn)生電流進(jìn)而導(dǎo)致信號電平的參考點發(fā)生偏移。這種偏移可能表現(xiàn)為偶發(fā)的亂碼也可能表現(xiàn)為通信距離縮短甚至可能損壞收發(fā)器芯片。地線環(huán)路的問題在實驗室里往往不容易復(fù)現(xiàn)因為實驗室的設(shè)備通常共地良好。但到了現(xiàn)場特別是工業(yè)環(huán)境或者長距離通信場景地線環(huán)路就成了高頻問題。3. 時鐘偏差最容易被忽略的根因3.1 波特率是怎么算出來的要理解時鐘偏差首先得搞清楚波特率是怎么從系統(tǒng)時鐘算出來的。以STM32為例USART的波特率計算公式是BaudRate fCK / (16 * USARTDIV)其中fCK是USART外設(shè)的時鐘頻率USARTDIV是一個分頻系數(shù)由整數(shù)部分和小數(shù)部分組成。比如系統(tǒng)時鐘72MHz要得到115200的波特率USARTDIV 72000000 / (16 * 115200) 39.0625整數(shù)部分是39小數(shù)部分是0.0625。小數(shù)部分再乘以16得到1所以BRR寄存器的值就是0x271。你可以自己算一下72000000 / (16 * 39.0625) 115200剛好。但問題在于很多MCU的波特率寄存器小數(shù)部分只有4位也就是精度只有1/16。如果你算出來的小數(shù)部分不能精確表示就會有截斷誤差。比如某個時鐘頻率下算出來的USARTDIV是39.07小數(shù)部分0.07乘以16等于1.12只能取1實際分頻就是39.0625誤差很小。但如果算出來是39.5小數(shù)部分0.5乘以16等于8剛好能表示沒問題。最怕的是算出來小數(shù)部分接近0.5但又不是0.5的情況誤差就會比較大。3.2 實際案例GD32F470的時鐘配置陷阱我之前用GD32F470VET6做項目的時候遇到過一個典型的時鐘偏差問題。代碼是從GD32F407的工程移植過來的系統(tǒng)時鐘配置看起來一樣都是200MHz。但串口就是亂碼用示波器量了一下TX引腳發(fā)現(xiàn)實際波特率大概是108000左右跟設(shè)定的115200差了6%以上。排查過程是這樣的先確認(rèn)了外部晶振是25MHz然后檢查PLL配置。GD32F470的PLL配置和F407有些差異特別是PLL分頻系數(shù)和倍頻系數(shù)的組合。F407的工程里用的是25MHz晶振PLLM25PLLN400PLLP2得到200MHz。但F470的PLL架構(gòu)略有不同同樣的參數(shù)配置出來的時鐘不是200MHz而是192MHz左右。用192MHz去算115200的波特率USARTDIV 192000000 / (16 * 115200) 104.1667整數(shù)部分104小數(shù)部分0.1667乘以16等于2.67取2實際分頻104.125實際波特率 192000000 / (16 * 104.125) 115240左右誤差0.03%看起來沒問題啊。但問題在于GD32F470的USART時鐘源不一定直接來自系統(tǒng)時鐘。如果USART掛在APB1上而APB1的分頻系數(shù)設(shè)置不對實際時鐘可能又不一樣。我最后查出來是APB1的分頻系數(shù)設(shè)成了4而不是2導(dǎo)致USART時鐘只有48MHz算出來的波特率偏差就大了。排查時鐘偏差的第一步用示波器或者邏輯分析儀量一下TX引腳的實際波特率。如果沒有儀器可以發(fā)送已知的固定字節(jié)比如0x55用示波器看方波的周期周期倒數(shù)就是實際波特率。3.3 內(nèi)部RC振蕩器的坑有些低成本方案會用MCU內(nèi)部的RC振蕩器作為時鐘源省掉外部晶振。內(nèi)部RC的精度通常在±1%到±5%之間而且隨溫度變化很大。如果你用內(nèi)部RC做時鐘源波特率偏差可能一開始就在臨界點上溫度一變就亂碼了。我見過一個案例某產(chǎn)品用STM32F030的內(nèi)部HSI8MHz做時鐘源波特率設(shè)的9600。常溫下通信正常到了冬天戶外溫度零下十幾度就開始間歇性亂碼。后來換成外部晶振問題就消失了。所以如果你的項目對串口通信可靠性有要求建議還是用外部晶振。如果實在要用內(nèi)部RC至少要做溫度補(bǔ)償或者把波特率降下來波特率越低對時鐘偏差的容忍度越高。3.4 波特率偏差的容忍度計算前面提到總偏差不能超過±5%但這個數(shù)字是怎么來的我們來推導(dǎo)一下。UART接收方在每個位的中間采樣。假設(shè)發(fā)送方的波特率是T接收方的波特率是R偏差為誤差 (T - R) / R接收方從起始位的下降沿開始計數(shù)到第n個位的采樣點累計的時間誤差是累計誤差 n * 位周期 * 誤差對于8位數(shù)據(jù)1位停止位最壞情況下第9個位停止位的采樣點偏移最大。如果累計誤差超過半個位周期就會采錯9 * 位周期 * 誤差 0.5 * 位周期 誤差 0.5 / 9 5.56%所以理論上±5%是極限但實際工程中要考慮噪聲、信號邊沿抖動等因素建議控制在±2%以內(nèi)。對于115200這種高波特率位周期只有8.68微秒對時鐘精度的要求就更高了。4. GPIO模式配置不只是選個復(fù)用功能4.1 GPIO的8種工作模式到底怎么選STM32和GD32系列MCU的GPIO有8種工作模式很多人配置串口的時候直接抄例程選個“推挽復(fù)用”就完事了。但實際上TX和RX的模式選擇是有講究的。TX引腳應(yīng)該配置為推挽復(fù)用輸出GPIO_Mode_AF_PP。推挽輸出的驅(qū)動能力強(qiáng)能提供足夠的電流驅(qū)動串口線。開漏輸出需要外部上拉電阻如果上拉電阻太大上升沿會變緩高速通信時可能導(dǎo)致位采樣錯誤。RX引腳應(yīng)該配置為浮空輸入GPIO_Mode_IN_FLOATING或者上拉輸入GPIO_Mode_IPU。浮空輸入適合外部已經(jīng)有上拉電阻的情況上拉輸入適合外部沒有上拉的情況。如果配成下拉輸入空閑電平會被拉低接收方會一直認(rèn)為收到了起始位導(dǎo)致亂碼。我見過一個案例有人把RX配成了下拉輸入結(jié)果串口助手一直收到0x00。因為空閑狀態(tài)下RX被拉低接收方認(rèn)為是起始位然后采樣8個位都是0最后停止位也是0就收到了0x00。這種情況用示波器看TX引腳是正常的但RX引腳一直被拉低。4.2 復(fù)用功能映射的坑不同系列的MCU串口引腳的復(fù)用功能映射方式不一樣。STM32F1系列用AFIO寄存器來重映射F4系列用AFR寄存器來選擇復(fù)用功能編號GD32F470跟F4類似但也有差異。以STM32F407為例USART1的TX可以映射到PA9或者PB6RX可以映射到PA10或者PB7。如果你在代碼里配置了PA9為復(fù)用功能但沒有設(shè)置AFR寄存器選擇AF7USART1那PA9可能就接到了別的外設(shè)上串口自然不通。GD32F470VET6的復(fù)用功能配置跟STM32F4類似但AF編號可能不同。比如USART0的TX在PA9上AF編號是AF7但有些GD32型號可能是AF8。這個一定要查數(shù)據(jù)手冊的復(fù)用功能映射表不能憑經(jīng)驗猜。4.3 GPIO速度設(shè)置的影響GPIO的輸出速度GPIO_Speed也是一個容易被忽略的參數(shù)。STM32的GPIO速度有2MHz、25MHz、50MHz、100MHz幾檔。速度越高功耗越大但邊沿越陡峭。對于115200的波特率位周期8.68微秒邊沿時間只要遠(yuǎn)小于位周期就行。2MHz的速度對應(yīng)邊沿時間大約幾百納秒完全夠用。但如果你把速度設(shè)得太低比如2MHz而波特率又很高比如1Mbps邊沿時間可能占到位的十分之一以上導(dǎo)致采樣點偏移。反過來速度設(shè)得太高雖然邊沿陡峭但EMI輻射也會增大可能干擾其他信號。我的經(jīng)驗是115200及以下的波特率GPIO速度設(shè)25MHz就夠了更高的波特率設(shè)50MHz或100MHz。沒必要一上來就設(shè)最高速度除非你的通信速率確實很高。4.4 設(shè)備樹中的GPIO配置在Linux系統(tǒng)上做串口通信GPIO的配置是通過設(shè)備樹Device Tree來描述的。比如全志V3S或者Jetson TK1這類平臺串口的引腳配置在設(shè)備樹的pinctrl節(jié)點里。一個典型的設(shè)備樹串口配置是這樣的uart0 { pinctrl-names default; pinctrl-0 uart0_pins_a; status okay; }; uart0_pins_a: uart00 { pins PB4, PB5; function uart0; };如果設(shè)備樹里的引腳配置和實際硬件不一致串口就不會工作。而且Linux下的串口設(shè)備節(jié)點/dev/ttyS0等需要正確的權(quán)限才能訪問否則會報“Permission denied”。在Ubuntu下查看串口設(shè)備可以用ls -l /dev/ttyS* ls -l /dev/ttyUSB* dmesg | grep tty如果串口被其他程序占用了可以用lsof查看lsof /dev/ttyUSB0Win7下查看串口被哪個程序占用可以用“資源監(jiān)視器”或者第三方工具如Process Explorer來查。5. 中斷處理優(yōu)先級、上下文與標(biāo)志位5.1 中斷優(yōu)先級配置的常見錯誤串口中斷的優(yōu)先級配置直接影響通信的實時性和可靠性。如果串口接收中斷的優(yōu)先級太低可能被其他高優(yōu)先級中斷打斷導(dǎo)致接收數(shù)據(jù)丟失。如果優(yōu)先級太高又可能影響其他關(guān)鍵任務(wù)的執(zhí)行。在STM32和GD32上中斷優(yōu)先級分為搶占優(yōu)先級和響應(yīng)優(yōu)先級。搶占優(yōu)先級決定能否嵌套響應(yīng)優(yōu)先級決定同搶占優(yōu)先級下的排隊順序。串口接收中斷一般建議設(shè)置為中等偏高的搶占優(yōu)先級確保能及時響應(yīng)但不要高到影響系統(tǒng)滴答定時器SysTick等關(guān)鍵中斷。我遇到過一個案例有人把串口接收中斷的搶占優(yōu)先級設(shè)成了最低同時系統(tǒng)里有一個高優(yōu)先級的定時器中斷每100微秒觸發(fā)一次每次執(zhí)行50微秒。結(jié)果串口接收中斷經(jīng)常被延遲導(dǎo)致接收緩沖區(qū)溢出數(shù)據(jù)丟失。5.2 中斷服務(wù)函數(shù)里的禁忌操作中斷服務(wù)函數(shù)ISR應(yīng)該盡可能短小精悍。以下操作在ISR里是禁忌阻塞式延時在ISR里調(diào)用delay_ms()之類的函數(shù)會導(dǎo)致其他中斷無法響應(yīng)。浮點運(yùn)算如果MCU沒有FPU浮點運(yùn)算會消耗大量時間即使有FPU也要注意上下文保存的問題。動態(tài)內(nèi)存分配malloc()和free()不是可重入的在ISR里調(diào)用可能導(dǎo)致堆損壞。打印調(diào)試信息在ISR里調(diào)用printf()通過串口輸出會導(dǎo)致遞歸調(diào)用或者死鎖。正確的做法是在ISR里只做最少的事情——讀取數(shù)據(jù)、清除標(biāo)志位、把數(shù)據(jù)放入緩沖區(qū)然后設(shè)置一個標(biāo)志位或者發(fā)送信號量讓主循環(huán)去處理后續(xù)邏輯。5.3 CH32V在GCC下的中斷函數(shù)定義CH32V系列是RISC-V內(nèi)核的MCU在GCC編譯器下定義中斷函數(shù)的方式和ARM核不太一樣。ARM核用__attribute__((interrupt))或者特定的中斷向量表而CH32V需要用__attribute__((interrupt(WCH-Interrupt-fast)))來聲明。一個典型的CH32V串口中斷函數(shù)定義void USART1_IRQHandler(void) __attribute__((interrupt(WCH-Interrupt-fast))); void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) { uint8_t data USART_ReceiveData(USART1); // 處理數(shù)據(jù) USART_ClearITPendingBit(USART1, USART_IT_RXNE); } }如果忘了加__attribute__((interrupt))編譯器不會生成正確的中斷返回指令導(dǎo)致中斷進(jìn)去之后出不來或者返回地址錯誤程序跑飛。5.4 中斷標(biāo)志位清除的時機(jī)中斷標(biāo)志位的清除時機(jī)很關(guān)鍵。以STM32的USART為例接收中斷標(biāo)志位RXNE在讀取數(shù)據(jù)寄存器DR時自動清除但有些標(biāo)志位需要手動清除比如溢出錯誤標(biāo)志ORE、幀錯誤標(biāo)志FE、噪聲標(biāo)志NE等。如果ORE標(biāo)志沒有及時清除會導(dǎo)致后續(xù)接收中斷無法觸發(fā)。我見過一個案例串口因為噪聲導(dǎo)致了一次ORE但代碼里沒有處理ORE結(jié)果串口再也收不到數(shù)據(jù)了。排查了半天才發(fā)現(xiàn)是ORE標(biāo)志沒清。正確的做法是在中斷服務(wù)函數(shù)里檢查所有可能的錯誤標(biāo)志并逐一清除void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) { uint8_t data USART_ReceiveData(USART1); // 處理數(shù)據(jù) } if(USART_GetITStatus(USART1, USART_IT_ORE) ! RESET) { USART_ClearITPendingBit(USART1, USART_IT_ORE); } if(USART_GetITStatus(USART1, USART_IT_FE) ! RESET) { USART_ClearITPendingBit(USART1, USART_IT_FE); } }5.5 中斷進(jìn)不去的原因排查中斷進(jìn)不去是另一個常見問題??赡艿脑虬ㄖ袛嗍鼓芪粵]有設(shè)置NVIC_EnableIRQ沒調(diào)用中斷向量表地址不對特別是用了Bootloader或者重映射的情況中斷優(yōu)先級分組設(shè)置錯誤中斷標(biāo)志位在使能中斷之前就已經(jīng)被清除了全局中斷沒有使能__enable_irq()沒調(diào)用排查的時候可以一步步來先確認(rèn)NVIC的中斷使能寄存器ISER對應(yīng)位是否置1再確認(rèn)中斷掛起寄存器ISPR是否有對應(yīng)的掛起位然后確認(rèn)中斷向量表里的地址是否正確。6. DMA與緩沖區(qū)效率提升背后的陷阱6.1 串口DMA的配置要點用DMA做串口收發(fā)可以大大減輕CPU負(fù)擔(dān)但配置不當(dāng)也會引入新的問題。以STM32為例串口TX的DMA配置需要注意DMA通道要選對不同串口對應(yīng)的DMA通道不一樣傳輸方向是內(nèi)存到外設(shè)Memory to Peripheral傳輸寬度要和數(shù)據(jù)寬度匹配串口是字節(jié)傳輸所以源和目標(biāo)都應(yīng)該是字節(jié)ByteDMA模式一般選單次模式Normal不是循環(huán)模式Circular傳輸完成中斷要正確配置一個典型的配置代碼DMA_InitTypeDef DMA_InitStructure; DMA_InitStructure.DMA_PeripheralBaseAddr (uint32_t)USART1-DR; DMA_InitStructure.DMA_MemoryBaseAddr (uint32_t)tx_buffer; DMA_InitStructure.DMA_DIR DMA_DIR_PeripheralDST; DMA_InitStructure.DMA_BufferSize tx_len; DMA_InitStructure.DMA_PeripheralInc DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize DMA_PeripheralDataSize_Byte; DMA_InitStructure.DMA_MemoryDataSize DMA_MemoryDataSize_Byte; DMA_InitStructure.DMA_Mode DMA_Mode_Normal; DMA_InitStructure.DMA_Priority DMA_Priority_Medium; DMA_Init(DMA1_Channel4, DMA_InitStructure);如果DMA_PeripheralDataSize和DMA_MemoryDataSize設(shè)成了HalfWord或者Word而串口是字節(jié)傳輸就會導(dǎo)致數(shù)據(jù)錯位。比如發(fā)送0x01 0x02 0x03 0x04DMA按半字傳輸可能會變成0x0201 0x0403接收方看到的就是亂碼。6.2 接收緩沖區(qū)的設(shè)計串口接收緩沖區(qū)的設(shè)計直接影響數(shù)據(jù)完整性。常見的方案有單緩沖區(qū)簡單但接收和處理不能同時進(jìn)行容易丟數(shù)據(jù)雙緩沖區(qū)Ping-Pong一個緩沖區(qū)接收另一個處理交替使用環(huán)形緩沖區(qū)適合不定長數(shù)據(jù)但實現(xiàn)稍復(fù)雜用DMA接收時通常配合串口空閑中斷IDLE來判斷一幀數(shù)據(jù)結(jié)束??臻e中斷的觸發(fā)條件是總線空閑一個字節(jié)的時間。在空閑中斷里讀取DMA的剩余傳輸數(shù)量計算出接收到的數(shù)據(jù)長度然后處理數(shù)據(jù)。這里有一個坑DMA的剩余傳輸數(shù)量寄存器NDTR在傳輸過程中是實時變化的讀取的時候要注意原子性。如果先讀NDTR再讀數(shù)據(jù)可能在讀NDTR之后、讀數(shù)據(jù)之前又收到了新數(shù)據(jù)導(dǎo)致長度計算錯誤。6.3 緩沖區(qū)溢出的排查緩沖區(qū)溢出是串口亂碼的常見原因之一。表現(xiàn)是接收到的數(shù)據(jù)前半部分正常后半部分亂碼或者數(shù)據(jù)整體偏移。排查方法在接收中斷或者DMA完成中斷里記錄每次接收的數(shù)據(jù)長度和緩沖區(qū)剩余空間。如果發(fā)現(xiàn)接收長度超過了緩沖區(qū)大小就說明溢出了。解決方法是增大緩沖區(qū)或者提高數(shù)據(jù)處理速度。如果數(shù)據(jù)處理本身很慢可以考慮用多級緩沖或者把數(shù)據(jù)先存到外部RAM里。6.4 串口DMA與中斷的配合串口DMA和中斷的配合需要仔細(xì)設(shè)計。以接收為例通常的流程是串口接收DMA配置為循環(huán)模式緩沖區(qū)大小設(shè)為N串口空閑中斷使能空閑中斷觸發(fā)時讀取DMA剩余傳輸數(shù)量計算接收長度處理數(shù)據(jù)重置DMA如果需要這里的關(guān)鍵是DMA模式的選擇。如果用循環(huán)模式DMA會一直循環(huán)填充緩沖區(qū)不會停止。如果用單次模式每次接收完需要重新配置DMA。循環(huán)模式適合連續(xù)數(shù)據(jù)流單次模式適合定長數(shù)據(jù)幀。7. 地線環(huán)路與硬件干擾看不見的殺手7.1 地線環(huán)路是怎么形成的地線環(huán)路是指兩個設(shè)備之間的地線形成了閉合回路。比如設(shè)備A通過串口線連接到設(shè)備B同時設(shè)備A和設(shè)備B又各自通過電源線接到了同一個插線板上。這樣串口線的地線和電源線的地線就形成了一個環(huán)路。當(dāng)?shù)鼐€上有電流流過時由于地線本身有電阻和電感會在不同位置產(chǎn)生電位差。這個電位差會疊加在串口信號上導(dǎo)致接收方看到的電平發(fā)生偏移。偏移小的時候表現(xiàn)為偶發(fā)亂碼偏移大的時候可能完全無法通信。7.2 地線環(huán)路的實際表現(xiàn)地線環(huán)路導(dǎo)致的串口問題有幾個典型特征通信距離越遠(yuǎn)問題越嚴(yán)重周圍有大功率設(shè)備如電機(jī)、變頻器工作時問題加劇用手觸摸設(shè)備外殼或者串口線時亂碼情況會變化換一根短一點的串口線問題可能減輕我遇到過一個工業(yè)現(xiàn)場的案例PLC通過RS485串口連接到一個遠(yuǎn)程的儀表距離大概50米。在實驗室里測試完全正常到了現(xiàn)場就頻繁亂碼。后來發(fā)現(xiàn)是PLC和儀表分別接了不同的電源地兩個地之間存在幾伏的電位差。加了一個隔離型RS485收發(fā)器之后問題就解決了。7.3 隔離方案的選擇解決地線環(huán)路最徹底的方法是使用隔離。常見的隔離方案有光耦隔離在TX和RX線上各加一個光耦實現(xiàn)電氣隔離。成本低但速度受限適合低速通信。磁耦隔離用變壓器或者電容隔離速度高但成本也高。隔離型收發(fā)器比如ADM2483、ADM2582等集成了隔離和收發(fā)功能使用方便。選擇隔離方案時需要考慮通信速率、成本、體積等因素。對于115200及以下的波特率光耦隔離就夠用了。對于更高的速率建議用磁耦或者隔離型收發(fā)器。7.4 硬件濾波與保護(hù)除了隔離還可以通過硬件濾波來抑制干擾。常見的措施包括在串口線上加共模電感抑制共模干擾在TX和RX線上加TVS管防止靜電和浪涌在收發(fā)器電源引腳加去耦電容一般用100nF和10uF并聯(lián)在RS485總線的A、B線上加偏置電阻確??臻e時電平穩(wěn)定這些措施雖然不能完全消除地線環(huán)路的影響但可以顯著提高通信的可靠性。8. 常見問題速查表與排查流程8.1 串口亂碼問題速查表現(xiàn)象可能原因排查方法解決方案全部亂碼無正常字節(jié)波特率不匹配示波器量TX引腳周期重新計算波特率分頻偶發(fā)亂碼大部分正常時鐘偏差臨界檢查時鐘源精度換外部晶振或降低波特率收到0x00或0xFFGPIO模式錯誤檢查RX引腳電平改為浮空或上拉輸入數(shù)據(jù)錯位字節(jié)順序亂DMA傳輸寬度錯誤檢查DMA數(shù)據(jù)寬度配置改為Byte傳輸接收一段時間后停止中斷標(biāo)志未清除檢查ORE/FE標(biāo)志在ISR中清除所有錯誤標(biāo)志通信距離短就正常地線環(huán)路測量兩地電位差加隔離或共模電感中斷進(jìn)不去NVIC配置錯誤檢查ISER/ISPR寄存器重新配置中斷優(yōu)先級發(fā)送正常接收亂碼RX引腳配置錯誤檢查RX復(fù)用功能映射查數(shù)據(jù)手冊確認(rèn)AF編號8.2 系統(tǒng)化排查流程遇到串口亂碼建議按以下順序排查確認(rèn)硬件連接TX接RXRX接TX地線接好。用萬用表量一下串口線的通斷。量TX引腳波形用示波器或者邏輯分析儀看TX引腳有沒有波形波特率對不對。檢查時鐘配置確認(rèn)系統(tǒng)時鐘、APB時鐘、USART時鐘的計算是否正確。檢查GPIO配置確認(rèn)TX和RX的復(fù)用功能映射、工作模式、速度設(shè)置。檢查中斷配置確認(rèn)中斷優(yōu)先級、中斷使能、標(biāo)志位清除。檢查DMA配置確認(rèn)DMA通道、傳輸方向、數(shù)據(jù)寬度、模式。檢查緩沖區(qū)確認(rèn)緩沖區(qū)大小、讀寫指針、溢出保護(hù)。檢查硬件環(huán)境確認(rèn)地線連接、隔離措施、濾波電路。這個順序是從簡單到復(fù)雜從硬件到軟件。大部分問題在前三步就能定位。8.3 實操心得與避坑技巧心得一先量波形再改代碼。很多人一遇到亂碼就開始改代碼改了半天發(fā)現(xiàn)是硬件問題。先用示波器量一下TX引腳的波形確認(rèn)波特率和數(shù)據(jù)內(nèi)容能省很多時間。心得二用已知數(shù)據(jù)測試。發(fā)送固定的0x55或0xAA這兩個字節(jié)的方波周期最容易測量。0x55是01010101方波周期等于位周期0xAA是10101010也是方波。用示波器量周期倒數(shù)就是波特率。心得三串口助手也有坑。有些串口助手在接收到錯誤數(shù)據(jù)時會自動丟棄或者顯示異常導(dǎo)致你看到的亂碼和實際接收到的數(shù)據(jù)不一致。建議用示波器或者邏輯分析儀直接抓取原始數(shù)據(jù)。心得四注意電平標(biāo)準(zhǔn)。TTL電平、RS232電平、RS485電平不能直接互連。TTL是0-3.3V或0-5VRS232是負(fù)邏輯-15V到15VRS485是差分信號。接錯了不僅亂碼還可能燒芯片。心得五地線一定要接。有些人只接TX和RX不接地線覺得能省一根線。但串口通信的參考電平是地線不接地線的話兩邊的電平參考點不一致必然亂碼。心得六長距離通信要加保護(hù)。超過1米的串口線建議加共模電感和TVS管。超過10米的建議用RS485或者加隔離。超過100米的必須用RS485加隔離加中繼。9. 從具體平臺看串口問題的差異性9.1 STM32與GD32的差異STM32和GD32雖然引腳兼容但在串口配置上有一些細(xì)微差異。GD32的USART時鐘源選擇比STM32更靈活但默認(rèn)配置可能不同。比如GD32F470的USART0默認(rèn)掛在APB2上而STM32F407的USART1也掛在APB2上但分頻系數(shù)可能不同。另外GD32的中斷向量表偏移和STM32可能不一樣特別是在用Bootloader的時候。如果中斷向量表沒有正確重映射中斷就進(jìn)不去。9.2 ESP32的串口配置ESP32的串口配置和STM32差異較大。ESP32有三個UART默認(rèn)的UART0用于下載和調(diào)試UART1和UART2可以自由使用。在Arduino框架下用Serial.begin(115200)就可以初始化串口但要注意引腳映射。ESP32的GPIO矩陣允許幾乎任意引腳映射到UART但有些引腳在啟動時有特殊功能不能隨便用。比如GPIO6到GPIO11通常連接了SPI Flash不能用作串口。在PlatformIO下開發(fā)ESP32S3串口輸出的配置和ESP32類似但要注意USB串口和硬件串口的區(qū)別。ESP32S3有內(nèi)置的USB-Serial-JTAG可以直接通過USB輸出串口數(shù)據(jù)不需要額外的USB轉(zhuǎn)串口芯片。9.3 FPGA的串口實現(xiàn)FPGA實現(xiàn)串口發(fā)送ASCII字符串需要自己寫UART發(fā)送模塊。核心是一個波特率發(fā)生器和一個移位寄存器。波特率發(fā)生器的分頻系數(shù)計算分頻系數(shù) 系統(tǒng)時鐘頻率 / 波特率比如系統(tǒng)時鐘50MHz波特率115200分頻系數(shù) 50000000 / 115200 434.027取434實際波特率 50000000 / 434 115207誤差0.006%完全夠用。Verilog實現(xiàn)串口發(fā)送整數(shù)和浮點數(shù)需要先把整數(shù)和浮點數(shù)轉(zhuǎn)換成ASCII字符串然后逐字節(jié)發(fā)送。整數(shù)轉(zhuǎn)換可以用除法和取模浮點數(shù)轉(zhuǎn)換比較復(fù)雜可以用sprintf或者自己實現(xiàn)。9.4 Linux下的串口配置Linux下配置串口用termios結(jié)構(gòu)體設(shè)置波特率、數(shù)據(jù)位、停止位、校驗位等。一個典型的配置struct termios options; tcgetattr(fd, options); cfsetispeed(options, B115200); cfsetospeed(options, B115200); options.c_cflag | (CLOCAL | CREAD); options.c_cflag ~PARENB; options.c_cflag ~CSTOPB; options.c_cflag ~CSIZE; options.c_cflag | CS8; tcsetattr(fd, TCSANOW, options);Linux下串口接收數(shù)據(jù)丟失的常見原因是緩沖區(qū)設(shè)置太小或者讀取速度跟不上??梢杂胹elect()或者poll()來監(jiān)聽串口事件及時讀取數(shù)據(jù)。10. 幾個真實案例的完整復(fù)盤10.1 案例一GD32F470VET6串口亂碼問題描述GD32F470VET6開發(fā)板串口配置為115200-8-N-1發(fā)送字符串“Hello”串口助手收到亂碼。排查過程用示波器量TX引腳發(fā)現(xiàn)波特率約為9600而不是115200。檢查代碼發(fā)現(xiàn)系統(tǒng)時鐘配置為200MHz但USART時鐘源選擇的是APB1而APB1的分頻系數(shù)設(shè)成了4導(dǎo)致USART時鐘只有50MHz。重新計算波特率分頻50000000 / (16 * 115200) 27.126整數(shù)部分27小數(shù)部分0.126*162實際分頻27.125實際波特率 50000000 / (16 * 27.125) 115207誤差0.006%。修改APB1分頻系數(shù)為2USART時鐘變?yōu)?00MHz重新計算分頻100000000 / (16 * 115200) 54.253整數(shù)部分54小數(shù)部分0.253*164實際分頻54.25實際波特率 100000000 / (16 * 54.25) 115207誤差0.006%。重新編譯下載串口輸出正常。經(jīng)驗總結(jié)GD32F470的時鐘樹比F407復(fù)雜APB1和APB2的分頻系數(shù)會影響USART時鐘。配置串口之前一定要確認(rèn)USART的時鐘源和實際頻率。10.2 案例二ESP32外部中斷導(dǎo)致串口亂碼問題描述ESP32開發(fā)板用外部中斷檢測按鍵同時用串口輸出調(diào)試信息。按鍵按下時串口輸出亂碼。排查過程檢查串口配置波特率115200正常。檢查中斷服務(wù)函數(shù)發(fā)現(xiàn)按鍵中斷的優(yōu)先級設(shè)成了最高而且ISR里有Serial.println()調(diào)用。Serial.println()在ISR里調(diào)用會導(dǎo)致串口發(fā)送和中斷處理沖突因為串口發(fā)送本身也可能觸發(fā)中斷。修改方案在ISR里只設(shè)置一個標(biāo)志位在主循環(huán)里檢測標(biāo)志位并輸出調(diào)試信息。重新測試按鍵按下時串口輸出正常。經(jīng)驗總結(jié)ISR里不要調(diào)用串口發(fā)送函數(shù)尤其是高優(yōu)先級中斷。串口發(fā)送最好放在主循環(huán)或者低優(yōu)先級任務(wù)里。10.3 案例三RS485長距離通信亂碼問題描述PLC通過RS485連接遠(yuǎn)程儀表距離50米通信頻繁亂碼。排查過程在實驗室用短距離測試通信正常。到現(xiàn)場測量PLC和儀表的地線電位差發(fā)現(xiàn)約有2V的交流電壓。判斷是地線環(huán)路導(dǎo)致的共模干擾。在RS485總線上加裝隔離型收發(fā)器問題解決。經(jīng)驗總結(jié)長距離RS485通信一定要考慮地線環(huán)路問題。隔離是最徹底的解決方案雖然成本高一些但能避免很多現(xiàn)場問題。11. 串口調(diào)試工具與技巧匯總11.1 常用串口調(diào)試工具串口調(diào)試助手Windows下最常用的串口調(diào)試工具支持HEX和ASCII顯示支持定時發(fā)送。SSCOM功能更強(qiáng)大支持多條發(fā)送指令、數(shù)據(jù)校驗、波形顯示。minicomLinux下的串口終端工具適合命令行環(huán)境。screenLinux下簡單的串口終端screen /dev/ttyUSB0 115200即可。邏輯分析儀抓取串口波形分析時序和協(xié)議。示波器測量波特率、電平、邊沿時間。11.2 串口封裝與代碼復(fù)用在實際項目中串口通信代碼通常需要封裝成模塊方便復(fù)用。一個典型的串口封裝包括初始化函數(shù)配置GPIO、USART、中斷、DMA發(fā)送函數(shù)支持阻塞發(fā)送和DMA發(fā)送接收函數(shù)支持中斷接收和DMA接收回調(diào)函數(shù)數(shù)據(jù)接收完成后的處理邏輯C語言下的串口封裝可以用結(jié)構(gòu)體來管理串口實例typedef struct { USART_TypeDef *usart; uint8_t *rx_buffer; uint16_t rx_size; uint16_t rx_head; uint16_t rx_tail; void (*rx_callback)(uint8_t *data, uint16_t len); } uart_handle_t;這種封裝方式在STM32、GD32、CH32V等平臺上都可以通用只需要修改底層的寄存器操作。11.3 串口燒寫失敗的排查串口燒寫失敗也是常見問題可能的原因包括BOOT引腳電平不對STM32需要BOOT01BOOT10進(jìn)入系統(tǒng)存儲器啟動模式串口線連接錯誤TX接RXRX接TX波特率不匹配有些Bootloader固定用9600或115200復(fù)位時序不對需要先拉低復(fù)位再發(fā)送同步字節(jié)串口被其他程序占用排查的時候可以先確認(rèn)BOOT引腳電平然后用示波器看TX引腳有沒有數(shù)據(jù)發(fā)出再檢查串口助手的配置。12. 寫在最后的一些個人體會串口亂碼這個問題說大不大說小不小。它不會讓程序崩潰但會讓調(diào)試變得極其痛苦。我這些年踩過的坑總結(jié)下來就是一句話串口通信的可靠性取決于最薄弱的那個環(huán)節(jié)。時鐘、GPIO、中斷、DMA、地線任何一個環(huán)節(jié)出問題都會表現(xiàn)為亂碼。排查的時候我的習(xí)慣是先從硬件入手用示波器量波形確認(rèn)物理層沒問題再往上查配置。軟件配置里優(yōu)先檢查時鐘和GPIO這兩個是最容易出錯的。中斷和DMA的問題往往更隱蔽需要結(jié)合代碼和實際現(xiàn)象來分析。還有一點很重要不要迷信例程。很多例程是針對特定開發(fā)板寫的換一塊板子或者換一個芯片型號時鐘配置、引腳映射可能就不一樣了。一定要查數(shù)據(jù)手冊和參考手冊確認(rèn)每一個寄存器的配置。最后分享一個小技巧如果你懷疑是波特率偏差導(dǎo)致的亂碼可以試著把波特率降低一半或者降低到9600。如果降低之后通信正常了那基本可以確定是時鐘偏差問題。因為波特率越低對時鐘精度的要求越低容忍度越高。這個方法雖然不能解決根本問題但能幫你快速定位方向。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色色操| 丁香五月婷婷操逼| 夜夜操少妇| 五月久久综合| 任你草| 第二色AⅤ| 成人中文网| 天天爽综合网| 婷婷丁香高潮了| 色婷婷色和| 激情六月综合| 天天射影院| 99热精品在线观看| 久久精品视频99| 婷婷激情丁香五月天综合| 伊人在线视频| 九色PORNY自拍成人精彩视频| 五月丁香综合啪啪| 伊人久久大香线蕉av最新| 色婷婷亚洲婷婷在线观看| 婷婷色在线视频| 九月婷婷| av网址在线| 99久久综合网| 久久五月天综合视频网站| 97婷婷五月激情六月丁香伊人| 超碰在线国产| 色九九九九| 精品无码av丁香五月激情| 岛国在线观看91| 丁香九月婷| 丁香美女主播视频在线观看 | 狠狠色婷婷7777久| 热99精品视频五月| 激情av在线| 色五月婷婷激情五月| 无码yw| 欧美成人猛片AAAAAAA| 色五月大| 六月丁香网| 六月丁香啪啪啪| 婷婷丁香六月天| 色综合久久天天综合网 | 天天日天天爽| 五月激情综合网| 天天日夜夜爽| 91九色视频在线观看| wwwxxx五月婷婷小说| www.色综合| 丁香婷婷五月综合| 97人凄人人操人人爽| 91碰免费视频| 婷婷综合中文| 九九综合五月欧美| 婷婷五月丁香欧洲| 丁香五月婷婷亚洲色图| 五月丁香啪啪综合网| 啪啪日热| 久久久久五月丁香| 五月婷婷色啪| 亚洲操操| 99视频在线观看欧| 在热视频精品| 深爱激情五月天| 久狠狠| 99热6色| 亚洲无码成人性爰网| 九九精品片一| 99成人小视频| 美国十月色婷婷在线观看| 久久五月婷综合网| 色五月天本日| 996热re视频精品视频| 久婷| 成人在线视频网| 99视频精品全部观看10| 另类视频一区| 激情五月婷婷网| 26uuu亚洲| 九九亚洲视频| 久久九九99| 激情五月婷| 精品人妻一区二区三区四区不卡在| 精品久热| 丁香六月天婷婷色| www.色婷婷.com| 免费AV在线| 91狠狠色| 久8色色| 免费播放99性爱视频| 色区域网站视频| 丁香五月天激情免费在线观看AV777| 婷婷色五月色| 狠狠色成人影片| 免费无码毛片一区二区A片| www免费在线视频| 大香久久综合网| 人人干女人| 久热久| 啪啪五月天啪啪| 婷婷五月美女直播| 99精品热| 色婷婷亚洲婷婷在线观看| 婷婷五月,偷窥偷拍网| 丁香五月黄色| 26UUU在线观看| 色婷婷亚洲精品天天综| 超碰在线91| 99视频精品在线| 天天干天天干天天干天天干天天干天天干天天| 九月色婷婷综合| 激情综合色婷婷啪啪六月天| 国产肥白大熟妇BBBB视频| 九九色video| 99视频在线播放大全| 老司机午夜福利视频金瓶梅| 五月激情六月综合| 亚洲精品无人区| 91视频久久久| 99精品网站| 成年人99热| 久久婷婷内射| 激情婷婷99| 激情视频婷婷五月花| 26uu| 九九热视频在线观看| 婷婷婷五月香蕉| 五月天婷婷色五月天| 亚洲色综久久五月| 色五月五月丁香| 一区二区传媒视频| 踪合专区啪啪| 香蕉AV777XXX色综合一区| 久久综合婷婷激情| 69凹凸成人综合网| 激情五月婷婷色综合| 粉嫩AV久久一区二区三区| 99久精品视频| 五月激情婷婷四射| 射久久丁香五月| 26uuu亚洲欧美另类| 四色五月视频| 激情网战码亚洲A| 婷婷丁香成人五月天| 五月激情婷婷六月丁香| 思思99热| 乱女乱妇熟女熟妇综合网站| 直接看的AV| 青青色com久久| 色婷綜合网| 丁香五月天啪啪| 九九久久玖玖爱| www.日韩艹| 精品久久99| 久久综合中文字幕| 在线不卡视频| 丁香六月婷婷综合激情欧美| 综合久久婷婷| 看婷婷五月天网| 影视av久久久噜噜噜噜噜三级| 五月天婷久久| 天天干com| 伊人综合网站| 天天色天天噜| 色五月激情综合网站| 婷婷丁香激情五月天色色| 中文字幕丰满孑伦无码专区| 五月婷婷深爱六月| 97久操| 九九色视频| 9热超碰| 巴基斯坦粉嫰无码视频| 日本韩国视频在线观看社区免费的9| 精品婷婷五月天| 九九99精品视频在线观看| 激情五月,激情综合网| 美国十月色婷婷在线观看| 婷婷伊人综合| 99热99美国在线观看| 97人妻碰碰碰久久久久-最近国语高清| 丁香婷婷十月| 五月婷婷丁香大香蕉| 色噜噜狠狠一区二区三区| 亚洲视频另类| 99色天堂| 婷婷丁香五月激情中文字幕版| 亚洲精品又粗又大又爽A片| 亚洲综合新99视频| 久久久香港| AV网在线观看| 99久热在线精品| 久久午夜理论| 色九亚洲| 亚洲开心激情网| 久热一区| 日本视频99| 91精品久久久久久| 大香伊人久色| 99ri国产在线| 日韩乱玛久久| 久久曰曰| 五月丁香婷婷激情四射迷人| 色色色综合色| 夜夜躁爽日| 青草视频在线观看视频| 激情熟女网| 亚洲AV网站在线观看| 7777激情基地| 色婷婷丁香AV综合| 天天干天天干天天干天天干天天干| 欧美va亚洲va| 五月天婷婷久草丁香| 久久久WWW| 婷婷5月色| a级毛片一区二区免费视频| www.99热这里精品| 亚洲成人av在线| 五月成人综合| 五月婷婷干干干| 超碰色碰碰| 91色涩| 丁香六月婷婷开心| 九月婷婷激情| 国产特黄色精品一区二区三区精品无广告| 婷婷性爱| 久综合色| 五月天婷婷亚洲| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 五月五月婷婷| 婷婷.com| 久久久五月天| 激情五月小说婷婷| 9l视频自拍九色9l视频在线观看| 色综合综合色| 午夜九九电影| 成人必爱视| 99热插| 黄网在线免费| 亚洲亚洲人成综合网络| 99热一区| 婷婷五月情| 99精品小视频| 婷婷五月丁香综合人妻| 婷婷五月天人妻| 六月婷婷色综合| 一区中文字幕电影| 五月丁香六月停停停| 日本一级一级一级一级| 色婷婷影院| 亚洲va国产va天堂va综合va| www激情网| 精品一区二区三区四区五区六区介绍 | 色五月天综合| 婷婷成人综合免费视频| 色情五月丁香婷婷网| 91精品又长又大又粗又爽又猛| 五月婷婷综合激情小说| 91在线就要啪| 乱精品一区字幕二区| 丁香婷婷久久| 99热免费网站| 五月综合无码| 亚洲色五月| 五月激情综合网| 欧美3AaAa大片| 亚洲色婷婷99一9|| 激情网开心网| 日日爱699| 婷婷爱五月天人人爱| 丁香亚洲婷婷五月| 国产探花AV在线| 日本色婷婷久久99精品91| 99er精品| 六月丁香婷婷色综合| 免费国产VA国产免费| 欧美激情伊人| 9色视频在线| 色婷婷丁香综合中文字幕| 午夜日日| 秋霞免费三级片| 99久热在线精品| 久久99久久久久久| 噜综合| 九九综合伊人| 丁香五月天在线视频| 噜一噜免费视频| 久久五月六月| 天天干天天爽天天操| 五月婷婷开心亚州在线| 性生活视频98791| 亚洲精品99| www.久热| www.亚洲激情.com| 激情五月天综合网| www.色婷婷。com| 九九热这里只有精品12| 久久人妻久久| 97操碰| 国产精品久久久久久久久久| 操逼综合网| 九月婷婷激情| 西瓜美女a片| 这里只有精彩亚洲视频推荐| 色吧五月婷婷| 99精品偷自拍| 婷婷色五月激情强奸四射| 日韩成人电影AV| 五月丁香婷婷激情在线| 久婷婷色| 一起草AV入口| 五月丁香婷婷色色| 亚洲最大五月天成人网| 婷婷激情四射| 亚洲免费电影2| 亚洲综合五月天婷婷丁香| XXXX岛国| 桃色五月天| 色色射| 超碰国产一区| 99热国产这里只有| 亚洲操逼片| 亚洲情综合五月天| 欧美色图天堂网| 日韩婷婷五月天| 五月丁香啪| 99爱这里只有精品免费视频| 99热久久这里只有精品| 久久嘟嘟丁香| 激情五月婷婷欧美极品| 五月婷婷激情性爱| 丁香97综合| 日本三级韩三级99久久| 午夜丁香五月天综合| 操一区| 九九九激情网| 国产va在线视频| 超碰国产AV| 久久精品99国产精品日本 | 精品婷婷丁香五| 少妇性按摩无码中文A片 | 久久总和99| 九九色婷婷五月天| 久久亚洲色导航| 色婷婷五月在线| 精品久9| 色五月首页| 人人爱人人添| 国产综合色婷婷精品久久| 一本大道嫩草AV无码专区| 九月色婷婷综合| 五月婷婷AV| 婷婷开心激情五月激情网| 中文av网| 91viP在线看| 五月天成人综合| 色九四色| 欧美丁香五月天| 91丨九色丨43老版熟女| 俺来也综合网精品一区| 黄色AV日韩| 亚洲成Av人片乱码色第1集| 影音先锋激情网| 第五色婷婷| 中文资源在线a| 五月婷婷激情视频| Www.Av网9| 天天日,夜夜爽| 色99在线| 五月丁香在线精品| 丁香五月激情图片婷婷| 五月丁香婷婷中文网| 97色色视频| 天天爽天天爽天天爽天天爽天天爽天天爽天天| 青草五月天| 亚洲色婷婷| 五月天久久婷婷| 91超级碰| 丁香婷婷基地| 婷婷色五月婷婷姐妹| 91九色视频| 亚洲综合色色| 天天日天天摸| 99热热热天天人人人超超碰| 人妻av在线| 亚洲成人影视在线观看| 丁香午月AV中文字幕| 欧美精品18| 亚洲avjiujiur91| 色五月婷婷在线| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 色五月婷婷综合在线| av操一操| 中文不卡一二区| 婷婷射婷婷舔| 伊人五月婷| 色婷婷色婷婷五月| 六月婷久久| 五月天婷婷综合网| 三人荫蒂添的好舒服A片| 精品五月花| 日韩色色视频| 99re99热| 亚洲另类电影| 色五月婷婷很很操| 五月天堂色| 色综合五月天| 97影院一级片| 激情五月天在线观看色婷婷| 淫视馆AV在线| 操99| 99在线精品免费视频| 天天综合久久| 做爰丰满少妇1313| 五月天啪啪啪| 欧美va在线| 五月丁香综合在线| 六月丁香社区| 99综合视频一体| 北条麻妃九九九国产精品视频| 九九激情视频| 国产韩日亚洲美州欧亚综合在线| 97成人丁香| 久热黄色| 久久99免费视频| 五月婷网| 九月av在线| 激情丁香五月婷婷| 这里只有精品视频免费在线观看| 久热这里只有精品在线观看| 午夜成人综合| 婷婷综合玖玖五月| 91狠狠综合久久久| 99热这里只有精品1| 欧美va精品va老师va| 无毒黄色网址| 强壮的公次次弄得我高潮A片日本 | 九九99视频| 欧美性猛交99久久久久99按摩| 深爱激情五月网| 都市激情蜜桃婷婷五月天| 人妻在线观看视频| 亚洲V国产V欧美V久久久久久| 日本天天操| 五月激情丁香五月宗合| 九九精品在线视频观看| 桃色激情五月天| 狠狠爱深色婷婷综合| 91Chinese在线| 日本久久爽| 久久涩视频| 丁香九月激情| 99re这里| 在线天堂9| 亚洲视频在线观看| 99riAV国产精品视频| 色婷激情网| 尔尔AV一区| 亚洲视频在线观看| 大香蕉五月丁香| 亚洲综合色五月| 黄色大片又大粗又爽| 4438国产免费看| 激情五月天天| 99re这里| 天天狠狠夜夜狠狠2023| 一起草av| 亚洲成人AV在线播放| 丁香激情久久| 丁香五月婷婷在线观看| 五月天电影网| 五月婷婷六月奇米网丁香| 中文字幕九九九九| 99热这里| 粉嫩av懂色av蜜臀av熟妇| 99热这里是精品| 97热超碰| 中文字幕不卡视频| 人碰91| 密视AV综合在线| 欧美成综合在线观看| 午夜在线成人网站免费观看| 亚洲视频在线网| 色婷婷亚洲综合天堂| 激情四射网| 九九热99精品| 久久五月情| 色婷青青| 亚洲色区17| 丁香五月婷婷影院| 亚洲综合另类| 丁香五月天堂| 天天在线久久综合| 五月婷婷丁香狠狠撸久久| 色婷婷五月天天天干天天操天天爽 | 六月婷欧美| 99在线热视频| 成人看片网站| 六月丁香深深爱| 五月婷婷婷自由综合| 日日噜狠狠色| 婷婷丁香久久| 亚洲愉拍99热成人精品| 91精品综合久久久久久五月天| 激情丁香五月| 婷婷五月情| 亚洲五月丁香综合网| 色天天久婷婷| 青草五月天| 五月激情啪啪啪| 日韩无码专区| 午夜]香婷婷深深爱| 婷五月天六| 婷婷久久亚洲| 欧美成人精品一区二区| 久久综合中文| 色九九中文字幕| 色五月大| 色婷婷成人在线| 色五月婷婷五月天激情综合| 亚洲国产99| 人妻日日日| 青青久久五月天丁香婷婷| 在线不卡中文字幕| 夜夜爽日日躁| 激情综合无码| 91fuliwang| 久久婷婷五月天蜜桃| 天天色情站| 激情六月日韩| 激情五月天综合网| WWW免费视频碰碰碰碰| 5月婷婷视频网站综合| 久久人妻www| 开心五月网| 日韩日比视频在线| 天天操夜夜啊| 婷婷丁香色情| 色婷婷啪啪综合网| 五月色无码| 激情视频综合| www天堂99| 五月丁香A片| 久久婷婷五月免费视频| 激情内射人妻1区2区3区| 亚洲天堂无码| 五月好婷婷| 亚洲激情亚洲激情| 激情丁香九九五月综合网| 91综合国免费久入| 激情综合婷婷久久| 99热热热99精品丁香| 日本本土色网第一区| 婷婷五月天美女视频| 六月丁香啪啪| 色婷婷香蕉| 日本人人超碰| 婷婷久久免费看| 大香蕉精品视频| 中文字幕五月久久婷婷| 丁香五月色欲| 五月天婷婷无码| 日日干五月天婷婷| 99久久久99久久91熟女| 91avse| 亚洲日日日| 丁香五月天堂婷婷| 色婷婷久久综合久色| 婷婷成人AV| 亚洲欧洲一二| 夜夜骑天天玩天天日| 亚洲日韩一页精品发布| 九九伊人网| 亚洲性视频| 欧美熟女视频 色婷婷| 五月天婷亚洲综合在线嫩草网| 国产日批视频免费播放| 亚洲精品乱码久久久久久按摩观| 丁香五月成人社区| 天天 青草 制服丝袜 在线| 久久久久这里只有精品| 日本一级一片免费视频| www.色9| 亚洲色图81p| 国产五月天欧美色| 成人一区在线观看| 91久久五月天| 亚洲综合99| 五月色婷婷中文字幕| 大香蕉狼人久久| 五月天伊人综合| 五月天激情小说| 五月婷婷深深爱| 丁香婷婷综合色五月激情国产基地| 99超级碰碰| 99久久九九| 丁香五月天堂网| 高潮毛片遮挡费高一百度| 激情四射五月天| www。五月天激情| 亚洲精品色| 99这里只有免费的小视频在线观看| 五月婷婷激情综合在线| 天天综合天天玩夜夜玩天天玩夜夜玩| 亚洲中字AV电影在线网站| 色大综合| 99久久精彩视频| 超碰在线视屏| 久久五月天综合视频网站| 国产精品美女久久久久AV超清 | 五月丁香亚洲综合网| 久久精品一区二区三区四区| 欧美人妻一区二区| 99视频精品| 丁香六月天| 亚洲色婷婷视频| 丁香五月www| 亚洲永久免费| 手机激情网| 97日日碰碰| www激情| www·五月天| 91精品丝袜久久久久久久久粉嫩| 五月天色综合| 天天激情视频| 色婷婷色五月综合| 色天天综合色| 夜夜操夜夜操| 26uuuuuuuu国产| 国产综合丁香五月天| 丁香六月啪| 思思热视频在线| 色五月 激情婷婷 综合五月天| 日都一级A片| 亚洲成av人影院| 麻豆雪千夏| 伊人五月网| 99操| 久久草中文日韩欧美| 日韩无码AV电影网站| 91九色在线| 天天操屄网| 婷婷永久在线| 激情五月天在线观看色婷婷| 色欧美影院| av操B网站| 精品一区二区三区免费毛片爱| 99男人的天堂| 几激情五月婷婷色五月色天堂| 色的色综合| 这里只有精品视频| 大香蕉av在线| 色五月婷婷影视| 婷婷久久五月| 亚洲4区国产欧美| dingxiangtingtingliuyue| 婷婷五月精品| 99在线视频操999| 五月天婷婷成人网| www.色婷婷| 国产日比| 看全色黄大色大片| 亚洲网视屏| 五月激情六月宗合| 色优久久| 91啪啪视频| 久久久久er热| 狠狠干夜夜干| 婷婷六月综合激情| 九九精品热| 色~性~乱~伦~噜| 丁香五月激情综合| 国产成人AV在线播放 | 亚洲综合丁香五月| 综合狠狠干| 色五月丁香激情视频| 成人五月天色天堂| 综合色天天| 5月婷婷性视频| 激情久久五月网| 六月丁香综合网| 五月丁香婷中文| 天天干天天射综合网| 五月天激情视频网站| 欧美狠狠地| 色色色9| 激情五月婷婷视频一区二区三区| 五月丁香六月婷婷激情网| 在线观看亚洲AV| 中美日韩成人在线| 色999五月色| 少妇AB又爽又紧无码网站| 国产伦亲子伦亲子视频观看| 人操综合| 超碰在线中文字幕| 青草网在线观看| 爱草视频在线观看| 婷婷五月天激情诱惑| 另类 在线| 99热首页| 色色9 9| 综合伊人久久| 午夜性做爰电影| www.99视频| 刘玥av在线| 综合久久高清| 欧美精品999| 五月天激情啪啪| 婷婷五月 丁香六月| 99在线视频。| 第四色激情网| 亚洲AV中文在线| 天天做天天爱天天爽夜夜揉| 五月天久久成人| 亚洲最大视频| 狠狠操天天操综合| 五月天 无码| 99色天堂| 果冻传媒A片一二三区| 九月综合| 五月天色在线| 色婷婷欧美| 美国少妇性做爰| 婷婷精品综合| 九九久久综合网站| 日韩欧美一级大黄网站| 久久成人亚洲欧美电影| 久99视频| 天天日,天天插| 六月激情婷婷| 色香久久| 99思思热只有在这里看 | 激情九月婷婷| 色综合香蕉视频| 丁香五月婷婷动漫视频| 超碰99资源站| 99九九精品视频推荐| 九九热在线观看6| 色色色9| 中文成人在线| 大香蕉人妻| 久热这里只有精品6| 国产毛多水多女人A片| 日本色99| 五月开心激情| 狠狠色丁香乆乆| 热的五码久久精品| 日本熟女视频一区二区| www.久久99热地址发布| 色婷婷精品视频在线播放| 丁香五月AV综合| www.婷婷亚洲基地| 激情五月丁香六月综合AVXXXX| 99激情网| 激情六月色| 99只有精品9| 狠狠88综合久久久久噜噜噜| 激情五月天色网站| 玖玖五月| 六月婷婷综合| 97久久超视频| 夜丁香综合| 婷婷丁香五月综合网| 色色色99韩| 国产欧洲欧洲精品久久| 色五月色五天色情网| 久久婷婷五月天| 大香蕉娱乐| 欧美色爱五月天| 久月久在线视频| 五月丁香成人版| 高清无码网址| 婷婷黄色五月天在线视频| 久久99热这里只频精品6学生| 中美日韩成人在线| Av大香蕉| 欧美精品999| 成人精品在线| 久久婷婷五月天激情新地址| 99久久极情精品一区| 妇激情基地| 五月天伊人| 激情婷婷丁香五月天| 538任你爽视频不一样的| 亚洲欧洲中文日韩久久AV乱码| 另类婷婷五月天啪帕帕| 久久狠婷婷| 婷婷五月丁香在线视频| 亚洲五月天色色| 26uuu国产| 久久久性爱视频| 91一起操| 国内婷婷丁香社区在线播放| 精品无码久久久久久久久| 99热99精品在线观看| 六月五月天婷婷涩播在线| 国产色五月| 色99免费视频中文| 五月婷中文字幕| 色色色色欧洲| A片女女女女女女BBBB| 婷婷激情五月综合丁| tingtingseav| 丁香五月开心亚洲| 色五月综合网| 精品亚洲国产成AV人片传媒| 婷婷丁香综合成人| 婷婷玖玖五月天| 久久色区| 五月天成人手机在线视频| a毛片二逼wwwwwwwwww| 五月天婷婷激情在线色图| 91精品综合久久久久久五月丁香| 色五月丁香五月| www天天干| 婷婷五月色花丁香社区| 久久五月网| 色五月开心五月激情五月| 不卡成人免费| 五月丁香久久网| 九九热视频网站| 丁香五月天色婷婷| 狠狠99| 超碰伊人碰婷婷五月| 久久精典| 久久五月婷婷开心网| 97操在线资源| 99在线免费观看| 综合久久人妻| 婷婷在线视频| www.91AV.com| 丁香五月天综合| 色色色色色色色色综合网| 91久久婷婷| 最新婷婷五月丁香| 色色色热热热| 免费不卡狠操美女视频网| 四月婷婷五月色综合| 人人操婷婷| 六月丁香网| 婷婷丁香小说| WWW、日本色丁香、co m| 骚五月婷婷| 久热婷婷综合| 色99在线| 丁香五月婷婷在线| 久久五月天黄色五月天色网址| 婷婷狠狠97| 色www久视频| 丁香婷婷久久| 婷婷五月天电影网| 国产性色蜜乳| 欧美欧盟性爱网| 狠狠色综合网站久久久久| 国产精品人人做人人爽人人添| 中文成人在线| 手机免费福利视频| 五月婷婷丁香五月亚洲色| 国产ava| 91在线观看www| 大陆极品少妇内射AAAAAA| 激情久久久久| 日本五月天激情| 9999热这里只有精品| 丁香色情五月综合激情| 伊人www22综合色| 色97啪啪| 91久久网站| 最近免费中文字幕大全高清大全1| 丁香六月婷婷综合激情欧美| 亚洲色视频| 色色丁香激情五月| 丁香久久五月天视频在线观看| 亚洲色色色色色色色色色| 91无码高清| 亚洲免费电影2| 97干在线视频精品店| 国产欧美性成人精品午夜| 五月天激情图片| 五月香婷婷| 国产操碰| 国产激情AV| 91婷色| 99热99久久| 日韩在线99| 26uuu欧美日本| 精品香蕉99久久久久网站| 一本久久亚洲五月婷婷| 狠狠看狠狠| 在线观看五月婷婷网| 91啪啪视频| 丁香六月啪| 高清不卡一区| 97久久超碰| 大香蕉婷婷| 26UUU一区二区| 综合五月丁香久久| 成人羞羞啪啪 全 视频| 婷五月丁香| 国产美女精品| 五月丁香亭亭天天舔| 五月花婷婷丁香| 色婷婷社区| 99只有这里有精品在线视频| www.五月丁香| 亚洲精品国产成人AV在线| 97色久| 婷婷天天色| 操91| 久久综合五月天激情小说网站| 亚洲AV久久久久久久久久久久久久久久 | 丁香五月天婷婷大香蕉| 五月天怕怕| 久久久久亚洲AV无码网影音先锋| 99在线热| 激情五月婷婷网在线观看| 五月亭亭六月激情| 婷婷五月天激情综合深爱激情| 91成人性爱视频| www.黄色片-久久成人国产精品在线播放-999AV | 99性爱视频网站| 婷婷综合视频| 天天日,天天干,天天操| 97色吧| 色婷婷丁香AV综合| 任你爽精品免费视频6| 婷婷五月激情网站| www.五月激情红色| 亚洲综合99| 强伦轩人妻一区二区电影| 欧美搡BBBBB摔BBBBB| www.久久99精品| 亚洲综合视频网| 亚洲色情一区二区三区四区| 婷婷五月丁香手机在线视频| 九九99九九99九九99视频网| 99在线精品观看99| 婷婷狠狠爱| 玖玖在线视频福利| 婷婷五月天成人综合网| 991精品在线视频| 99五月丁香丁| 色婷婷五月综合在线| 亚洲亚洲永久无码777777| 丁香五月影视| 久久99热在线观看| 久热黄色| 久久综合中文字幕| 做爰丰满少妇1313| 狠狠操天天操| 五月丁香| 9久热视频| 久久这里只有精彩| 九九九九这里只有精品| 可以免费观看的AV| 人人97操| 天天做天天爰天天爽天天无遮挡| 五月婷婷在线视频观看| 丰满少妇猛烈A片免费看观看| 99色.com| 亚洲Av入口| 五月婷婷久久久| 激情综合五月丁香六月婷婷| 少妇高潮一区二区三区99欧美| 欧美激情综合色综合色| 99热久| 综合亚洲AV| 日韩激情人伦人| 五月丁香人妻| 色狠狠综合入口| 久久综合天天综合| www色色com| 久久久性爱视频| 人妻无码精品一区| 丁香五月五月婷婷欧美大香蕉| 丁香九月婷| 色五月激情网| 亚洲色图五月丁香五月婷婷| 婷婷的五月天另类视频| 色欲av伊人久久大香线蕉影院 | 天天操天天日天天爽| 91操操| www.综合久久.com| 996日日爱| 国产精产国品一二三在观看| se99高清无码| 操97| 伊人玖玖精品| 激情小说 五月天| 国外亚洲成AV人片在线观看| 婷婷五月天丁香| 91人人操人人| 青青草轻轻操| 婷婷五月激情丁香| 69人人操人人爽| 色色色色色色综合| 人与禽A片啪啪| 五月情四婷婷| 色香蕉影院| 日本妈妈乱| 色五月激情五月天| 激情综合网五月婷婷| 婷婷97碰碰| 久久综合中文字幕| 久草狼人| 激情丁香九九五月综合网| 99热综合| 99热线观看9| 婷婷五月天网址| 超碰97免费在线| 欧美日韩成人一区二区| 亚洲性视频| 婷婷99热| 婷婷丁香五月综合| www.99热这里只有精品| 色色色色色热| 综合色播| 婷婷六月天精品| 丁香综合| 五月激情婷婷四射| www.日本91| 国产三级片91| 97操视频| 综合网五月| 色五月婷婷少妇人妻| 熟女人妻一区二区三区免费看| 亚洲开心激情网| 久久视9精| 直接看的AV| 久久精品五月天| 丁香五月天啪啪| 另类五月婷婷| 蜜臀久久99精品久久久久久酒店| 丁香5月婷婷| 97人人看一| 色婷婷成人| 久久这里只有精品07 | 丁香五月激情欧欧美| 亚洲午夜成人av电影网| 夜夜操,天天撸| 狠狠se| 色五月激情五月天| 激情小说五月天中文字幕| 五月丁香色停停啪啪啪| 色婷婷的五月天| 东京热伊人| 亚洲视频在线观看| 五月婷婷第四色| 99久在线精品| 亚洲国产精品VA在线看黑人| 99热九九在线| 色综合色色| 99综合99| 538任你爽视频不一样的| 婷婷色五月天在线| 婷婷四色五月| 综合伊人久久| 嫩草AV久久伊人妇女超级A| 天天做天天摸| 99操视频| 91精选国| 色色丁香五月天| 最新五月天婷婷影| 日韩99视频| 欧美三级巜人妻互换| 开心五月深爱五月| 色色影院aaaav| 丁香花成人区| 五月天大香蕉| 五月婷婷视频| 婷婷在线五月天观看| 在线91日韩| 国产精产国品一二三在观看| 日本成人噜噜噜| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 国产精品色色666| 99ri精品视频在线观看| 免费试看小视频 99| 超碰91人人操| 五月丁香亭亭激情操逼网| 久婷| 91精品综合久久久久久五月丁香 | 丁香女人五月天| 九月久久婷婷| 一起草AV入口| 色九月| 久久a热| sewuyuejiqingwang| 四川BBB搡BBB爽爽视频| 9热久久| 成人综合网站| 超碰免费人人| 强伦轩人妻一区二区电影| 天天网站天天爽| 在线观看中文字幕亚洲| 高清a片基地| 婷婷久久五月天| 9久久久久久久久久久| 欧美成人精品老美女噜噜噜| 五月激情久久综合| 91chinese在线| 欧美WW在线网| 国产操B| 婷婷大美在线| 久久久久久久91| 狠狠干,狠狠操| 色婷久九| 亚洲性爱AV| 国产偷人爽久久久久久老妇APP| 亚洲精品欧洲精品| 另类小说五月天| 久久五月网| 五月丁香五月综合欧美| 99r这里| 先锋av性爱成人电影| 五月婷婷与六月丁香图片激情| 天天操无码| 91丨九色丨熟女|老版| 深爱激情五月婷婷| 91肏| se99热久久一本| 日本波多野结衣视频| 精品夜夜澡人妻无码AV| 五月婷婷婷婷| 97干在线视频| 日韩一级片| 色婷视频| 在线播放成人网站| 色欲久久综合| 久热九九| 99热超碰| 丁香五月偷拍| 激情五月天色播| 激情AV| 天天插天天插| 成人做爰A片免费看视频| www.天天干| 蜜臀AV在线观看| 五月天电影网| 五月丁香综合精品欧美| 五月婷婷很很色| 婷婷狠狠青青| 色色综合热| 激情综合在线播放| 久综合九| 在线成人网站| 婷丁香久综合| 天天粽合合合合| 婷婷五月天亚洲激情戏精品| 五月婷六月天| 五月天伊人综合| 五月开心网| 久婷| www.99在线| 丰满少妇猛烈A片免费看观看 | 午夜丁香综合婷婷| 91狠狠色| 99热在线观看| 久久性都花花世界成人免费视频| 人人97操| 五月综合激情| 激情久久四色| 婷婷五月丁香伊人网| 色五月激情婷婷| 天天噜| 婷婷色婷婷| 九月丁香八月婷婷加勒比| 一级性感毛片| 另类小说五月天| 99热这里有精品| 国产原创视频91九色| 婷婷人妻激情| 五月丁香六月婷婷久久肏| 色婷婷丁香五月综合| 亚洲操操操| 日本五月婷| 丁香五月五月婷婷欧美大香蕉| 97干资源在线观看| 丁香五月欧美激情| 欧美性丁香色色五月天综合爱爱| www.99热. com这里只有精品| 色五月丁香婷婷久草| 日日夜夜狠狠| www91色网站| 欧美久久婷婷| 五月婷婷插一插| 26uuu欧美| 五月丁香影院| 97人妻碰碰碰碰碰久久久久久| 91超级碰| 这里只有精品免费观看网占| 黄网免费看| 国产无套精品一区二区| 九月久久婷婷| 五月丁香婷婷钟和色图| 夜夜资源站| 天天日夜夜操五月| 久久东京热婷婷五月| www久久久久久久久久久| 一区二区免费看| 久久成人精品视频| 亚洲五月婷| 夜色爱爱亚洲| 五月婷婷中字在线| 成人色图情色成人网 www.5b5b5bcom 五月天| 婷婷丁香六月| 色五月中文字幕| 丁香5月综合啪啪| 九九久久五月天| 丁香五月伊人| 草操AV在线| 成人五月天丁香婷| AV亚洲在线| 97资源碰碰| 亚洲色小说在线综合| 思思热视频| 丁香激情五月天| 日韩精品成人在线| 婷婷播播五月天| 九九热99热| 任你日热视频| 淫荡综合网| 色婷婷六月天| 丁香五月网| 久热大香蕉| 日韩黄色电影| 久久小说网| 欧美色色色色色色色色| 五月婷婷丁香色吧网| 99这里| 91re色综合视频| 色六月丁香婷婷狠狠干| 婷婷综合久久| 色播五月综合网| 久久九九在线视频| 校花娇喘呻吟校长陈若雪视频 | 99精彩视频| 婷婷丁香大香蕉| 操逼在线视频| 人妻体体内射精一区二区| 99噜噜噜在线播放| 九月丁香婷婷综合| 色9月| 开心五月婷婷婷美女| 久久3级片| 婷婷六月伊人| 操人妻视频91| 蒲京久久无码视频| 色综合网综合| 激情图片亚洲| 久久99热 这里有精品| 亚洲色五月| 激情五月丁香综合蜜桃| 天天日天天色| 色色日韩网| 天天干狠狠| 99re热视频这里只有综合亚洲| 激情久久久久| 亚洲综合久| 97人人射| 丁香无月在线观看| 99视频这里有精品| www.99热| 久操热| 婷婷丁香五另类网站| 大伊香蕉精品视频在线| 人人干AV|