国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成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這類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這類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)不去。這類問(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ò)亂。而且這類問(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類似但也有差異。以STM32F407為例USART1的TX可以映射到PA9或者PB6RX可以映射到PA10或者PB7。如果你在代碼里配置了PA9為復(fù)用功能但沒(méi)有設(shè)置AFR寄存器選擇AF7USART1那PA9可能就接到了別的外設(shè)上串口自然不通。GD32F470VET6的復(fù)用功能配置跟STM32F4類似但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這類平臺(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()之類的函數(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é)束。空閑中斷的觸發(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線上加偏置電阻確??臻e時(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類似但要注意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è)置太小或者讀取速度跟不上。可以用select()或者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
返回資訊列表
国产熟女完整版中字| 人人性爱视频免费| 国产精品毛片?v一区二区三区| 婷婷亚洲五月***久久| 夜夜操91744565| 亚洲中文字幕精品一区| 伊人欧美大香蕉视频| 起碰97| 欧美激情亚洲色图| 9/A片| 啊好大好舒服| 亚洲久久久久| 日本久久久久久久久久| 一起草日韩| 一本正道久久熟女| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 国产情色第一第二页在线观看| 欧美熟女激情| 伊人操| 自拍偷拍 日韩欧美| 高潮9999外国| 日本操BAV| 天堂资源站| 亚洲精品无码成人久久久99| 摸奶性爱视频网站在线免费播放| a在线观看| 2019天天干天天操| 啊啊啊啊啊啊啊啊啊在线观看| 国产视频一区二区三区在线免费观看| 夜夜夜久久| 亚洲欧美国产日本一区二区三区| 日韩性爱播放| 色九九久九九| 99久久精品国产系列| 91狠| 色婷亚洲五月在线观看| 亚洲图片偷拍视频区| 97二区四区| 色哟哟AⅤ| 欲射影视| 丁香婷婷九月| 久久久久一本一区二区青青蜜月| 中文字幕人乱码中文字的预防方法| 男人的天堂一区三区| 久久久久女教师免费一区 | 天天综和| 激情视频图片| 在线色导航| 26uuu国产| 精品亚洲俞拍视频一区| 91模特在线观看| 岛国免费视频在线| 激情专区综合| 天天干1区2区在线| 亚洲高清视频在线免费观看| 黄色av一区二区在线| 骚乳在线| 天天日天天干少妇日| 青青久久手机线视频| 热九九精品| 久九9精品| 欧美亚洲91| 亚洲一本大道中文字幕无码在线| 亚洲一二三| 亚洲情色视频| 蜜桃传媒一区二区亚洲| 综合久久97| 成人在线日韩| 97超碰美女| 国产 日韩 另类 视频一区爱| 一区二区首页| 成人性爱AV在线免费观看| 七久久久| 黄片免费日韩| 美美91成人国产精品欧美精品久久久久久久| 精品久久99| 免费视频一二三区| 日韩欧美女优电影| 另类亚洲一区二区三区| 日本999精品视频| 乱伦熟女专区| 日韩精品人妻中文字幕久久久| 日韩欧美加勒比| 情侣开房子拍 日韩无码 女的很漂亮| 欧美—性—交—色| 91精品国产综合久久久蜜臀| 日本操逼视频在线| 伊人久久大香线综合无码| 奇米四色网| 色综和网| 97一区二区蜜臀| 久久性爱视频99| 九九精品网| 亚洲成a人在线观看久| 国产麻豆一区二三区| 92人人操人人| 人人贴人人摸| 麻豆熟妇乱妇熟色A片在线看| 熟女色综合久久| 中文字幕AV中出| 超碰97在线 欧美 国产| 91在线无码精品秘 软件| 天天日天天干天天操| 精爱久久| 欧美夜夜狠| 激情五月综合开心五月| 国产精品永久免费10000| 麻豆 亚洲 97| 久久中文色图| 中文字幕在线观看第二页| 免费超碰97在线观看| 久久久91| 97人人色| 中出20p| 久操B网| 亚洲精品99| 欧美一级A片不卡视频。| 亚洲熟女av中文字幕| 欧洲小说色图视频另类| 亚洲综合小视频小说在线观看| 精品人妻美妇91job| 日韩精品在线观看观看| 熟妇xxxxx性春色| 日韩精品-原创伙伴| 亚洲激情深爱文学小说网站| 日本欧美m v精品网站加| 亚洲A色| 无码99| 无码免费在线观看黄色片| 色噜噜国产精品视频一区二区| 欧美草草| 久久久久国色αv免费观看| 欧美综合传媒| 亚洲图片视频小说| 九九久久99| 夜夜欢天天干| 97超碰超| 很很操在线| 91无码西班牙视频在线| 精品人妻一二三| 欧美亚洲| 婷婷激情五月天小说网| 欧美精品成人在线播放| 蜜乳av首页| 久久99综合| 亚洲综合小说另类图欧美视频激情小说色五月天 | 可以免费观看的日韩av毛片| 18禁精品网站在线看| 色婷婷激一区二区三区| 日韩三级一区| 美女诱惑在线一区| 日韩情色一区二区| av天堂精品久久| 91色久| 91在线页| 清纯唯美综合亚洲| 明星性猛交ⅹxxx乱大交| 日韩操逼性鲍| 日韩三级一区| 中文字幕人乱码中文字的预防方法| 九九亚洲色在线观看| 欧美色涩| 五月丁香综合啪啪| 亚洲精品一区二区免费在线观看| 91 丝袜在线播放| 国产女人91精品嗷嗷嗷嗷| 青青草国产亚洲精品久久| 99re在线视频国产| 国产日韩欧美操逼视频| 久久久久成人蜜桃精品| 日韩本不卡视频在线观看 | 97se综合| 成人av影院在线观看| 色综合色色| 亚洲成人妻日韩在线| 欧州91高潮| 精品人人插人人操| 国产性爱欧美性爱在线| 日韩熟女乱伦中出| 亚洲五区熟女| 91伊人久| 欧美A√综合网 | 成人久久无码www| 97亚洲精品| 五月天婷婷成人网| 亚洲欧美首页| 超碰1024久久| 中字幕人妻一区二区三区| 人人乐大香蕉| 在线观看一级α片刺激高潮视频| 97亚洲一区| 国产成人亚洲精品无| 欧美图片偷拍| 欧美十八禁视频| 六月丁操逼| 奇米四色网| jiujiujiujingpin| 欧美日韩国产色图在线| 九九九精品美女| 日本91白丝| 操操吧亚洲乱伦视频| 伊人国产视频| 思思热在线观看| 国产视频人人网| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 中文字幕诱惑制服人妻丝袜美丝袜美 | 青青色综合| 成人乱人伦一区二区| 欧美成人一区二区| 丁香五月天啪啪| 中文久久久| 日韩精品99久久久久久中文字幕| 欧美v亚洲v日韩v最新在线二区 | 国产在线精品偷| 青青在线视频日韩欧美| 男人天堂久久精品不卡| 欧美成不卡网| 亚洲色图大香| 久精品无码av一区二免费国产在线观看 | 夜色五月天| 人人摸.人人色| 亚洲欧美清纯| 怡红院成人视频| 亚洲婷婷丁香在线| 少妇丝袜在线观看AV| 99国产精品人妻人伦| 在线无码操| 波多野结衣AV无码一区| 欧美激情精品| 日韩99999| 色偷综合| 久久 久久国内精品亚洲| 一本正道久久熟女| 97玖玖人妻| 五月天婷婷综合| 中文字幕奈奈美被公侵犯| 1区2区3区视频| 中文字幕国产| 国产毛片精品一区二区色欲黄A片| 97超碰天天| 欲香欲色| 亚洲成人免费电影| 亚洲国产一区二区日韩专区| 青青草字幕AV| 日韩人妻丝袜美腿中文| 精品久久九| 蜜乳视频网站| 久久肏大逼| 五十路三区在线| 久久久久久中文版| 五月天激情小说| 人妻色偷色噜| 韩国三级色呦呦| 啊啊啊好大好湿| 天天干,天天日| 一起草日韩| 欧洲综合色图| 天天综合色图| 91美女高潮| 91久久午夜无码鲁丝片久久人妻| www.色99| 亚洲高清无码AAA久久久精品| 激情五月天中文字幕色| 丝袜加勒比| 国产精品熟妇一区二区三| 国产精品一二三免费网站| 日本午夜操逼| 国产亚洲欧美每日在线| 好爽视频在线观看视频| 国产中文字幕在线| 欧美少妇高潮久久91| 精品国产少妇高潮视频| 五月综合久久| 五月天婷婷激情| 蜜乳性色无码专日粉嫩骚逼AV| 日本人妻中文字幕| 国产亚洲欧美每日在线| 中文字幕高清精品一区| 国产精品女生av| 最新日本中文字幕| 91无遮挡| 人妻少妇精品久久久久久久| 日日爱99| 日韩成人高清一区二区| A 天堂| 中文字幕成人乱码熟女精品国50 | 国产亚州高清国产拍精| 日本人人操人人操| 囯产乱伦一区二区三女 | 无码最新| 国产AV高清AV无码| 亚洲欧洲国产综合av| 思思热er精品视频| 99久久精品国产高潮| 亚洲乱码尤物193YW| 欧美国产伊人久久久久| 国产精品爽爽va在线观看98| 韩国一级做A片免费的| 亚洲 一区二区 自拍| 国产高清吃奶免费视频网站| 色狠狠 - 百度| 草草影院日本第一页| 国产探花日韩援交| 久久精品国产亚洲AV嘿嘿| 370p日韩欧美亚洲精品| 围产精品一区二区三区视频播放| 国产精品女久久久久av爽| 日欧亚洲二三区大片不卡| 黄片com.| 三级三久久线久久99久目本WW| 91丨九色丨国产打屁股| 中文字幕大片三级狠狠干| 亚洲人妻一区二区三区| 久极品在线观看| 日日夜夜草草草| 久久久噜噜噜久久人妻| 黑人性欧美| 亚洲加勒比| 特级特黄一级毛片免费| 凹凸视频特色日本特黄| 国产suv精品一区二区四| 歐美一級亂黃99在綫精品| 福利一级版子| 噜噜噜噜天天狠狠| 92性色国产午夜福利在线661| 久思思热视频在线观看| 成人电影一区| 一区二区三区 丝袜高跟| 好屌色综合| 玖玖无码超碰| 亚洲AV成人精品网站在AV| 久久欲| 久久99人妖视频国产| 污啪啪啪视频| 秋霞鲁丝午夜无码一区二区三| 我要色综合网站| 91欧洲国产成人久久精品网站| 久久久久久国产无码精品| 五月丁香激情综合网| 毛片17S| 日韩毛片9| 亚洲无 码A片在线观看麻豆| 亚洲一级特黄大片在线播放91| 欧美激情五月天| 麻豆国产成人精品| 九九九免费视频| 免费A V在线播放| 江都AV在线| 91少妇高潮| 无码外流操逼视频| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | JULIA一区二区三区在线播放| 亚洲精品97在线| 黄色一区三区| 午夜福利精品| 久久综合精品一区二区三区| 懂色Av一区二区三区| 久草视频观看视频在线| 性感女人网页在线观看视频| 精品女同一区二区三区| 久久成人午夜精品影院| 天天综合网91入口| 在线日韩精品一区二区三区| 中字乱伦AV| 精品一国2| 亚洲国产一级黄色视频| 亚洲男人天堂Av| 亚洲女人毛茸茸91| 久久社区一区二区三区| 超碰欧美在线欧美| 秋霞久久亚洲精品成人| 精品国产91久久久久久一区黄无| 天天干18禁| 日本三级韩三级99久久| 欧美成人精品一区二区男人蜜臀| 日本一区二区做爱的视频| 狠综合网| 五十路六十路素人熟女| 伊人久久大香线综合无码| 精品一区二区三区国产| 夜夜操91744565| 欧美色女人| 人妻AV 中文字幕的| 超碰在线综合97| 黄色网址在线免费观看| 乱操9999| 成人看片网站| 啊啊啊草死我| 毛片17S| 18禁止看精品中文字幕| 另类亚洲图色| 日韩无码黄色片| 国产情色在线| 免费看一级a性色生活片久久无| 国产丝袜高跟美女av免费观看| 黄片aaaaa一区| 九99久久| 爽爽淫人网| 久久久久久九九九| AV一二区| 日韩人妻播放| 国产精品农村妇女| 国产大片精久久久久久| 精品毛片av一区二区| 亚洲宗合网| 免费a在线播放v| 五月天婷婷社区| 欧美1727免费观看视频| 国产成人91一区二区三区| 美女久久久久久久| 亚洲无码?第一页| 超碰97极品9| 色一射色一射| 亚州AV无码国产精品| 精品无人区麻豆乱码1区2区图片 | 中文字幕乱码人妻二区三区| 97超级色碰碰| 熟女性视频| 人妻干天天| 综合色久欲| 久久精品一区二区三区不卡| 日本黄大片在线观看视频| 亚洲大胆人体av| 婷婷丁香熟妇综合网| 老熟女网站| 亚洲综合图色在线| 任你草| 欧美 精品国产制服第一页| 欧美色图人妻| 中文字幕啊啊啊在线观看视频| av一区二区三区不卡| 99这里都是精品| 激情色播| 欧美性生活免费网| 熟妇视频一区二区三区在线| 国产精品一区二区后入| 成人在线视频二区| 91粉嫩萝控精品福利网站_精品影音先锋国| 精品久操| 无码男人天堂| 日韩二级| 香蕉久久国产AV一区二区| 欧美性爱日韩高清| 射久久| 9 1超碰九色| 国产传媒一区日韩| 97资源制服丝袜| 家庭乱伦网站国产| 精品日韩人妻精品一二三区| 日韩91网| 蜜臀久久99'精品久久久| 色性荡荡荡荡视频| 91日本在线观看| 国产精品视频自拍在线| 美女久久久| K8久久久久| 九九九九免费高| 800zy一区二区| 久久99综合| AV免费在线播放一区| 香蕉欧美| 97操| 97欧美综合| 香蕉国产97| yy少妇精品久久| 天天综合AV| 9+1视频网址| 极品美女福利在线观看| 国产成人精品无码久久| 操逼免费视频无码国产| 自拍偷拍 日韩欧美| 亚洲超碰97| 中文字幕AV中出| 91精品婷婷国产综合久久| jiujiujiujingpin| 最新无码国产| 高颜值美女口爆高潮浪叫| 在线观看亚洲专区| 人人妻人人爽 97人人看碰人免费公开视频| 中国黄色特级精品一区二区三区片| 精久久久91| 三级片大波波| 久久的网站啊啊啊啊啊| 成人综合网 欧美| 欧美黄色图片| 欧美情色贴图| 亚洲综合骚逼| 99这里都是精品| 97资源站国产精品| 97综合激情| 欧美九九九| 亚洲深夜福利| 国产传媒日韩| 日本乱人伦片中文三区| 色婷婷六月丁香七月婷婷| 搡老女人911熟妇老熟女| 亚洲国产成人精品久久久国产成人一区二区 | 91人妻做a观看视频| 色色色欧美| 人人操人人大香蕉| 亚洲天堂区| 欧美美女啪啪视频| 亚洲自拍欧美国产首页网曝 | 久插综合| 熟妇高潮二区三区| 花花AV导航| 亚洲美女av无码| 亚洲啪AⅤ永久无码| 淫荡少妇免费| 欧美久热| 久久综合女优| 男人天堂毛片| 69XX一中文字幕人妻91| 欧美亚洲| 男人亚洲91首页在线| 欧美 亚洲 大香| 亚欧美综合网。| 精品视频一区二区| 日产操逼| 精品久久人妻成人网| 人妻熟女午夜精品在线| 1二区9| julia ann久久| 69一区二区三区| 亚洲一曲日韩精品| 激情五月综合| 国产不卡中文字幕免费avi| 国产97综合| 日本一道在线播放高清| 亚洲一区二区精品福利| 91 国产丝袜在线放观看 | 亚洲综合码| 欧美亚洲高清晰| 国产一级高清免费观看| 91强热人妻| 超碰超碰95| 91视频综合在线| 91亚州| 黄片com.| 很黄很污的免费网站| 日韩人人精品| 亚洲图片激情综合另类| 人妻熟女午夜精品在线| 最新9久久久9免费视频| 你懂的在线观看区国产| 亚洲图片偷拍视频区| 麻豆AV短剧| 97在线免费视频观看| 免费观看国产不卡av| 96久久科窝| 蜜桃午夜视频一区二区 | 综合自拍| 成人欧美日超碰| 97亚洲欧美| 日韩欧美经典在线观看| 亚州 综合 色图| 日韩三级伦理中文字幕| AV中文在线| 亚洲区限制级 99| 欧美激情性久久久久久| 真实高潮91| 亚州欧美色图| 96精品在线| 91丰满| 图片区小说区| 2019亚洲男人天堂| 能在线播放的国产三级| 性生活无遮挡纯毛片在线看| 亚洲成人黄色在线观看| 性色avv| 美女黄网| 丰满人妻一区二区三区在线| 久久少妇| 久久理论字幕视频| 三上悠亚在线毛片91| 无码免费一区二区三区啪啪| 丰满人妻-区二区三区免费看 | 日韩中文欧美| 大香蕉中文201| 大香蕉啪啪网| 久热这里只有精品9| 激情四射五月天| 久久蜜桃一区二区| 99久久九九| 九九热精品| 久久久久精| 久久婷婷电影网| 91亚洲不卡一区| 高清国产无码av| 97免费视频网| 高清无码 国产精品| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | xxx亚洲午夜天堂| 综合影院永久入口国产| 欧美性爱一区| 日本性爱不卡视频| 蜜汁欧美| 久久综合18p| av爱爱爱| 97精品97久久| 激情五月综合网| 亚洲久久久久| 精品国产国产AV| 思思在线免费视频| 国产精品成人午夜福利| 丰满翘臀美女影院视频| 国产乱伦亚洲| 青青操日韩| 天天摸天天插天天日| 免费av在线播放二区| 色亚州人久干视频在线观看免费版| 在线v中文字幕一区二区三区| 国产熟女一区二区| 九九英色视频| 欧美黄色片AAAAA| 五月丁香激情四射| 啊啊啊不要嗯嗯在线观看| 五月天婷婷久久| 午夜视频黄| 啊啊啊男女| 97免费在线视频在线观看| 欧美性爱日韩性爱| 日本不卡在线二区三区| 99只有精品| 亚洲综合五月天婷婷丁香| 欧美激情视频在线一区| 国产一二三福利视频网| 夜夜狠狠躁日日躁色视频| 第一高清av中文字幕| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 欧美黑人性猛交91| 国产99久久99热这里只有精品15 | 91九色丨风韵犹存| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 91丝袜| 日本熟妇色熟妇在线视频播放| 大香蕉啪啪啪| 久久精品店| 中文字幕第9页萱萱影音先锋| 夜夜国自区| 久久精品视频在线观看| 97资源制服丝袜| 多乙久久久久久| 天天夜躁日日躁狠狠2002| 漂亮人妻被强中文字幕hd| 中文字幕版| 色婷视频| 日人妻视频91| 成人免费看吃奶视频网站| 欧美乱欲| 91大香蕉伊人| 天天影视之亚洲综合网| 欧美日韩亚洲天堂网| 天美传媒av 在线| 91|九色|国产熟女| 啪啪AV导航| 岛国在线免费视频| 久久中文字幕不卡人妻| 久久免费少妇| 久久超碰com| 中出20p| 狠狠爱夜夜干| 伊人久久亚洲中文字幕不卡| 国产精品久久久蜜臀| 国产11页| 国产精品色色| 丁香五月天堂网| 人妻-91porn| 欧美人妻一区| 欧美日韩 强奸乱伦| ,成人免费啪啪视频| 欧美色www亚洲国产阿娇要播| 亚洲熟女人妻中文字幕一区二区 | 日韩不卡码| 99抽插| 久久香蕉超碰97国产精品| 天天日日本| 国产农村妇女精品1区二区| 啊啊啊 在线观看| 九九热九九热| 欧美三级一级| 无码一区二区三区四区五区六区七区八区九区十区视频 | 日韩十八禁| 操熟女91| 天天综合91| 国产精品美女视频诱惑| 国产又黄又粗又猛大片| 白丝被操91| 亚洲欧洲无码bt精品合集| 免费看黄片现成| 欧美激情性久久久久久| 狠狠中文字幕| 色噜噜人妻丝袜a∨先锋影| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 一本色道人妻久久| 资源新线在线天堂| 国产又黄又粗又猛大片| 国产精品露脸在线观看| 岛国视频免费在线观看| 亚洲偷拍自拍在线视频| 狠狠色丁香| 欧美精品另类人妖xxxx| 成人天天看站长推荐| 操逼999| 爱丝福利| 玖草在线视频| 五月婷婷六月丁香网址| 干婷婷综合网| 精品久久久久久亚洲| 五月婷婷hd| 亚州欧美综合| 91亚洲欧美激情| 伊人网青青| 亚洲精品啪视频| 亚洲另类综合欧美| 传媒免费一区二区三区| 成人日本片久久久蜜桃| 亚洲91色| 午夜福利精品| 亚洲图片欧美日韩| www被窝色com| 我要色综合网| 啪一啪免费视频| 内射白嫩美女| 亚洲女人毛茸茸91| 熟妇乱伦一区二区| 黄片免费看黄片免费看| 91人妻人人妻| 日韩欧美蜜桃精品久久中文字幕久久 | 色五月第四色| 99操逼| 欧美一区二区三区四区综合| 欧美在线播放aaaa| 91撸色网 玖玖网 欧美| 东北老熟女| 素人一区二区三区日韩| 婷婷99| 97伪v| 国产v亚洲v日韩v欧美v片另类| 国产精品一级毛片不卡视| 天天影视网综合少妇| 97超色| 精品久久久久久AV无码| 91啪啪视频| 蜜臀色乳| 99婷婷一区二区| 婷婷久久综合久| 超碰1997| 麻豆视频国产一区二区| 懂色AV一区二区三区| 人澡逼| 国产精品区在线12p| 吻戏激情性巴克| 精品大全99999| 日韩精品在线观看观看| 夜夜高潮夜夜爽| 欧美成人精品欧美一级乱黄一区二…| 中文字幕精品一区二区精| 亚洲。日韩。欧美| 蜜臀久久99精品久久久久久成人小说| 色婷婷六月丁香七月婷婷| 亚州色交| 亚洲熟女综合网| 婷婷深爱五月| 啊啊啊轻点在线观看| av在线一区二区三区| 综合网~91综合网| 操逼操2| 亚洲日本韩国极品一区二区| 风韵犹存大大大大香蕉| 久久久国产成人一区二区三区在线| 乱欲性色| www.伪伪| 91色伦综合| av网站在线观看了| 精品人妻一区二区三区视频| 欧美性爱18观看| 欧美97在线观看| 性饥渴少妇av无码毛片| 麻豆精品A片免费观看| 激情小说图片亚洲首页| 夜夜操av亚洲一区二区| 人妻少妇久久中文字幕一区二区 麻豆 | 日韩啪啪视频| 少妇二级| 久久久久少妇| 开心六月色| 精品国产91av一区二区三区| 330dv亚洲成年视频网| 国产日韩欧美亚洲精品95| 91精品国产乱码| 国产中文字幕曰本毛片| 人妻另类| 欧美日韩99精品麻豆传媒| 91色色网站| 国产超碰在线一区| 91在线视频观看国产| 91黑丝操| 五月天婷婷基地| 97精品免费视频网站| 欧美性爱一内片一区二区三区| 思思久热在线精品66| 欧美久久婷婷| 亚洲成熟国产精品美女| 男生通女生屁股| 久久久一区二区三区四曲免费听| 91综合色噜噜| 狠狠躁天天躁日日躁| 亚洲αv一区二区三区| 天天影视综合色| 亚殴在线| 亚洲国产奇米影视久久| 亚洲资源吧| 九久久九精品视频| 午夜120视频在线观看| 高清无码91| 欧美成人亚洲精品| 日亚韩精品视频二区三| 91性片| 人人澡综合涩| 乱老女人一区二区视频| dy888午夜老子影视达达兔| 99色婷婷中文字幕乱色| 国产又色又爽又舒服的三级视频| 欧美高清色| 热久久99999| 人妻人人操| A片大香蕉在线| #NAME?| 亚洲欧美中日韩| 欧亚性爱视频免费看| 九九九精品| 日本中文字幕熟妇| 欧美中文字幕男人天堂久久精品 | 国产女性无套 免费观看| 亚洲国产熟妇综合色专区| 亚洲 另类 丝袜 自拍 动漫| 欧美在线视频99| 中国一级操逼视频| 熟女精品日韩一区二区三区| 天天天天天超碰| 理论久久婷婷网 8| 丰满高潮18xxxx| 亚洲春色一区二区三区| 人妻少妇精品无码专区二区密桃| 亚洲影院小综合| 狠狠操狠狠| 午夜福利精品| 内射小黄片| 久久久久99999| av草草在线电影| 青青草伊人久久| 久久天堂婷婷网| 久草免费在线一区二区| 在线中文字幕| 男人在线天堂| 青草地一本线一区二区三区| 劲爆欧美人妖三区91| 爱干爱射网啊啊啊| 超碰79人人乐| 六月婷婷激情| 久操热线| aaaa少妇高潮大片| 久久久亚洲高清不打码| 亚洲一卡二卡在线免费| 亚洲精品97| 久久久偷拍| 青青草在线视频美女| 美女干逼2| 欧美色997| 宅男91视频在线播放| 天天日天天色| 久久激情综合| 蜜乳av首页| 人妻精品视频一区二区| 欧美丝袜制服久久| 午夜爽爽爽在线观看永久入口姬片| a片久久久久久久久久久久 | 思思性爱| 风流老熟女一区二区三区l| 超碰无码加勒比| 操婢日韩| 中文字幕一区二区日韩网| 成人午夜高潮av猛片| 欲香欲色| 最新无码国产| 欧美日韩国产成人高清| 性色AV蜜色av色欲av| 黄片视频观看| 欧美性生活男人的天堂| 亚洲av综合伊人久久| 国产精品久久久久无码Av网曝门| 老司机午夜精品视频| 天天夜躁日日躁狠狠2002| 97久久久| 欧美日韩性爱电影在线| 超碰无码加勒比| 久久久久免费看少妇A片特黄| 久久男人精品| 日本性爱不卡视频| 免费看日产一区二区三区| 综合网色| 超碰三级秋霞| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 日本媚薬中文字幕在线| 夜夜爽夜夜操| 我要去看2个日本美女.com曹逼| 无码高清操逼| 无码一区二区精品视频久久久春药| 日韩性爱免费观看视频| 中文字幕一区电影在线观看| 91干熟女| 性色一线| 色噜噜人妻丝袜AV资源| 好爽免费视频,| 婷婷10月天青娱乐| 少妇久久| 操逼免费视频无码国产| 男人的天堂一区三区| 日本超碰在线国产一区| 伊人久久国产免费观看视频| 操死我了嗯嗯嗯| 超碰97综合网| 青娱乐国产剧情av一区| 久久男人精品| 美日韩成人| 亚洲人妻熟妇三十三区| AV天黑人| 久久只有精品| 日韩激情中文字幕有码| 国产伦精品一区二区三区视频女| 亚洲国产一级中文综合久久天堂在线免费观看 | 欧美强奸一区二区诱惑| 中出91| 亚州综合AⅤ| 国产嫩草精品A88AV| 91AV入口| 91人妻Pr| 婷婷另类小说| 精品人妻一区二区三区不卡断 | 99国产在线 精品 视频| www色色com| 国产亚洲色婷婷99精品91| 超碰久超碰久| 2017人人操,人人摸| 久久久久久国产精品| 好屌色综合| 丰满人妻一区二区三区色-百度| 欧美另类精品xxxx| 色妹子A V| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 狠狠搞 亚洲91| 成人草草视频| 亚洲国产成人福利在线观看| 狼天天狼天天大香蕉| 怡红院亚洲怡春院av| 欧美性爱第一页久久| 操碰97| 国产情色在线| 丰满美女一级毛片在线播放| 国产免费一区二区在线A片视频| 少妇69中文| 碰碰97| 丁香五月影院| 91国精产品| 翔田千里爆乳巨臀无码| 女同在线视频一区| 欧美色图99| 脫衣舞一区二区三区| 国产精品制服丝袜中文字幕日韩一区二区三区| 999 久久久| 成人小说另类在线| 淮穴色AV| 粉嫩av一区二区三区天美传媒 | 综合影院永久入口国产| 黄污污污污| 亚洲第一页色网| 免费的黄片wwwwww| 老女人91| 无码WWW免费视频网站| 夜夜国产一区| 影音先锋每日最新资源在线观看| 加勒比无码一区二区三区| 后入综合久久| 国产呦精品一区二区三区下载| 99只有精品| 日韩操逼HD| 精品乱码久久久久| 青青青国产手线观看视频2| 中文字幕精品人妻丝袜| 久久国产成人精品国产成人亚洲| 男人天堂久久精品| 日本男人天堂| 少妇二级| 国产精品女aA片爽爽视频| 天天射网| 婷婷婷婷婷婷久久久久| 99久久这里只有精品| 99人妻| 厕所偷拍在线| 五月丁香六月综合缴清无码 | 混色激情av| 日韩成人高清一区二区| 少妇毛片久久| 在线观看一级α片刺激高潮视频| 男人的天堂2018.| 91看黄片| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 午夜婷婷| 69精品| 狼人综合婷婷激情四射| 国产又粗又大硬免费色网视频| 肉丝网站91| 家庭乱伦国产| 人妻天天爽| 丁香五月自拍| 中文字幕乱码在线| 精品国产一区二区三区久久久蜜臀 | 一区二区影视| 国产精品经典一卡久久久| 无码区蜜乳| 亚洲亚洲亚洲天堂天堂| 日本色婷婷| 污色区网站| 九九九九九九九九九九九九九九九女| 久久性爱网站| 999热这里只有精品| 日本三级小说中文字幕| 日韩亚洲精品一区二区| 一本大道久| 欧美大码在线视频| 一级毛片久久久久久久女人18| 成人欧美日超碰| 九月丁香婷婷| 手机在线免费看的av| 久久99深爱久久99精品| 狠狠色丁香| 国产兽交视频在线播放| 综合大香蕉美。| 欧美三级一级| 中国东北熟女老太婆内谢| 不卡二三区人妻少妇| 超碰人妻久久人妻中文97| 97任你吞精| 日韩欧美性吧婷婷乱伦大香蕉| 久久久久久久久久久久久久久久9| 亚洲AV无码乱码在线观看性色| 麻豆天美91| 五月天欧美色图| 91肏屄网| 亚洲最大网站av| 天天草天天日| 蜜桃香蕉久草精品在线| 狠狠搞 亚洲91| 色婷婷色99国产综合精品| 99亚洲国产精品色一区二区三区| 欧亚日本情色| 懂色AV中文| 天天做天天爱| 国产亚洲中文不卡二区| 超碰97护士| 人妻色情天天操| 97天天综合网| 91美女丝袜诱惑视频| 综合五月婷婷亚洲一区| 国产精品96| 亚洲做性| 我中文字幕6区 | 午夜男女爽爽爽在线视频| 国产精品白丝在线播放| 日韩97在线| 91激情国产| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 久久久久久久综合,国产| 熟女一区二区| 亚洲第一页色| 国产精品视频精品一二| 日韩人妻一二三区视频| 老熟妇乱轮| 亚洲情色 欧美| 曰本特级特黄特色黄色A级网站高清在线免费看| 天天插天天射| 精品久久人妻成人网| 久久久久亚洲av综合波多野制衣| 97亚洲欧美| 97欧美日韩综合| 欧美综合色综合| 青青青艹在线视频| 操B久久| 精品熟女一区=区三区| 久久精彩视频| 日本女人操逼| 8050午夜少妇无码| 黑人操一区二区| 欧美丰满少妇xx高潮| 九九精品无码专区免费| 大JI巴好深好爽又大又粗视频| 久久久91| 78精品| 欧美日韩亚洲天堂| 精品国产乱码久久久A| 亚洲久久天堂| 欧美综色欧| 久久久久女教师免费一区 | 国产9熟妇视频网站| 国产中文字幕在线观看| 亚洲人精品午夜不卡| 欧美国产操逼| 熟女久久久| 五十路成人在线视频二区三区| 十八禁一区二区无码观看| 老司机午夜福利视频一区二区| 日韩78m视频| 日韩欧美偷拍美女视频| 在线一区| 成人精品水蜜桃久久久久久久| 欧美骚少妇| 中日韩久久久免费看| 99只有精品| 亚洲欧美日韩制服另类| 欧美色狠| 免费人成毛片乱码| 欧美不卡在线一区二区| 午夜福利1区2区3区| 巨爆乳一区二区爆乳区| 亚一综合久久久久久久久久| 美国aaaaa一级黄片| 自拍偷拍2025在线观看| 五月香婷婷| 精品久久久九九九孕妇| 中文字幕精品丝袜| 九九夜精品九九在线| 久久精品视| 中文字幕一区二区三区人妻不卡 | 狠色婷婷久久一区二区三区_| 国产久久男人天堂| 亚州五月| 中文字幕一二三| 麻豆视频国产一区二区| 超碰人妻天天干| 青青草丝袜在线视频| 日本人体九九九九九九| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 久草大| 亚洲天堂人妻一区二区| 物尤视频一区二区| 少妇久久久免费| 伊人九九九| 亚洲无码成人精品| 色综合网1| 91丝袜美女| 久久骚| 91bbb| 天天看天天在线精品| 120分钟婬片免费看| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 超碰在线人妻不卡| 福利五区| 五月天婷婷在线看| 自慰白浆在线观看|