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

ARTICLE DETAIL

資訊詳情

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

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

串口亂碼排查指南:時(shí)鐘偏差、GPIO、中斷、DMA與地線環(huán)路 1. 串口亂碼這件事為什么總讓人抓狂搞嵌入式的朋友大概都有過(guò)這種體驗(yàn)代碼邏輯翻來(lái)覆去檢查了十幾遍串口助手那邊就是一堆看不懂的字符有時(shí)候是規(guī)律的“燙燙燙”有時(shí)候是零星的亂碼夾雜著幾個(gè)正常字節(jié)還有時(shí)候干脆一個(gè)字節(jié)都收不到。你換了一根USB轉(zhuǎn)串口線換了一個(gè)串口助手甚至換了一塊板子問(wèn)題依舊。更讓人崩潰的是同樣的代碼昨天還好好的今天上電就亂碼了。串口通信看起來(lái)簡(jiǎn)單——兩根線一個(gè)波特率發(fā)出去收回來(lái)就完事了。但恰恰是這種“看起來(lái)簡(jiǎn)單”的東西一旦出問(wèn)題排查起來(lái)往往比復(fù)雜的網(wǎng)絡(luò)協(xié)議還費(fèi)勁。因?yàn)榇谕ㄐ诺目煽啃砸蕾囉谔嗟讓蛹?xì)節(jié)時(shí)鐘樹(shù)的配置、GPIO工作模式的選擇、中斷優(yōu)先級(jí)的安排、DMA通道的分配、地線的質(zhì)量、甚至周?chē)袥](méi)有大功率設(shè)備在干擾。這篇文章不打算給你講串口通信的基礎(chǔ)教程那種內(nèi)容網(wǎng)上太多了。我想做的是把“串口亂碼”這個(gè)現(xiàn)象當(dāng)成一個(gè)系統(tǒng)性問(wèn)題來(lái)拆解從五個(gè)最常見(jiàn)的根因入手逐一分析背后的原理、排查方法和解決思路。這五個(gè)原因分別是時(shí)鐘偏差、GPIO模式配置錯(cuò)誤、中斷處理不當(dāng)、DMA與緩沖區(qū)問(wèn)題、地線環(huán)路與硬件干擾。每一個(gè)我都會(huì)結(jié)合實(shí)際案例和可操作的排查步驟來(lái)講盡量讓你看完之后能直接上手定位問(wèn)題。不管你是剛接觸STM32、GD32、ESP32、CH32V這類(lèi)MCU的新手還是已經(jīng)在做FPGA串口、Linux串口、PLC串口通信的老手這篇文章里的排查思路都是通用的。串口亂碼的本質(zhì)無(wú)非是“發(fā)送方和接收方對(duì)信號(hào)的理解不一致”而我們要做的就是找到這個(gè)“不一致”到底出在哪里。2. 五個(gè)核心原因的整體排查思路2.1 為什么先看時(shí)鐘偏差串口通信是異步通信沒(méi)有單獨(dú)的時(shí)鐘線。發(fā)送方和接收方各自用自己的時(shí)鐘來(lái)約定波特率雙方靠起始位來(lái)同步。這就意味著如果發(fā)送方的實(shí)際波特率和接收方預(yù)期的波特率偏差超過(guò)一定范圍采樣就會(huì)出錯(cuò)數(shù)據(jù)就會(huì)亂。這個(gè)容忍范圍是多少呢對(duì)于標(biāo)準(zhǔn)的UART協(xié)議接收方通常在每個(gè)位的中間位置采樣。如果波特率偏差導(dǎo)致采樣點(diǎn)偏移超過(guò)半個(gè)位周期就會(huì)采到錯(cuò)誤的位。理論上總偏差發(fā)送方偏差接收方偏差不能超過(guò)±5%實(shí)際工程中建議控制在±2%以內(nèi)才比較穩(wěn)妥。時(shí)鐘偏差的來(lái)源主要有幾個(gè)一是系統(tǒng)時(shí)鐘配置錯(cuò)誤比如外部晶振頻率和代碼里寫(xiě)的不一致二是PLL倍頻參數(shù)算錯(cuò)了三是波特率分頻系數(shù)計(jì)算時(shí)用了整數(shù)除法導(dǎo)致截?cái)嗾`差四是時(shí)鐘源本身精度不夠比如用內(nèi)部RC振蕩器做時(shí)鐘源。2.2 GPIO模式為什么會(huì)影響串口很多人覺(jué)得GPIO配置就是選個(gè)復(fù)用功能就完事了但實(shí)際上GPIO的工作模式對(duì)串口通信質(zhì)量影響很大。推挽輸出和開(kāi)漏輸出的驅(qū)動(dòng)能力不同上拉和下拉會(huì)影響空閑電平復(fù)用功能的映射關(guān)系如果搞錯(cuò)了TX和RX可能根本就沒(méi)接到USART外設(shè)上。特別是在STM32、GD32這類(lèi)MCU上GPIO的8種工作模式輸入浮空、輸入上拉、輸入下拉、模擬輸入、開(kāi)漏輸出、推挽輸出、推挽復(fù)用、開(kāi)漏復(fù)用如果選錯(cuò)了輕則通信不穩(wěn)定重則完全不通。而且不同系列的MCU復(fù)用功能的配置方式還不一樣有的用AFR寄存器有的用AFIO有的用設(shè)備樹(shù)。2.3 中斷處理不當(dāng)會(huì)帶來(lái)什么后果串口通信中中斷是用來(lái)處理接收和發(fā)送事件的。如果中斷優(yōu)先級(jí)設(shè)置不當(dāng)或者中斷服務(wù)函數(shù)里做了太多耗時(shí)操作就會(huì)導(dǎo)致數(shù)據(jù)丟失或接收緩沖區(qū)溢出。更隱蔽的問(wèn)題是中斷嵌套和中斷上下文的問(wèn)題——在高優(yōu)先級(jí)中斷里調(diào)用了低優(yōu)先級(jí)的串口發(fā)送函數(shù)或者在中斷里用了阻塞式的延時(shí)都會(huì)導(dǎo)致串口行為異常。還有一種情況是中斷進(jìn)不去或者進(jìn)去了但標(biāo)志位沒(méi)清除干凈導(dǎo)致反復(fù)進(jìn)中斷或者再也進(jìn)不去。這類(lèi)問(wèn)題在CH32V、GD32等國(guó)產(chǎn)MCU上尤其常見(jiàn)因?yàn)橹袛嘞蛄勘淼呐渲煤虶CC編譯器的屬性聲明方式跟Keil不太一樣。2.4 DMA和緩沖區(qū)的關(guān)系用DMA做串口收發(fā)是很常見(jiàn)的優(yōu)化手段但DMA配置不當(dāng)也會(huì)導(dǎo)致亂碼。比如DMA的傳輸寬度設(shè)置錯(cuò)了字節(jié)vs半字vs字或者DMA的源地址和目標(biāo)地址搞反了或者DMA傳輸完成中斷和串口空閑中斷的配合有問(wèn)題。緩沖區(qū)的問(wèn)題更隱蔽發(fā)送緩沖區(qū)被覆蓋、接收緩沖區(qū)溢出、緩沖區(qū)大小和DMA傳輸長(zhǎng)度不匹配這些都會(huì)導(dǎo)致數(shù)據(jù)錯(cuò)亂。而且這類(lèi)問(wèn)題往往不是每次都出現(xiàn)可能跑幾個(gè)小時(shí)才復(fù)現(xiàn)一次排查起來(lái)非常頭疼。2.5 地線環(huán)路為什么是隱形殺手前面四個(gè)原因都是軟件和配置層面的地線環(huán)路是純硬件問(wèn)題。當(dāng)兩個(gè)設(shè)備通過(guò)串口連接時(shí)如果它們各自接了不同的電源地或者地線走線形成了環(huán)路就會(huì)在地線上產(chǎn)生電流進(jìn)而導(dǎo)致信號(hào)電平的參考點(diǎn)發(fā)生偏移。這種偏移可能表現(xiàn)為偶發(fā)的亂碼也可能表現(xiàn)為通信距離縮短甚至可能損壞收發(fā)器芯片。地線環(huán)路的問(wèn)題在實(shí)驗(yàn)室里往往不容易復(fù)現(xiàn)因?yàn)閷?shí)驗(yàn)室的設(shè)備通常共地良好。但到了現(xiàn)場(chǎng)特別是工業(yè)環(huán)境或者長(zhǎng)距離通信場(chǎng)景地線環(huán)路就成了高頻問(wèn)題。3. 時(shí)鐘偏差最容易被忽略的根因3.1 波特率是怎么算出來(lái)的要理解時(shí)鐘偏差首先得搞清楚波特率是怎么從系統(tǒng)時(shí)鐘算出來(lái)的。以STM32為例USART的波特率計(jì)算公式是BaudRate fCK / (16 * USARTDIV)其中fCK是USART外設(shè)的時(shí)鐘頻率USARTDIV是一個(gè)分頻系數(shù)由整數(shù)部分和小數(shù)部分組成。比如系統(tǒng)時(shí)鐘72MHz要得到115200的波特率USARTDIV 72000000 / (16 * 115200) 39.0625整數(shù)部分是39小數(shù)部分是0.0625。小數(shù)部分再乘以16得到1所以BRR寄存器的值就是0x271。你可以自己算一下72000000 / (16 * 39.0625) 115200剛好。但問(wèn)題在于很多MCU的波特率寄存器小數(shù)部分只有4位也就是精度只有1/16。如果你算出來(lái)的小數(shù)部分不能精確表示就會(huì)有截?cái)嗾`差。比如某個(gè)時(shí)鐘頻率下算出來(lái)的USARTDIV是39.07小數(shù)部分0.07乘以16等于1.12只能取1實(shí)際分頻就是39.0625誤差很小。但如果算出來(lái)是39.5小數(shù)部分0.5乘以16等于8剛好能表示沒(méi)問(wèn)題。最怕的是算出來(lái)小數(shù)部分接近0.5但又不是0.5的情況誤差就會(huì)比較大。3.2 實(shí)際案例GD32F470的時(shí)鐘配置陷阱我之前用GD32F470VET6做項(xiàng)目的時(shí)候遇到過(guò)一個(gè)典型的時(shí)鐘偏差問(wèn)題。代碼是從GD32F407的工程移植過(guò)來(lái)的系統(tǒng)時(shí)鐘配置看起來(lái)一樣都是200MHz。但串口就是亂碼用示波器量了一下TX引腳發(fā)現(xiàn)實(shí)際波特率大概是108000左右跟設(shè)定的115200差了6%以上。排查過(guò)程是這樣的先確認(rèn)了外部晶振是25MHz然后檢查PLL配置。GD32F470的PLL配置和F407有些差異特別是PLL分頻系數(shù)和倍頻系數(shù)的組合。F407的工程里用的是25MHz晶振PLLM25PLLN400PLLP2得到200MHz。但F470的PLL架構(gòu)略有不同同樣的參數(shù)配置出來(lái)的時(shí)鐘不是200MHz而是192MHz左右。用192MHz去算115200的波特率USARTDIV 192000000 / (16 * 115200) 104.1667整數(shù)部分104小數(shù)部分0.1667乘以16等于2.67取2實(shí)際分頻104.125實(shí)際波特率 192000000 / (16 * 104.125) 115240左右誤差0.03%看起來(lái)沒(méi)問(wèn)題啊。但問(wèn)題在于GD32F470的USART時(shí)鐘源不一定直接來(lái)自系統(tǒng)時(shí)鐘。如果USART掛在APB1上而APB1的分頻系數(shù)設(shè)置不對(duì)實(shí)際時(shí)鐘可能又不一樣。我最后查出來(lái)是APB1的分頻系數(shù)設(shè)成了4而不是2導(dǎo)致USART時(shí)鐘只有48MHz算出來(lái)的波特率偏差就大了。排查時(shí)鐘偏差的第一步用示波器或者邏輯分析儀量一下TX引腳的實(shí)際波特率。如果沒(méi)有儀器可以發(fā)送已知的固定字節(jié)比如0x55用示波器看方波的周期周期倒數(shù)就是實(shí)際波特率。3.3 內(nèi)部RC振蕩器的坑有些低成本方案會(huì)用MCU內(nèi)部的RC振蕩器作為時(shí)鐘源省掉外部晶振。內(nèi)部RC的精度通常在±1%到±5%之間而且隨溫度變化很大。如果你用內(nèi)部RC做時(shí)鐘源波特率偏差可能一開(kāi)始就在臨界點(diǎn)上溫度一變就亂碼了。我見(jiàn)過(guò)一個(gè)案例某產(chǎn)品用STM32F030的內(nèi)部HSI8MHz做時(shí)鐘源波特率設(shè)的9600。常溫下通信正常到了冬天戶外溫度零下十幾度就開(kāi)始間歇性亂碼。后來(lái)?yè)Q成外部晶振問(wèn)題就消失了。所以如果你的項(xiàng)目對(duì)串口通信可靠性有要求建議還是用外部晶振。如果實(shí)在要用內(nèi)部RC至少要做溫度補(bǔ)償或者把波特率降下來(lái)波特率越低對(duì)時(shí)鐘偏差的容忍度越高。3.4 波特率偏差的容忍度計(jì)算前面提到總偏差不能超過(guò)±5%但這個(gè)數(shù)字是怎么來(lái)的我們來(lái)推導(dǎo)一下。UART接收方在每個(gè)位的中間采樣。假設(shè)發(fā)送方的波特率是T接收方的波特率是R偏差為誤差 (T - R) / R接收方從起始位的下降沿開(kāi)始計(jì)數(shù)到第n個(gè)位的采樣點(diǎn)累計(jì)的時(shí)間誤差是累計(jì)誤差 n * 位周期 * 誤差對(duì)于8位數(shù)據(jù)1位停止位最壞情況下第9個(gè)位停止位的采樣點(diǎn)偏移最大。如果累計(jì)誤差超過(guò)半個(gè)位周期就會(huì)采錯(cuò)9 * 位周期 * 誤差 0.5 * 位周期 誤差 0.5 / 9 5.56%所以理論上±5%是極限但實(shí)際工程中要考慮噪聲、信號(hào)邊沿抖動(dòng)等因素建議控制在±2%以內(nèi)。對(duì)于115200這種高波特率位周期只有8.68微秒對(duì)時(shí)鐘精度的要求就更高了。4. GPIO模式配置不只是選個(gè)復(fù)用功能4.1 GPIO的8種工作模式到底怎么選STM32和GD32系列MCU的GPIO有8種工作模式很多人配置串口的時(shí)候直接抄例程選個(gè)“推挽復(fù)用”就完事了。但實(shí)際上TX和RX的模式選擇是有講究的。TX引腳應(yīng)該配置為推挽復(fù)用輸出GPIO_Mode_AF_PP。推挽輸出的驅(qū)動(dòng)能力強(qiáng)能提供足夠的電流驅(qū)動(dòng)串口線。開(kāi)漏輸出需要外部上拉電阻如果上拉電阻太大上升沿會(huì)變緩高速通信時(shí)可能導(dǎo)致位采樣錯(cuò)誤。RX引腳應(yīng)該配置為浮空輸入GPIO_Mode_IN_FLOATING或者上拉輸入GPIO_Mode_IPU。浮空輸入適合外部已經(jīng)有上拉電阻的情況上拉輸入適合外部沒(méi)有上拉的情況。如果配成下拉輸入空閑電平會(huì)被拉低接收方會(huì)一直認(rèn)為收到了起始位導(dǎo)致亂碼。我見(jiàn)過(guò)一個(gè)案例有人把RX配成了下拉輸入結(jié)果串口助手一直收到0x00。因?yàn)榭臻e狀態(tài)下RX被拉低接收方認(rèn)為是起始位然后采樣8個(gè)位都是0最后停止位也是0就收到了0x00。這種情況用示波器看TX引腳是正常的但RX引腳一直被拉低。4.2 復(fù)用功能映射的坑不同系列的MCU串口引腳的復(fù)用功能映射方式不一樣。STM32F1系列用AFIO寄存器來(lái)重映射F4系列用AFR寄存器來(lái)選擇復(fù)用功能編號(hào)GD32F470跟F4類(lèi)似但也有差異。以STM32F407為例USART1的TX可以映射到PA9或者PB6RX可以映射到PA10或者PB7。如果你在代碼里配置了PA9為復(fù)用功能但沒(méi)有設(shè)置AFR寄存器選擇AF7USART1那PA9可能就接到了別的外設(shè)上串口自然不通。GD32F470VET6的復(fù)用功能配置跟STM32F4類(lèi)似但AF編號(hào)可能不同。比如USART0的TX在PA9上AF編號(hào)是AF7但有些GD32型號(hào)可能是AF8。這個(gè)一定要查數(shù)據(jù)手冊(cè)的復(fù)用功能映射表不能憑經(jīng)驗(yàn)猜。4.3 GPIO速度設(shè)置的影響GPIO的輸出速度GPIO_Speed也是一個(gè)容易被忽略的參數(shù)。STM32的GPIO速度有2MHz、25MHz、50MHz、100MHz幾檔。速度越高功耗越大但邊沿越陡峭。對(duì)于115200的波特率位周期8.68微秒邊沿時(shí)間只要遠(yuǎn)小于位周期就行。2MHz的速度對(duì)應(yīng)邊沿時(shí)間大約幾百納秒完全夠用。但如果你把速度設(shè)得太低比如2MHz而波特率又很高比如1Mbps邊沿時(shí)間可能占到位的十分之一以上導(dǎo)致采樣點(diǎn)偏移。反過(guò)來(lái)速度設(shè)得太高雖然邊沿陡峭但EMI輻射也會(huì)增大可能干擾其他信號(hào)。我的經(jīng)驗(yàn)是115200及以下的波特率GPIO速度設(shè)25MHz就夠了更高的波特率設(shè)50MHz或100MHz。沒(méi)必要一上來(lái)就設(shè)最高速度除非你的通信速率確實(shí)很高。4.4 設(shè)備樹(shù)中的GPIO配置在Linux系統(tǒng)上做串口通信GPIO的配置是通過(guò)設(shè)備樹(shù)Device Tree來(lái)描述的。比如全志V3S或者Jetson TK1這類(lèi)平臺(tái)串口的引腳配置在設(shè)備樹(shù)的pinctrl節(jié)點(diǎn)里。一個(gè)典型的設(shè)備樹(shù)串口配置是這樣的uart0 { pinctrl-names default; pinctrl-0 uart0_pins_a; status okay; }; uart0_pins_a: uart00 { pins PB4, PB5; function uart0; };如果設(shè)備樹(shù)里的引腳配置和實(shí)際硬件不一致串口就不會(huì)工作。而且Linux下的串口設(shè)備節(jié)點(diǎn)/dev/ttyS0等需要正確的權(quán)限才能訪問(wèn)否則會(huì)報(bào)“Permission denied”。在Ubuntu下查看串口設(shè)備可以用ls -l /dev/ttyS* ls -l /dev/ttyUSB* dmesg | grep tty如果串口被其他程序占用了可以用lsof查看lsof /dev/ttyUSB0Win7下查看串口被哪個(gè)程序占用可以用“資源監(jiān)視器”或者第三方工具如Process Explorer來(lái)查。5. 中斷處理優(yōu)先級(jí)、上下文與標(biāo)志位5.1 中斷優(yōu)先級(jí)配置的常見(jiàn)錯(cuò)誤串口中斷的優(yōu)先級(jí)配置直接影響通信的實(shí)時(shí)性和可靠性。如果串口接收中斷的優(yōu)先級(jí)太低可能被其他高優(yōu)先級(jí)中斷打斷導(dǎo)致接收數(shù)據(jù)丟失。如果優(yōu)先級(jí)太高又可能影響其他關(guān)鍵任務(wù)的執(zhí)行。在STM32和GD32上中斷優(yōu)先級(jí)分為搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)。搶占優(yōu)先級(jí)決定能否嵌套響應(yīng)優(yōu)先級(jí)決定同搶占優(yōu)先級(jí)下的排隊(duì)順序。串口接收中斷一般建議設(shè)置為中等偏高的搶占優(yōu)先級(jí)確保能及時(shí)響應(yīng)但不要高到影響系統(tǒng)滴答定時(shí)器SysTick等關(guān)鍵中斷。我遇到過(guò)一個(gè)案例有人把串口接收中斷的搶占優(yōu)先級(jí)設(shè)成了最低同時(shí)系統(tǒng)里有一個(gè)高優(yōu)先級(jí)的定時(shí)器中斷每100微秒觸發(fā)一次每次執(zhí)行50微秒。結(jié)果串口接收中斷經(jīng)常被延遲導(dǎo)致接收緩沖區(qū)溢出數(shù)據(jù)丟失。5.2 中斷服務(wù)函數(shù)里的禁忌操作中斷服務(wù)函數(shù)ISR應(yīng)該盡可能短小精悍。以下操作在ISR里是禁忌阻塞式延時(shí)在ISR里調(diào)用delay_ms()之類(lèi)的函數(shù)會(huì)導(dǎo)致其他中斷無(wú)法響應(yīng)。浮點(diǎn)運(yùn)算如果MCU沒(méi)有FPU浮點(diǎn)運(yùn)算會(huì)消耗大量時(shí)間即使有FPU也要注意上下文保存的問(wèn)題。動(dòng)態(tài)內(nèi)存分配malloc()和free()不是可重入的在ISR里調(diào)用可能導(dǎo)致堆損壞。打印調(diào)試信息在ISR里調(diào)用printf()通過(guò)串口輸出會(huì)導(dǎo)致遞歸調(diào)用或者死鎖。正確的做法是在ISR里只做最少的事情——讀取數(shù)據(jù)、清除標(biāo)志位、把數(shù)據(jù)放入緩沖區(qū)然后設(shè)置一個(gè)標(biāo)志位或者發(fā)送信號(hào)量讓主循環(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)))來(lái)聲明。一個(gè)典型的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))編譯器不會(huì)生成正確的中斷返回指令導(dǎo)致中斷進(jìn)去之后出不來(lái)或者返回地址錯(cuò)誤程序跑飛。5.4 中斷標(biāo)志位清除的時(shí)機(jī)中斷標(biāo)志位的清除時(shí)機(jī)很關(guān)鍵。以STM32的USART為例接收中斷標(biāo)志位RXNE在讀取數(shù)據(jù)寄存器DR時(shí)自動(dòng)清除但有些標(biāo)志位需要手動(dòng)清除比如溢出錯(cuò)誤標(biāo)志ORE、幀錯(cuò)誤標(biāo)志FE、噪聲標(biāo)志NE等。如果ORE標(biāo)志沒(méi)有及時(shí)清除會(huì)導(dǎo)致后續(xù)接收中斷無(wú)法觸發(fā)。我見(jiàn)過(guò)一個(gè)案例串口因?yàn)樵肼晫?dǎo)致了一次ORE但代碼里沒(méi)有處理ORE結(jié)果串口再也收不到數(shù)據(jù)了。排查了半天才發(fā)現(xiàn)是ORE標(biāo)志沒(méi)清。正確的做法是在中斷服務(wù)函數(shù)里檢查所有可能的錯(cuò)誤標(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)不去是另一個(gè)常見(jiàn)問(wèn)題。可能的原因包括中斷使能位沒(méi)有設(shè)置NVIC_EnableIRQ沒(méi)調(diào)用中斷向量表地址不對(duì)特別是用了Bootloader或者重映射的情況中斷優(yōu)先級(jí)分組設(shè)置錯(cuò)誤中斷標(biāo)志位在使能中斷之前就已經(jīng)被清除了全局中斷沒(méi)有使能__enable_irq()沒(méi)調(diào)用排查的時(shí)候可以一步步來(lái)先確認(rèn)NVIC的中斷使能寄存器ISER對(duì)應(yīng)位是否置1再確認(rèn)中斷掛起寄存器ISPR是否有對(duì)應(yīng)的掛起位然后確認(rèn)中斷向量表里的地址是否正確。6. DMA與緩沖區(qū)效率提升背后的陷阱6.1 串口DMA的配置要點(diǎn)用DMA做串口收發(fā)可以大大減輕CPU負(fù)擔(dān)但配置不當(dāng)也會(huì)引入新的問(wèn)題。以STM32為例串口TX的DMA配置需要注意DMA通道要選對(duì)不同串口對(duì)應(yīng)的DMA通道不一樣傳輸方向是內(nèi)存到外設(shè)Memory to Peripheral傳輸寬度要和數(shù)據(jù)寬度匹配串口是字節(jié)傳輸所以源和目標(biāo)都應(yīng)該是字節(jié)ByteDMA模式一般選單次模式Normal不是循環(huán)模式Circular傳輸完成中斷要正確配置一個(gè)典型的配置代碼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é)傳輸就會(huì)導(dǎo)致數(shù)據(jù)錯(cuò)位。比如發(fā)送0x01 0x02 0x03 0x04DMA按半字傳輸可能會(huì)變成0x0201 0x0403接收方看到的就是亂碼。6.2 接收緩沖區(qū)的設(shè)計(jì)串口接收緩沖區(qū)的設(shè)計(jì)直接影響數(shù)據(jù)完整性。常見(jiàn)的方案有單緩沖區(qū)簡(jiǎn)單但接收和處理不能同時(shí)進(jìn)行容易丟數(shù)據(jù)雙緩沖區(qū)Ping-Pong一個(gè)緩沖區(qū)接收另一個(gè)處理交替使用環(huán)形緩沖區(qū)適合不定長(zhǎng)數(shù)據(jù)但實(shí)現(xiàn)稍復(fù)雜用DMA接收時(shí)通常配合串口空閑中斷IDLE來(lái)判斷一幀數(shù)據(jù)結(jié)束??臻e中斷的觸發(fā)條件是總線空閑一個(gè)字節(jié)的時(shí)間。在空閑中斷里讀取DMA的剩余傳輸數(shù)量計(jì)算出接收到的數(shù)據(jù)長(zhǎng)度然后處理數(shù)據(jù)。這里有一個(gè)坑DMA的剩余傳輸數(shù)量寄存器NDTR在傳輸過(guò)程中是實(shí)時(shí)變化的讀取的時(shí)候要注意原子性。如果先讀NDTR再讀數(shù)據(jù)可能在讀NDTR之后、讀數(shù)據(jù)之前又收到了新數(shù)據(jù)導(dǎo)致長(zhǎng)度計(jì)算錯(cuò)誤。6.3 緩沖區(qū)溢出的排查緩沖區(qū)溢出是串口亂碼的常見(jiàn)原因之一。表現(xiàn)是接收到的數(shù)據(jù)前半部分正常后半部分亂碼或者數(shù)據(jù)整體偏移。排查方法在接收中斷或者DMA完成中斷里記錄每次接收的數(shù)據(jù)長(zhǎng)度和緩沖區(qū)剩余空間。如果發(fā)現(xiàn)接收長(zhǎng)度超過(guò)了緩沖區(qū)大小就說(shuō)明溢出了。解決方法是增大緩沖區(qū)或者提高數(shù)據(jù)處理速度。如果數(shù)據(jù)處理本身很慢可以考慮用多級(jí)緩沖或者把數(shù)據(jù)先存到外部RAM里。6.4 串口DMA與中斷的配合串口DMA和中斷的配合需要仔細(xì)設(shè)計(jì)。以接收為例通常的流程是串口接收DMA配置為循環(huán)模式緩沖區(qū)大小設(shè)為N串口空閑中斷使能空閑中斷觸發(fā)時(shí)讀取DMA剩余傳輸數(shù)量計(jì)算接收長(zhǎng)度處理數(shù)據(jù)重置DMA如果需要這里的關(guān)鍵是DMA模式的選擇。如果用循環(huán)模式DMA會(huì)一直循環(huán)填充緩沖區(qū)不會(huì)停止。如果用單次模式每次接收完需要重新配置DMA。循環(huán)模式適合連續(xù)數(shù)據(jù)流單次模式適合定長(zhǎng)數(shù)據(jù)幀。7. 地線環(huán)路與硬件干擾看不見(jiàn)的殺手7.1 地線環(huán)路是怎么形成的地線環(huán)路是指兩個(gè)設(shè)備之間的地線形成了閉合回路。比如設(shè)備A通過(guò)串口線連接到設(shè)備B同時(shí)設(shè)備A和設(shè)備B又各自通過(guò)電源線接到了同一個(gè)插線板上。這樣串口線的地線和電源線的地線就形成了一個(gè)環(huán)路。當(dāng)?shù)鼐€上有電流流過(guò)時(shí)由于地線本身有電阻和電感會(huì)在不同位置產(chǎn)生電位差。這個(gè)電位差會(huì)疊加在串口信號(hào)上導(dǎo)致接收方看到的電平發(fā)生偏移。偏移小的時(shí)候表現(xiàn)為偶發(fā)亂碼偏移大的時(shí)候可能完全無(wú)法通信。7.2 地線環(huán)路的實(shí)際表現(xiàn)地線環(huán)路導(dǎo)致的串口問(wèn)題有幾個(gè)典型特征通信距離越遠(yuǎn)問(wèn)題越嚴(yán)重周?chē)写蠊β试O(shè)備如電機(jī)、變頻器工作時(shí)問(wèn)題加劇用手觸摸設(shè)備外殼或者串口線時(shí)亂碼情況會(huì)變化換一根短一點(diǎn)的串口線問(wèn)題可能減輕我遇到過(guò)一個(gè)工業(yè)現(xiàn)場(chǎng)的案例PLC通過(guò)RS485串口連接到一個(gè)遠(yuǎn)程的儀表距離大概50米。在實(shí)驗(yàn)室里測(cè)試完全正常到了現(xiàn)場(chǎng)就頻繁亂碼。后來(lái)發(fā)現(xiàn)是PLC和儀表分別接了不同的電源地兩個(gè)地之間存在幾伏的電位差。加了一個(gè)隔離型RS485收發(fā)器之后問(wèn)題就解決了。7.3 隔離方案的選擇解決地線環(huán)路最徹底的方法是使用隔離。常見(jiàn)的隔離方案有光耦隔離在TX和RX線上各加一個(gè)光耦實(shí)現(xiàn)電氣隔離。成本低但速度受限適合低速通信。磁耦隔離用變壓器或者電容隔離速度高但成本也高。隔離型收發(fā)器比如ADM2483、ADM2582等集成了隔離和收發(fā)功能使用方便。選擇隔離方案時(shí)需要考慮通信速率、成本、體積等因素。對(duì)于115200及以下的波特率光耦隔離就夠用了。對(duì)于更高的速率建議用磁耦或者隔離型收發(fā)器。7.4 硬件濾波與保護(hù)除了隔離還可以通過(guò)硬件濾波來(lái)抑制干擾。常見(jiàn)的措施包括在串口線上加共模電感抑制共模干擾在TX和RX線上加TVS管防止靜電和浪涌在收發(fā)器電源引腳加去耦電容一般用100nF和10uF并聯(lián)在RS485總線的A、B線上加偏置電阻確保空閑時(shí)電平穩(wěn)定這些措施雖然不能完全消除地線環(huán)路的影響但可以顯著提高通信的可靠性。8. 常見(jiàn)問(wèn)題速查表與排查流程8.1 串口亂碼問(wèn)題速查表現(xiàn)象可能原因排查方法解決方案全部亂碼無(wú)正常字節(jié)波特率不匹配示波器量TX引腳周期重新計(jì)算波特率分頻偶發(fā)亂碼大部分正常時(shí)鐘偏差臨界檢查時(shí)鐘源精度換外部晶振或降低波特率收到0x00或0xFFGPIO模式錯(cuò)誤檢查RX引腳電平改為浮空或上拉輸入數(shù)據(jù)錯(cuò)位字節(jié)順序亂DMA傳輸寬度錯(cuò)誤檢查DMA數(shù)據(jù)寬度配置改為Byte傳輸接收一段時(shí)間后停止中斷標(biāo)志未清除檢查ORE/FE標(biāo)志在ISR中清除所有錯(cuò)誤標(biāo)志通信距離短就正常地線環(huán)路測(cè)量?jī)傻仉娢徊罴痈綦x或共模電感中斷進(jìn)不去NVIC配置錯(cuò)誤檢查ISER/ISPR寄存器重新配置中斷優(yōu)先級(jí)發(fā)送正常接收亂碼RX引腳配置錯(cuò)誤檢查RX復(fù)用功能映射查數(shù)據(jù)手冊(cè)確認(rèn)AF編號(hào)8.2 系統(tǒng)化排查流程遇到串口亂碼建議按以下順序排查確認(rèn)硬件連接TX接RXRX接TX地線接好。用萬(wàn)用表量一下串口線的通斷。量TX引腳波形用示波器或者邏輯分析儀看TX引腳有沒(méi)有波形波特率對(duì)不對(duì)。檢查時(shí)鐘配置確認(rèn)系統(tǒng)時(shí)鐘、APB時(shí)鐘、USART時(shí)鐘的計(jì)算是否正確。檢查GPIO配置確認(rèn)TX和RX的復(fù)用功能映射、工作模式、速度設(shè)置。檢查中斷配置確認(rèn)中斷優(yōu)先級(jí)、中斷使能、標(biāo)志位清除。檢查DMA配置確認(rèn)DMA通道、傳輸方向、數(shù)據(jù)寬度、模式。檢查緩沖區(qū)確認(rèn)緩沖區(qū)大小、讀寫(xiě)指針、溢出保護(hù)。檢查硬件環(huán)境確認(rèn)地線連接、隔離措施、濾波電路。這個(gè)順序是從簡(jiǎn)單到復(fù)雜從硬件到軟件。大部分問(wèn)題在前三步就能定位。8.3 實(shí)操心得與避坑技巧心得一先量波形再改代碼。很多人一遇到亂碼就開(kāi)始改代碼改了半天發(fā)現(xiàn)是硬件問(wèn)題。先用示波器量一下TX引腳的波形確認(rèn)波特率和數(shù)據(jù)內(nèi)容能省很多時(shí)間。心得二用已知數(shù)據(jù)測(cè)試。發(fā)送固定的0x55或0xAA這兩個(gè)字節(jié)的方波周期最容易測(cè)量。0x55是01010101方波周期等于位周期0xAA是10101010也是方波。用示波器量周期倒數(shù)就是波特率。心得三串口助手也有坑。有些串口助手在接收到錯(cuò)誤數(shù)據(jù)時(shí)會(huì)自動(dòng)丟棄或者顯示異常導(dǎo)致你看到的亂碼和實(shí)際接收到的數(shù)據(jù)不一致。建議用示波器或者邏輯分析儀直接抓取原始數(shù)據(jù)。心得四注意電平標(biāo)準(zhǔn)。TTL電平、RS232電平、RS485電平不能直接互連。TTL是0-3.3V或0-5VRS232是負(fù)邏輯-15V到15VRS485是差分信號(hào)。接錯(cuò)了不僅亂碼還可能燒芯片。心得五地線一定要接。有些人只接TX和RX不接地線覺(jué)得能省一根線。但串口通信的參考電平是地線不接地線的話兩邊的電平參考點(diǎn)不一致必然亂碼。心得六長(zhǎng)距離通信要加保護(hù)。超過(guò)1米的串口線建議加共模電感和TVS管。超過(guò)10米的建議用RS485或者加隔離。超過(guò)100米的必須用RS485加隔離加中繼。9. 從具體平臺(tái)看串口問(wèn)題的差異性9.1 STM32與GD32的差異STM32和GD32雖然引腳兼容但在串口配置上有一些細(xì)微差異。GD32的USART時(shí)鐘源選擇比STM32更靈活但默認(rèn)配置可能不同。比如GD32F470的USART0默認(rèn)掛在APB2上而STM32F407的USART1也掛在APB2上但分頻系數(shù)可能不同。另外GD32的中斷向量表偏移和STM32可能不一樣特別是在用Bootloader的時(shí)候。如果中斷向量表沒(méi)有正確重映射中斷就進(jìn)不去。9.2 ESP32的串口配置ESP32的串口配置和STM32差異較大。ESP32有三個(gè)UART默認(rèn)的UART0用于下載和調(diào)試UART1和UART2可以自由使用。在Arduino框架下用Serial.begin(115200)就可以初始化串口但要注意引腳映射。ESP32的GPIO矩陣允許幾乎任意引腳映射到UART但有些引腳在啟動(dòng)時(shí)有特殊功能不能隨便用。比如GPIO6到GPIO11通常連接了SPI Flash不能用作串口。在PlatformIO下開(kāi)發(fā)ESP32S3串口輸出的配置和ESP32類(lèi)似但要注意USB串口和硬件串口的區(qū)別。ESP32S3有內(nèi)置的USB-Serial-JTAG可以直接通過(guò)USB輸出串口數(shù)據(jù)不需要額外的USB轉(zhuǎn)串口芯片。9.3 FPGA的串口實(shí)現(xiàn)FPGA實(shí)現(xiàn)串口發(fā)送ASCII字符串需要自己寫(xiě)UART發(fā)送模塊。核心是一個(gè)波特率發(fā)生器和一個(gè)移位寄存器。波特率發(fā)生器的分頻系數(shù)計(jì)算分頻系數(shù) 系統(tǒng)時(shí)鐘頻率 / 波特率比如系統(tǒng)時(shí)鐘50MHz波特率115200分頻系數(shù) 50000000 / 115200 434.027取434實(shí)際波特率 50000000 / 434 115207誤差0.006%完全夠用。Verilog實(shí)現(xiàn)串口發(fā)送整數(shù)和浮點(diǎn)數(shù)需要先把整數(shù)和浮點(diǎn)數(shù)轉(zhuǎn)換成ASCII字符串然后逐字節(jié)發(fā)送。整數(shù)轉(zhuǎn)換可以用除法和取模浮點(diǎn)數(shù)轉(zhuǎn)換比較復(fù)雜可以用sprintf或者自己實(shí)現(xiàn)。9.4 Linux下的串口配置Linux下配置串口用termios結(jié)構(gòu)體設(shè)置波特率、數(shù)據(jù)位、停止位、校驗(yàn)位等。一個(gè)典型的配置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ù)丟失的常見(jiàn)原因是緩沖區(qū)設(shè)置太小或者讀取速度跟不上??梢杂胹elect()或者poll()來(lái)監(jiān)聽(tīng)串口事件及時(shí)讀取數(shù)據(jù)。10. 幾個(gè)真實(shí)案例的完整復(fù)盤(pán)10.1 案例一GD32F470VET6串口亂碼問(wèn)題描述GD32F470VET6開(kāi)發(fā)板串口配置為115200-8-N-1發(fā)送字符串“Hello”串口助手收到亂碼。排查過(guò)程用示波器量TX引腳發(fā)現(xiàn)波特率約為9600而不是115200。檢查代碼發(fā)現(xiàn)系統(tǒng)時(shí)鐘配置為200MHz但USART時(shí)鐘源選擇的是APB1而APB1的分頻系數(shù)設(shè)成了4導(dǎo)致USART時(shí)鐘只有50MHz。重新計(jì)算波特率分頻50000000 / (16 * 115200) 27.126整數(shù)部分27小數(shù)部分0.126*162實(shí)際分頻27.125實(shí)際波特率 50000000 / (16 * 27.125) 115207誤差0.006%。修改APB1分頻系數(shù)為2USART時(shí)鐘變?yōu)?00MHz重新計(jì)算分頻100000000 / (16 * 115200) 54.253整數(shù)部分54小數(shù)部分0.253*164實(shí)際分頻54.25實(shí)際波特率 100000000 / (16 * 54.25) 115207誤差0.006%。重新編譯下載串口輸出正常。經(jīng)驗(yàn)總結(jié)GD32F470的時(shí)鐘樹(shù)比F407復(fù)雜APB1和APB2的分頻系數(shù)會(huì)影響USART時(shí)鐘。配置串口之前一定要確認(rèn)USART的時(shí)鐘源和實(shí)際頻率。10.2 案例二ESP32外部中斷導(dǎo)致串口亂碼問(wèn)題描述ESP32開(kāi)發(fā)板用外部中斷檢測(cè)按鍵同時(shí)用串口輸出調(diào)試信息。按鍵按下時(shí)串口輸出亂碼。排查過(guò)程檢查串口配置波特率115200正常。檢查中斷服務(wù)函數(shù)發(fā)現(xiàn)按鍵中斷的優(yōu)先級(jí)設(shè)成了最高而且ISR里有Serial.println()調(diào)用。Serial.println()在ISR里調(diào)用會(huì)導(dǎo)致串口發(fā)送和中斷處理沖突因?yàn)榇诎l(fā)送本身也可能觸發(fā)中斷。修改方案在ISR里只設(shè)置一個(gè)標(biāo)志位在主循環(huán)里檢測(cè)標(biāo)志位并輸出調(diào)試信息。重新測(cè)試按鍵按下時(shí)串口輸出正常。經(jīng)驗(yàn)總結(jié)ISR里不要調(diào)用串口發(fā)送函數(shù)尤其是高優(yōu)先級(jí)中斷。串口發(fā)送最好放在主循環(huán)或者低優(yōu)先級(jí)任務(wù)里。10.3 案例三RS485長(zhǎng)距離通信亂碼問(wèn)題描述PLC通過(guò)RS485連接遠(yuǎn)程儀表距離50米通信頻繁亂碼。排查過(guò)程在實(shí)驗(yàn)室用短距離測(cè)試通信正常。到現(xiàn)場(chǎng)測(cè)量PLC和儀表的地線電位差發(fā)現(xiàn)約有2V的交流電壓。判斷是地線環(huán)路導(dǎo)致的共模干擾。在RS485總線上加裝隔離型收發(fā)器問(wèn)題解決。經(jīng)驗(yàn)總結(jié)長(zhǎng)距離RS485通信一定要考慮地線環(huán)路問(wèn)題。隔離是最徹底的解決方案雖然成本高一些但能避免很多現(xiàn)場(chǎng)問(wèn)題。11. 串口調(diào)試工具與技巧匯總11.1 常用串口調(diào)試工具串口調(diào)試助手Windows下最常用的串口調(diào)試工具支持HEX和ASCII顯示支持定時(shí)發(fā)送。SSCOM功能更強(qiáng)大支持多條發(fā)送指令、數(shù)據(jù)校驗(yàn)、波形顯示。minicomLinux下的串口終端工具適合命令行環(huán)境。screenLinux下簡(jiǎn)單的串口終端screen /dev/ttyUSB0 115200即可。邏輯分析儀抓取串口波形分析時(shí)序和協(xié)議。示波器測(cè)量波特率、電平、邊沿時(shí)間。11.2 串口封裝與代碼復(fù)用在實(shí)際項(xiàng)目中串口通信代碼通常需要封裝成模塊方便復(fù)用。一個(gè)典型的串口封裝包括初始化函數(shù)配置GPIO、USART、中斷、DMA發(fā)送函數(shù)支持阻塞發(fā)送和DMA發(fā)送接收函數(shù)支持中斷接收和DMA接收回調(diào)函數(shù)數(shù)據(jù)接收完成后的處理邏輯C語(yǔ)言下的串口封裝可以用結(jié)構(gòu)體來(lái)管理串口實(shí)例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等平臺(tái)上都可以通用只需要修改底層的寄存器操作。11.3 串口燒寫(xiě)失敗的排查串口燒寫(xiě)失敗也是常見(jiàn)問(wèn)題可能的原因包括BOOT引腳電平不對(duì)STM32需要BOOT01BOOT10進(jìn)入系統(tǒng)存儲(chǔ)器啟動(dòng)模式串口線連接錯(cuò)誤TX接RXRX接TX波特率不匹配有些Bootloader固定用9600或115200復(fù)位時(shí)序不對(duì)需要先拉低復(fù)位再發(fā)送同步字節(jié)串口被其他程序占用排查的時(shí)候可以先確認(rèn)BOOT引腳電平然后用示波器看TX引腳有沒(méi)有數(shù)據(jù)發(fā)出再檢查串口助手的配置。12. 寫(xiě)在最后的一些個(gè)人體會(huì)串口亂碼這個(gè)問(wèn)題說(shuō)大不大說(shuō)小不小。它不會(huì)讓程序崩潰但會(huì)讓調(diào)試變得極其痛苦。我這些年踩過(guò)的坑總結(jié)下來(lái)就是一句話串口通信的可靠性取決于最薄弱的那個(gè)環(huán)節(jié)。時(shí)鐘、GPIO、中斷、DMA、地線任何一個(gè)環(huán)節(jié)出問(wèn)題都會(huì)表現(xiàn)為亂碼。排查的時(shí)候我的習(xí)慣是先從硬件入手用示波器量波形確認(rèn)物理層沒(méi)問(wèn)題再往上查配置。軟件配置里優(yōu)先檢查時(shí)鐘和GPIO這兩個(gè)是最容易出錯(cuò)的。中斷和DMA的問(wèn)題往往更隱蔽需要結(jié)合代碼和實(shí)際現(xiàn)象來(lái)分析。還有一點(diǎn)很重要不要迷信例程。很多例程是針對(duì)特定開(kāi)發(fā)板寫(xiě)的換一塊板子或者換一個(gè)芯片型號(hào)時(shí)鐘配置、引腳映射可能就不一樣了。一定要查數(shù)據(jù)手冊(cè)和參考手冊(cè)確認(rèn)每一個(gè)寄存器的配置。最后分享一個(gè)小技巧如果你懷疑是波特率偏差導(dǎo)致的亂碼可以試著把波特率降低一半或者降低到9600。如果降低之后通信正常了那基本可以確定是時(shí)鐘偏差問(wèn)題。因?yàn)椴ㄌ芈试降蛯?duì)時(shí)鐘精度的要求越低容忍度越高。這個(gè)方法雖然不能解決根本問(wèn)題但能幫你快速定位方向。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
激情99| 看一级黄色视频| 天天看,天天做| 国产精品天干天干综合网麻豆 | 色婷婷网| 欧美AB在线| 久久久久9| 婷婷九月丁香| 狼人久草| 久久夜夜| 大肉棒导航| av一区二区三区四区| 麻豆久久久久久久久丝袜| 欧美96精品在线| 综合网色| 中文字幕丰满子伦无码专区在线视频最新| 欧美拳交在线播放| 91黑人狂躁丰满熟妇| 国产少妇与亚洲av| 国产精品对白内射| 精品国产91av一区二区三区| 欧美熟妇亚洲版| 久久久久久久伊人精品| 青青草字幕AV| 亚洲中文一区二区三区视频| 91爱剪切久久| 一区=区三区视频| 欧美精品久久久久久久丰满| 亚洲熟女一区| 久久婷婷六月综合| 91AV入口| 大乔未久88一区| 天天色天天干天天射| 亚洲蜜臀视频精品久久| av资源在线播放天堂| 东北女人性交| 久久超碰97中文字幕| 超碰成人公开| 日本加勒比无码专区| 伊色综合天堂色97| 天天综合网日韩7799| 91女优在线观看 | 精品人妻伦一二三区久久| 欧美色院| 91欧美性| 国产污视频麻豆传媒一区二区| 18禁精品网站在线看| 操淫穴亚洲五月丁香| 探花一区在线| 日本羞羞的视频在线播放| 久久成人午夜狠狠| 综合色图区| 眼镜人妻101.com| 亚洲欧美变态| 国产成自自拍在线观看| 欧美99热| 岛国片国产成人亚洲播放| 风间由美日韩欧美久久| 亚洲国产综合久久久性感熟妇| 日韩色欲久久一二三四区| 抽插一区二区视频| 久久久久久久久久久久黄色| 五月丁香综合网| 亚欧免费| 97碰| 干超碰碰熟女| 亚洲资源吧| 91欧美长吊| 亚欧Av| 国产毛片毛片4p懂色| A男人的天堂| 天天干天天爽| 六月丁香久久| 日韩黄色一区二区三区| 欧美亚洲一级在线观看| 91情色| 91熟女视频网| 亚洲丰满很很操| 综合色图,成人综合网| 亚洲精品乱码久久久久久蜜桃麻豆 | 婷婷五月影院| 亚洲偷拍自拍在线视频| 国内毛片国产专区二| 日日操免费视频| 久草资源在线| 亚洲资源站| 色天天野狼综合社区| 九九九九九九视频| 亚洲综合影片| 99自拍B亚洲| 一区二区三区四区色图| 亚洲码和欧洲精品激情系列| 青春草A| 久久只有精品一区二区三区| 天天干2区3区| WWW4虎| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 国语精品av| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 少妇专区一二三四五| 97色欧州| 成人精品视频| 久久熟女嫩草成人片免费| 中文一区二区| 猛猛干| 91 丝袜在线播放| 日韩性爱长视频免费| 97超碰欧美手机| 在线看污网站| 麻豆精品一区二区三区四区免费观看| 久久东京热久久| 天天综合网网欲色| 永久免费av无码网站国产app | 天美久久久久| 亚州男人天堂| 99久久亚洲精品无码毛片潘甜甜| 午夜福利1区2区3区| 国产资源中文字幕在线| 国产亚洲欧美每日在线| 欧美综合区| 777奇米影视777四色| 国产精品岛国片在线观看| 免费中文在线| 伊人成人中文字幕久久网| 激情五月婷婷| 欧美激情亚洲色图| 后入式在线免费观看60秒| 91高跟美女在线播放| 久久久久久久久久久久久久久久9| 夜夜骑操视频| 久久97视频| 亚洲欧美人妻| 国产高清无码一区三区二区| 亚欧高清v| 久久这里只精品99re66图| 99久久久99久久91熟女| 亚洲 欧美 另类 综合 偷拍| 青青操视频在线| 久肏视频字幕| 看免费的黄片| 六十路日本| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 亚洲。天堂。日本在线观看| 黄色大片视频在线免费看| 亚洲天堂一区二区久久| 不卡在线一区,精品一区二区三区中| 动漫片子网站3黄| 亚洲。天堂。日本在线观看| 日本阿v天堂在线观看| 日日噜噜夜夜狠狠视频无| 粉嫩在线一区二区懂色| 宅男午夜在线视频| 青青青青操国内视频在线| 91人妻最真实刺激绿帽| 欧美视频在线第3页| 狠操91,com| 看全色黄大色大片免费视频| 九九无码视频| 国产精品视频播放| 国产精品剧情| 国产欧美亚洲精品a第2页| 97精品国产97久久久| 男人的天堂在线| 先锋女优在线观看视频| 色五月激情综合网| 综合熟妇一区二区三区| 盗摄女人妻在线| 97视频在线观看播放与子乱对白在线…… | 色色网91| 肉丝网站91| 91色伦| 狠狠操官网| 色五月婷婷麻豆在| 九九九国产精品| 欧美日韩黄片精品在线| 按摩中文字幕| 操一操摸一摸| 麻豆天美国美国产AV| 亚洲精品久久久久久| 在线观看亚洲成人精品| 97WW精品| 九七超碰人人乐| 亚洲欧综合另类无码一区| 青青操在线亚洲视频观看欧美在线| 99少妇内射| 激情五月天丁香社区| 色天堂综合| 亚洲一区在线观看欧洲 | 黄色性爱网网| 91精品在线播放| 天天色,天天干,天天干| 欧美97视频| 操逼无码操逼| 国产熟女一区二区丰满| 日日日日做夜夜夜夜无码| 校园春色欧美色图| 岛国片在线视频网站| 哈哈操电影AV| 国产精品毛片?v一区二区三区| 欧洲中文字幕| 九九九精品成人免费视频小说| 国产熟女少妇一区| 精品国产一区探花在线观看| 啊啊啊啊啊操我视频| 久久69| 女同亚洲欧美一二三区久久电影| 蜜臀在线视频| 中文字日本乱码| 天天射天天| 精品国产72| 国产精品亚洲无码| 色臀aV| 肉嘟嘟www视频在线观看高清| 国产精品午夜精品| 亚洲丝袜二区| 国内毛片欧美香蕉精品| 久久综合av| 人人操,操人人| 五月开心久久AV官网| 无码精品久久久天天影视| A啊啊在线观看| 丁香五月综合| 97色亚洲| 91 丝袜在线观看| 五月激情小说| 中文字幕一区二区日韩网| 牛牛久久国产精品视频一二三| 自拍大香蕉乱插| 大粗鳼巴久久久久| 超碰性爱97| 中日韩久久久| 91亚洲色图| 熟女天天干| 自拍偷拍2025在线观看| 校园春色五月天| 久久天天躁日日躁狠狠躁| 操高情无码| 精品人妻一区二区三区不卡断 | 99色在线| 激情抓乳插进去啪啪啪日韩| 超碰97 线线 在现| 嗯嗯,好大,好爽,好骚 | 免费精品人妻一区二区三| 久久久久久99999国产精品| 亚洲av在线免费观看| 被男人添B超爽视频| 亚洲高清91| 亚洲宗合网| 色欧美天天| 亚洲精品毛片在线观看| 伊人超碰97| 久久精品国产精品| 大鸡吧尹人在线| 国产亚洲精品玖玖玖在线观看| 亚洲欧美日韩中文播放| 国产外初女出血视频| 另类综合另类| 五月婷婷激情网| 自拍偷拍 高清无码| 一区二区乱码福利| 美女网站91| 羞答答AV中文字| 天堂国产AV| 亚洲精品 大香蕉| 人妻99p| av在线不卡一区二区三区| 激情在线青青操| 99999这里都精品| 一牛影视久久久一区二区三区| 性色av婷婷久久一区二区点复制| 精品国产91av一区二区三区| 日本一级特级毛片视频| 日韩精品资源专区二区| 亚洲97精品| 中文字幕免费在线观看| 色综合99999| 熟妇人妻一区二区三区| 久久久久13| 五月天开心网| 大香蕉亚洲中文| 噜噜噜狠狠色综合| 色五月首页| 丁香九月激情| 激情五月天网| 婷婷性爱| 久久香蕉国产传媒一区剧情天美| 亚洲综合五月天| 久久久久国产无av| 丁香九月激情啪| 国产强奸超碰AV| 97人妻免费中文字幕| 国产在线能看的你懂的| 大香蕉www.超碰| 久久久久亚洲熟妇熟女| 韩三级a视频在线观看| 日韩国产精品人妻无码久久久| 97欧美日韩| 97视频免费在线观看| 试看60秒 爽| 99精品国产户外露出| 九九热AV| AV天堂国产| 亚洲中文一区二区三区| 久久久久成人亚洲国产| 国产高潮AA片免费看| 97人妻碰碰中文无码久热丝袜| 国产版a级片直播在线| 日韩国产中文字幕| 日本有码影片下载| 97精品视频免费| 日本久久综合| 人妻大香蕉| 伊人麻豆传媒| 69av一区二区三区| 不卡一区二区日本视频 | 激情熟女12P| 国产一级内射无挡观看| 91狼人| 日韩精品区二区三区不卡| 欧美黑人性猛交91| 福利在线视频一区二区| 色色九区| 一区不卡在线观看av| 免费作爱一级视频| 嗯嗯嗯啊啊啊操的我好爽| 青青草日本中文字幕| 精吧天堂| 夜夜草天天| 国产精品激情久久久久久久| 亚洲丁香花色| 欧美影音在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 极品美女嘿咻| 美女操逼A A| 啊视频在线| 97精品一二区| 久久精品高清无码一区| 亚洲AV无码秘 蜜桃臀国精产品| 日韩黄片视频试看| 大白逼三四级| 久久久久网站-538在线视频-欧美永久乱码 | 嗯嗯啊好爽| 2017人人操,人人摸| 国产在线精品偷| 精品射1999| 91熟女视频网| 亚洲综合另类小说色区亚洲成av人片在www| 插日本熟女视频| 亚洲精品一区二区三区新线路| x97av| 国产精品96久久久久久| 国产一区二区三区影片| 四虎国产成人精品免费一女五男| 中文字幕激情小说| 国产不卡免费在线视频| 富二代亚洲精品99| 97久操| 香蕉热人人精品| 亚洲欧美一区二区三区在钱蜜桃| 日韩精品啪啪啪| 日韩国产在线观看av| 大鸡巴久久久| 亚洲熟女综合网| 亚洲Av无码成人精品国产| 欧美性色综合网| 96国产精品| 亚洲欧美在线观看免费| 岛国人妻少妇av在线观看| 伊人骚琪琪亚洲天堂网站| 熟女色综合久久| 亚热日本熟女| 日韩无码操逼片| 嗯~啊~快点 死我视频| 3P丝袜熟女 色综合| 亚洲第一无码播放立川理惠| 中文字幕AV片| 精品偷拍13p欧美dodk视频| 久久精品视频28| 日本人妻最新在线中| 日本九九九九| 男人的天堂VA| 日本大片日本一区二区免费高清| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 日韩精品一二三四| 一本久道久久综合狠狠爱一密臀精| 一级久久性爱视频| 久久久性少妇| 色色99| 久久内射| 综合久草| 欧美日韩黄片精品在线| 啊啊啊要高潮了| av网页一区二区三区| 亚洲超碰综合网| 91丨熟女丨丰满熟女| 亚洲啪啪啪啪视香蕉| 日本女优在线视频福利| 91成人亚洲色图| 曰韩av中文字幕专区| KK色在线影院| 久久国产三区| 在线综合 亚洲 欧美中文字幕| 欧美日韩少妇色情| 91精品无码人妻系列| 91激情国产| 亚洲va综合va国产va中文| 日韩啪啪视频| 天美精品一区二区三区四区在线观看| 亚洲AV无线| 国产美女91| 国产不卡精品91| 无码人妻一区二区三区色欲aⅴ| 啊啊啊啊操死我了| JULIA一区二区三区在线播放| 91模特在线观看| 人妻少妇视频在线播放| 强奸乱伦AV一天堂网| 很很很很操| 黄色av一区二区在线| 日本女人久久久| 色好看av| 偷窥自拍A片| 亚洲?V高清一区二区三区尤物| 欧美色997| 懂色AV蜜臀无码精品APP| 60秒不遮不挡| 欧美黑人91| 国产女人高潮视频| 国产精品呦一区二区三区| 亚洲天堂电影网99999| 神马福利久草| 国产成人精品日本视频| 国产强奸乱伦第1页| 91精品久久久久久77777| 欧美激情五月天| 黄色电影在线播放综合网站| 大香蕉伊人75| 大乔未久88一区| 中文字幕日韩综合| 欧美大香蕉专区网| 强奸乱伦 亚洲一区| 亚洲交换| 黄色不卡视频| 久久久久久久久久久久久久9999| 国产极品一区二区三区三州| 夜夜草天天| 久久有码视频| 中文欧丝袜诱惑| 欧美性战999| 天天天天操| 国产一级作爱毛片| 成人性爱AV在线免费观看| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 黄色免费一级在线毛片| 久久精品超碰| 亚洲 欧美 日韩另类 麻豆| 色婷婷婷五月天激情四射| 蜜臀av一区二区三区免费观看| 亚洲成人一区二区精品| 懂色中文一区二区三区 | 91亚洲黄色网| 久久精品综合| 国产蜜臀在线| 欧美在线综合| 日本熟妇色熟妇在线视频播放| 少妇诱惑视频| 欧美18禁91| 欧美熟爽综合| 超碰超碰欧美| 在线观看AV不卡| 小少妇| 久热99| 亚洲精品视频在线播放| 日韩性爱高清免费视频| 69精品久久久久中文字幕| 强奸乱伦AV网站| 97在线视频观看网站| 91久久免费视频互動交流| 一区二区高清视频| 呦呦一区| 操逼逼一区视频| 豆花视频操逼网址| 无码外流操逼视频| 色就色综合| www.99中文字幕| 一区二区三区探花在线观看| 亚洲最新中文字幕免费| 美女午夜福利免费视频| 国精精品无码一二三区水多多| 日本日逼高清| 亚洲欧洲国产综合av| 欧美v亚洲v日韩v最新在线二区| 亚洲黄色a级片| 粉嫩在线一区二区懂色| 久久久精品国产亚洲AV无码| 亚洲欧美大香蕉| 清清一区二区三区四区不卡视频| 欧美性后入| 国产精品熟女九九九| 老司机午夜福利视频一区二区| 亚洲精品不卡一二三区| 超碰精品97| 免费精品无码一级毛片牛牛影视 | 欧美黑人日韩少妇色情| 色爱亚洲| 中文字幕高清精品一区| 亚洲无码一二三区| 探花激情视频| 67914在线精品观看| 欧美韩国你懂得在线| 941超碰| 一本色道综合久久欧美日韩精品| 欧美日韩在线视频网站| 美国aaaaa一级黄片| 色婷婷av在线观看| 好吊色一区| 后入式999| 搡老女人老91二区| 国产极品美女高潮无套在线观看| 日本久久99| 人妻插插人妻人| 丝袜高跟澳门91视频| 天天亚洲| 可以在线观看AV的网站| 天天爽爽爽爽| 中文字幕AV片| 91亚洲网| 欧美日韩国产高清在线一二三区| 天综合网| 国内一区二区三区| 秋霞怕怕片| 伊人女女资源在线观看| 久草精品国产蜜臀 | 春色综合免费| 最新国内自拍av免费| 五月色网| 岛国999| 一级乱伦网站| 欧美日韩99| 中文字幕AV片| 欧美AAAA黄片| 亚洲夜色在线| 婷婷探花久久精品一区| 成人性爱av| 开心五月深爱五月| 久操视频在线| 看一级特黄a大一片| 成人精品电影| 婷婷五月天激情四射| 国产一级αv免费看片| 青青操少妇| 久久久久国产精品久久久| 国产福利影视| 91网站18+| 亚洲免费成人在线高清无码视频 | 日本肏逼视频在线观看| 天天综合网AV91| 日本国产亚洲一区在线观看| 性爱动态120秒| 伊人宅男大香蕉 | 精品无码一区二区三区| 九九天堂| 91综合网站| 五月综合色| 免费视频观看60秒| 国产一区二区三区影片| 天美麻豆黄色录像| 精品国产乱码久久久久久口爆网站| 天天享受天天看| 亚洲国产美女久久久久| 日韩97视频!在线| 后入式免费视频| 五月婷婷丁香| 亚洲图片另类| 啊啊啊com| 国产v亚洲v日韩v欧美v片另类| 青青青艹在线视频| 亚欧视频在线| 欧美激情黑人| 日韩性爱播放| 国语精品对白| 久久五月份| 欧美日韩中文视频播放| 肉丝网站91| 欧美中文字幕日韩在线| 国产精品高潮久久AV| 天天懆天天日| 人人操人人射人人干| 国语av最新自产拍在线观看| 中文字幕免费在线观看| 久久婷婷视频| 91色交| 美女啪欧美一区| 无码高清国产AV| 加勒比久久av| 欧美另类色图片| 91免费看一区二区三区| 97精品国产手机| 俺去俺来也在线www| 97在线观看视频| 女优免费一区二区永久| 精品国产三级av韩国在线 | 狠狠综合| 精品亚洲成人免费在线| 亚洲精品白丝| 国产原创自拍| 人人操人人插人人摸人人干| 夜夜高潮夜夜爽国产伦精品| 色97| 熟女精品va中文字幕| 精品女同一区二区三区| 国产精品久久久久久夜夜夜| 日韩亚洲中文字幕在线| 中文字幕人妻丝袜乱一区三区| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | a人欧美综合天堂麻豆| 中国一区二区亚洲人妻| 国产极品馒头逼| 美日韩一二三区| 另类图片五月天| 九九热久久99精品re| 亚洲色图 91| 亚洲一二三四区机械| 亚洲综合一区二区| 操b在线观看| 欧美综合网站999| 人人色人人射人人妻| 久久一级无码精品毛片6| 久热一区二区| 欧美久久人体| 青久操| 校园春色之综合网| 乱伦AVxx| 两女互慰AV高潮喷水在线观看| 2017天天操天天日| 97频视在线| 91色鬼| 99精品在线观看| 韩国成人精品久久久免费看| 亚洲欧美电影| 男人的天堂VA| 中文一区二区| 骚逼一区二区| 国产精品一区二区在钱播放| 国产精品久久久久亚洲av| 亚洲天堂男人的天堂| 美女干逼2| 成人女人国产| 国模限制级电影| 无码伊人久久大杳蕉中文无码| 人人操我人人干| 亚洲欧美日韩偷拍色图| 夜夜嗨一区二区三区直播内容| 亚洲国内精品成人不卡| 午夜天堂网| 97中文天堂| 人妻丝袜无 码视频专区| 96久久精品一二三区色欲| 国产日韩欧美中文在线播放| 999久久久免费精品国产牛牛| henhen91| 91性网| 久久伊人东京热| 情色五月天就去干| 呻吟 欧美 日本 中出| 婷婷五月天无码 | 少妇色综合| 熟女一区二区三区| 97碰碰日本乱偷人妻中文的| 97人人爱人人做人人乐| 蜜桃久久久久久久| 综合 青草 伊久久 影院 综合| 在现视频女上位好爽| 久久久999日本大片| 懂色AV一区二区三区| 东京热激情视频一二三区| 狠狠久久亚洲欧美专区| 黑丝少妇在线观看| 内射白嫩美女| 涩爱AV在线| 国产偷仑| 一区二区三区成人| 亚洲人精品午夜不卡| com 首页 18岁 禁区 女优 免费 精选 同城| 日日干日日摸| 91欧美在线| 人人干人人操人人爱| 熟妇xxxxx性春色| 日韩无码三级影院| 99久久久er直播网址| 自拍偷拍 日韩无码| 日韩在线观看中文字幕视频| 狠狠狠狠狠狠| 日本不卡三级网在线播放| 久久中文色图| 亚州大图综合色图| 加勒比aⅴ| 日本久久女同性恋视频| 国产精品久久久久久久电影渣男| 青椒国产97在线熟女| 最新日韩黄片| 久草久热| 国产偷人妻精品一区二区在线| 高清孕妇孕交 交孕妇| 老熟女综合网 | 97chaopengongkai| 综合伊人激情| 777奇米影视777四色| 韩日精品四区| 后入式在线免费观看60秒| 亚洲影视第一页| 日韩少妇无码| 日韩美女操b| 久久久爆乳翘臀一线天伦理视频| 欧美亚综合色图| www. 男人天堂成人在线| 欧美宗合网| 国产精品区在线12p| 免费视频a级毛片免费视频| 久久久久日本视| 男人天堂网手机版婷婷| 中文字幕蜜乳av| 人人干人人操人人..com| 69精品在线| 精品白丝一区| 中国农村熟妇毛片视频| 成人午夜无码视频| 欧美色天堂网在线视频| 欧美性性性| 91c色| 99久久无色码| 国产精品伦理| 99性爱在线观看| 人妻一区二区三区| 亚洲色图欧美色18直播在线| 亚洲精品国产熟女| 在现视频女上位好爽| 中日韩久久久免费看| 国产精品盗摄 偷窥盗摄| 99无码精品| 视频黄站| 中国一级操逼视频| 91九久| 视频二区美腿制服人妻欧美| 免费精品中文字幕| 美女高潮视频91| 亚州性色| 一级免费啪啪片| 亚洲日韩乱码中文无码蜜桃臀网站| 97超碰护士| 99热超碰在线| 青青草国产一区二区三区| 三级精品三级在线观看| 亚洲有码 欧美精品| 欧美在线大香999| 色哟哟511老熟女| 亚洲综合小视频小说在线观看| 色汉综合| 亚洲综合春色| 一区二区三| 熟妇熟女视频一区二区三区| 欧美色交| 5月婷婷6月六月丁香| 国产99999久久精品| 欧美日日操| 歐美性天天| 自怕偷自怕亚洲精品| 久久免费看高潮毛片韩国| 中文字幕99999| 男人的天堂亚洲| 国产精品视频在线观看| 日本免费中文一区二区三区四区 | 夜夜爽夜夜摸夜夜操免费视频| 在线A日本| 日韩 欧美 国产 麻豆| 无码精品人妻一区二区三区妖精| 一区二区视频你懂的| 中文精品一区二去| 很很很很操| 亚洲 国产 精品一区| 亚洲一区制服诱惑| 5278欧美一区二区三区| 成人情色综合网| 中文字幕jul-617人妻熟女| 男人天堂最新手机版在线青青草| 激情五月天丁香社区| 国产精品另类一区大香蕉| 色色五月婷| 久久啊啊啊| 日本三级人妻a人妻一在线| 日韩欧美性吧婷婷乱伦大香蕉 | 久久婷婷一区二| 偷拍 欧美 日韩| 1二区9| 女人双腿搬开让男人桶| 啊啊啊好大好深| 久操黄色视频| 老司机天天操| 久久久久久中文| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 婷婷99| 国产精品高潮久久久无码| 久久精品老司| 乱伦系列一区二区| 东京热大香蕉| 中文字幕十五区| 亚洲欧洲网站免费观看| 91黑人狂躁丰满熟妇| 久久鲁夜| 色五月大香蕉| 欧美偷拍区| 美女91网址| 嗯嗯啊啊啊好舒服| 亚洲97久久精品亚洲| 四虎在线视频| 校园春色综合色| 亚洲欧美日韩综合在线尤物| 亚洲欧美日韩中文播放| 精品中文日韩字幕视频| 婷婷五月天伊人| 少妇一区二区三区高速| 国产精品农村妇女精品| 日韩精品人妻系列无码天堂| 欧美网站免费| 日韩免费福利在线观看| 久久华人网| 91黑丝少妇| 婷婷AV一区二区三区| 一区二区三区免费视频入口| 九九九九精品在线| 欧美性爱一区二区三区四区 | 在线啊v一区| 成人26uuu| 東南亚性呦成人伦理资源在线视频 | 国产成人一级av88| 日韩少妇无码| 国产天天噜一噜久久久| 成人日韩中文字幕| 六月丁香五月婷婷| 日本Xx性爱| 97超碰人人模人人拍人人| 欧美色图99| 伊人一区二区三区| 亚洲色人妻综合| 亚洲福利中文字幕在线| 啪啪啪东京| 在线观看中文字幕| 啊啊啊啊嗯嗯在线久久久| 天天摸夜夜操视频| 国产性刺激| 97人肏| www.婷婷五月天| 干婷婷综合网| 狠日操| 国产精品盗摄 偷窥盗摄| 91丝袜| 亚洲精品黄码久久久久| 色拍偷亚洲| 国产人妻一区二区三区欧美毛片| 国产黄a三级三级三级av在线看| 国产精品久久伊人| 精品一啪| 日本三级网页| 精品人妻中文字幕4399| 91P0RNY大屁股人妻| 精品人妻一区二区三区日产| 97亚洲色图| 欧美色图片色哟哟| 中文精品少妇天堂| 亚洲熟妇综合久久久久久| 97 九色| 北条麻妃性愛视频| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 性爱AV天堂| 97天天操天天干| 麻豆精品A片免费观看| 桃色六月天| 97人亚洲综合字幕| 天美一二三在线观看Av| 欧美美女在线高潮999| 国产视频一区二区在线观看| 久久综合乱子伦国产免费| 俺去久久| 色 婷97| 屌妞视频久久久久久久| 天天干天天日天天射黄色片| 美骚妇av高清在线| 亚洲精品1区| 亚洲色图 综合| 97久久国产精品| 小电影欧美91| 国产路线专区| 精品视频一区二区| 欧美成熟性爱精品| 秋霞网—男女啪啪亚洲免费体验区 | 怡红院成人视频| 亚洲精品99999| 青春草莓视频在线观看网址| 精品久久久久久AV无码| 色在线亚洲视频www| 韩国黄片aaaa| aaa一级黄片| 亚洲五月丁香花狠狠干一区二区三区| 国产又粗又又黄又猛| 大香蕉伊人亚洲| 99国产精品免费| 久久久少妇诱惑精品视频| 老熟乱一区二区三区四区| 蜜臀久久99精品久久久久久酒店 | 97精品国产| 国产成年女人免费视频播放a| 日韩欧美综合激情| 五月天婷婷色色| 麻豆乱码久久精| 熟妇激情| 女人久久久| 国产一区二区三区视频在线看| 国产亲戚伦亲在线| 婷婷中文字幕| 久久成年精品| 久久久久久无码人妻中文字幕| 超碰97 线线 在现| heyZO天然素人无码AⅤ专区| 中文自拍欧美影视| 美国美女AV在线| 91欧美性| 宅男影院久久久,99| 摸奶性爱视频网站在线免费播放| 91操操操操| 欧美激情性久久久久久| 操www| 中国少妇XXXX做受| 欧美不卡二区| 国产精品秘 福利姬在线观看| 两性综合网| 色婷亚洲五月在线观看| 日本精品一区三区| 大香蕉综合久久| 综合视频91| 午夜成人爽爽爽爽A片李冰冰| 青青操视频在线| 亚洲精品亚洲人成在线麻豆| 中日韓欧美高清| 精品国产乱子伦一区二区三区,精品一| 91 偷| 免费视频a级毛片免费视频| 久热大香蕉网站| 亚洲丁香花色| 日本天天干天天搞一区| 熟妇人妻精品一区二区| 日韩无码三级影院| 欧美视频在线第3页| 啊啊啊久久久视频| 日本羞羞的视频在线播放| 国产欧美日韩在线不卡第一页| 亚洲棕合电彰| 色综91| 影音先锋国产精品| 青青欧洲黑| 国产毛片片精品天天看视频| 女人爽到高潮潮喷18禁网站| 怡红院成人av| 国产精品人妻无码久久久老鸭窝 | 96精品久久久| 国产亚洲精品久久久久小| 久久一二三四五六七八九区区区 | 超碰一区二区| 日韩一区二区精彩视频| 久久精品欧美一区蜜桃| 日韩欧美aⅴ综合网站发布| 又大又黄国产| 91岛国动作片| 激情五月天色色网| 久久精品99| 操高情无码| A啊啊在线观看| 一级黄色性爱裸体视频| 美女超碰978| 91熟女丨91老女人| 97在线精品| 97国产中文| 国产浮力影院第1页| 69久久久久久久久久久久久| 欧美大香蕉久| 97爱欧美| 久久丁香久草综合网| 有码免费观看| 亚洲综合另类| 亚洲AV无码| 日韩精品在线视频,日韩精品……| 五月开心网| 伊香蕉综合久久久久久久噜噜噜| 久久99精品视频| 欧美日韩不卡传媒| 色五月婷婷中文字幕| 午夜亚洲| 亚洲精品一区中文字幕乱码| 超碰99在线| 大香蕉宗合网在线| 日日爱99| 日本精品人妻少妇一区二区| 福利视频香蕉免费一区二区在线| 少妇毛片久久| 性久久久| 色网1| 色乱二区| 亚洲激情在线| 亚洲天堂人妻一区二区| 最新亚洲黄色免费电影| 亚洲综合性感在线| 8x福利精品第一福利视频导航| 九九九久久久久| 国产无马视频| 大干人妻| 九九色色| 久久精品国产亚洲AV清纯| 日日干夜夜操视频h| 99re国产精品视频| 亚洲色天堂九9| 色色色综合| 视频一区二区免费在线| 亚洲欧洲久久天堂| 中文字幕成人理论在线| 91女日逼| 男人的天堂在线2| 国产高清无码一区三区二区| 久久精品男人的天堂| 激情婷婷| 国产精品福利视频播放| 学生妹天天看| 开心五月深爱五月| www.亚洲成人一区| 亚洲一二三四区在线免费看视频| 操操啪| 亚洲国产精品成人综合| 国产九九九九九九| 在线观看一卡二卡| 三级特黄60分钟播放| 一级AAA片一区二区三区| 啊啊啊啊视频免费| 黄色网址在线免费观看| 搡老女人老91二区| 97爱b| 久久,精品一二三| 人人艹亚洲| 久久婷婷成人综合色怡春院| AV丝袜少妇| 色色色色综合网| 日B操| 男人的天堂com| 色色99| 欧美激情综合色综合啪啪五月| 极品综合| 春色91| 激情人妻另类| 天天肏美女| 女同性恋久久| 18禁无码永久免费无限制| 密臀在线视频| 久久久久9999精品九九九| 久久久久无码| 国产免费一区在线观看| 日本一区二区三区午夜观看| 99999久久精| 激情五月天校园春色网| 97精品国产97久久久久久免费| 五月丁香社区婷婷日韩欧美精品影院 | 狼人狠干| 国产AB视频| 中文字幕-区二区三区四区视频中国| 久久久网站| 国产麻豆福利av在线播放| 97超碰人人操人人操| 欧美伊人电影| av草草在线电影| 欧美91精彩| 欧美日本久久精品一区| 天堂岛av| 亚洲天堂 视频你懂的| 亚洲性爱电影| 亚洲无码精品AV久久久| 日韩欧美中文字幕搭讪巨乳美人妻视频| 91天天爱| 91偷拍欧美亚洲| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 东北女人性交| 超碰无码五月97| 超碰碰激情97+久| 色盈盈影院| 中文字幕视频2区| 乱人伦 国语对白:视频直接看| 亚洲AV成人无码一区二区三区在线观看 | 99这里都是精品| 欧美亚洲美少妇一区二区| 色婷婷在线视频精品导航| 夜夜嗨AV一区天天| 欧美男人一区| 欧美色五月| 五月天婷婷色| 久久女人一区二区三区| 操逼日韩无码| 国产成人无码久久精品| 97任你吞精| 思思性爱| 国产又操| 97人人模人人爽人人| 思思热在线视频在线| 桃色五月天| 涩涩五月天| 99色色| 午夜免费视频1000| 色激情五月天| 熟妇熟女视频一区二区三区| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 五月色丁香| 丁香五月偷拍| 亚洲情色第一页| 国产suv精品一区二区四| 久久a久久| AV天堂男人的天堂| 丝袜综合色图| 老汉网| 夜夜免费视频| 欧美性第1页| 欧美色另类| 在线日韩精品一区二区三区| 女欧美一区二三区| 日韩在线性爱免费视频| 日本一区二区三区四区免费观看| 日本在线视频导航| 亚洲 日本 一 二 三| 精精夜夜| 欧美在线l亚洲| 久久影视二区三区行押| 欧美自拍网| 天天看天天日天天操| 日韩无码三级影院| 国产九九九九九九九九| 久久久网站| 久久色激情一区二区三区| 青青草成人视频在线观看二区 | 草蕉影视亚洲无码| 大屁股熟女一区二区三区| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 另类av天堂| 国产精品粉嫩福利在线| 成人性交午夜免费片| 精品无码欧美三级| 亚洲无码一二三区| 亚洲性爱高潮影院| 激情终合网| 97在线/亚洲| 黄色免费网| 欧美国产伊人久久久久| 午夜精品久久久久久久男人的天堂| 超碰97在线 欧美 国产| 老色鬼成人精品视频下载大在线观看| 后入国产| 久久社区一区二区三区| 人妻少妇视频在线播放|