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

ARTICLE DETAIL

資訊詳情

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

UART回環(huán)測(cè)試:從原理到實(shí)戰(zhàn),嵌入式通信調(diào)試的基石

UART回環(huán)測(cè)試:從原理到實(shí)戰(zhàn),嵌入式通信調(diào)試的基石 1. 項(xiàng)目概述從“回環(huán)測(cè)試”理解UART通信的本質(zhì)搞嵌入式開發(fā)或者玩單片機(jī)的朋友對(duì)“串口”這個(gè)詞一定不陌生。它就像設(shè)備之間最基礎(chǔ)的“對(duì)話”通道調(diào)試信息輸出、固件升級(jí)、模塊間數(shù)據(jù)交換都離不開它。而“回環(huán)測(cè)試”則是檢驗(yàn)這條通道是否暢通、協(xié)議理解是否正確的黃金標(biāo)準(zhǔn)。簡單說就是自己發(fā)送數(shù)據(jù)給自己接收看看數(shù)據(jù)是否“原封不動(dòng)”地回來。這聽起來簡單但背后涉及硬件連接、電平匹配、波特率設(shè)置、數(shù)據(jù)幀解析等一系列關(guān)鍵點(diǎn)。一個(gè)穩(wěn)定的回環(huán)測(cè)試是后續(xù)所有復(fù)雜串口應(yīng)用如與傳感器、藍(lán)牙/Wi-Fi模塊、上位機(jī)軟件通信的基石。無論你是剛接觸STM32、ESP32的新手還是在調(diào)試FPGA邏輯或Linux驅(qū)動(dòng)掌握UART回環(huán)測(cè)試就等于握住了打開串口世界大門的鑰匙。2. UART通信核心原理與回環(huán)測(cè)試設(shè)計(jì)思路2.1 UART協(xié)議幀結(jié)構(gòu)拆解不止是0和1很多人以為串口通信就是簡單地發(fā)0和1其實(shí)不然。UART通用異步收發(fā)傳輸器協(xié)議定義了一個(gè)完整的、自包含的數(shù)據(jù)幀結(jié)構(gòu)確保在沒有時(shí)鐘線的情況下收發(fā)雙方也能正確同步并識(shí)別數(shù)據(jù)。一個(gè)典型的UART數(shù)據(jù)幀包含以下部分起始位一個(gè)邏輯低電平通常為0標(biāo)志著數(shù)據(jù)幀的開始。這是同步的關(guān)鍵接收端檢測(cè)到這個(gè)下降沿就開始準(zhǔn)備采樣后續(xù)的數(shù)據(jù)位。數(shù)據(jù)位緊接著起始位通常是5到9位常見為8位代表實(shí)際傳輸?shù)臄?shù)據(jù)一個(gè)字節(jié)。數(shù)據(jù)位是從最低有效位LSB開始發(fā)送的。校驗(yàn)位可選位用于簡單的錯(cuò)誤檢測(cè)。可以是奇校驗(yàn)、偶校驗(yàn)或無校驗(yàn)。發(fā)送方會(huì)根據(jù)數(shù)據(jù)位計(jì)算并附加這一位接收方進(jìn)行校驗(yàn)以判斷傳輸過程中是否可能發(fā)生了單比特錯(cuò)誤。停止位1位、1.5位或2位的高電平標(biāo)志著一幀數(shù)據(jù)的結(jié)束。它為接收端提供緩沖時(shí)間以準(zhǔn)備接收下一幀的起始位。理解這個(gè)幀結(jié)構(gòu)至關(guān)重要。在進(jìn)行回環(huán)測(cè)試時(shí)你發(fā)送的每一個(gè)字節(jié)都會(huì)被封裝成這樣的幀。如果收發(fā)雙方的幀格式配置不一致比如一個(gè)設(shè)了8位數(shù)據(jù)位無校驗(yàn)另一個(gè)設(shè)了9位數(shù)據(jù)位偶校驗(yàn)?zāi)敲醇词刮锢砭€路連通接收到的也只會(huì)是亂碼。這常常是新手最容易踩的坑。2.2 波特率通信的“節(jié)奏大師”波特率Baud Rate指的是每秒傳輸?shù)姆?hào)數(shù)在UART中一個(gè)符號(hào)就是一個(gè)比特位。因此常見的9600、115200等波特率直接決定了數(shù)據(jù)傳輸?shù)乃俣?。收發(fā)雙方的波特率必須嚴(yán)格一致誤差需要控制在極小的范圍內(nèi)通常要求誤差小于2%否則采樣點(diǎn)會(huì)逐漸漂移導(dǎo)致數(shù)據(jù)錯(cuò)位。為什么是115200這么奇怪的數(shù)字這和歷史與時(shí)鐘分頻有關(guān)。很多微控制器的系統(tǒng)時(shí)鐘如8MHz、72MHz經(jīng)過分頻后可以較精確地產(chǎn)生115200的波特率。在進(jìn)行回環(huán)測(cè)試時(shí)我強(qiáng)烈建議從較低的波特率如9600開始測(cè)試因?yàn)榈筒ㄌ芈蕦?duì)時(shí)鐘精度要求低更穩(wěn)定。確認(rèn)通信正常后再逐步提高波特率進(jìn)行壓力測(cè)試觀察在高速率下是否會(huì)出現(xiàn)丟數(shù)據(jù)或誤碼的情況。這是一個(gè)非常實(shí)用的排查順序。2.3 回環(huán)測(cè)試的兩種經(jīng)典模式回環(huán)測(cè)試的設(shè)計(jì)思路主要分為兩種對(duì)應(yīng)不同的測(cè)試目的硬件回環(huán)這是最直接的方式。將設(shè)備UART模塊的發(fā)送引腳TX和接收引腳RX用杜邦線直接短接。這樣單片機(jī)程序發(fā)送的任何數(shù)據(jù)都會(huì)立刻從TX引腳發(fā)出經(jīng)由短線進(jìn)入RX引腳被自己接收。這種模式純粹測(cè)試UART控制器本身和驅(qū)動(dòng)程序是否工作正常完全排除了外部設(shè)備的影響。在STM32CubeMX或ESP-IDF中初始化好UART后寫一個(gè)發(fā)送字符串并等待接收的程序如果能在接收緩沖區(qū)里看到自己發(fā)出的字符串就證明芯片的UART外設(shè)和你的底層配置是OK的。軟件回環(huán)這種方式不依賴物理短接而是在驅(qū)動(dòng)層或應(yīng)用層實(shí)現(xiàn)。當(dāng)發(fā)送函數(shù)被調(diào)用時(shí)數(shù)據(jù)并不真正從TX引腳發(fā)出而是被直接“繞”到接收緩沖區(qū)或一個(gè)特定的回調(diào)函數(shù)。很多操作系統(tǒng)的串口驅(qū)動(dòng)或高級(jí)框架如Linux的tty層、某些MCU的HAL庫調(diào)試模式都支持軟件回環(huán)。這種模式主要用于測(cè)試應(yīng)用程序的數(shù)據(jù)處理邏輯、協(xié)議解析代碼是否正確而無需關(guān)心物理電平轉(zhuǎn)換。例如在編寫一個(gè)復(fù)雜的Modbus RTU協(xié)議棧時(shí)可以先在軟件回環(huán)模式下測(cè)試所有功能再接入實(shí)際的RS485硬件電路。注意硬件回環(huán)時(shí)務(wù)必不要在短接TX和RX的同時(shí)還將它們連接到其他有源設(shè)備如USB轉(zhuǎn)串口模塊。這可能會(huì)因?yàn)殡娖經(jīng)_突損壞IO口。最安全的做法是在測(cè)試時(shí)僅連接TX和RX并將其他所有連線斷開。3. 實(shí)戰(zhàn)在不同平臺(tái)實(shí)現(xiàn)UART回環(huán)測(cè)試3.1 基于STM32與HAL庫的硬件回環(huán)我們以常見的STM32F103C8T6藍(lán)橋杯單片機(jī)和STM32CubeMX工具為例。步驟一CubeMX工程配置新建工程選擇你的芯片型號(hào)。在Pinout Configuration標(biāo)簽頁找到你需要使用的USART例如USART1。將模式Mode設(shè)置為“Asynchronous”異步通信。在參數(shù)設(shè)置Parameter Settings中配置波特率Baud Rate為115200字長Word Length為8位停止位Stop Bits為1校驗(yàn)位Parity為None硬件流控制Hardware Flow Control為Disable。使能全局中斷NVIC Settings中勾選USART1全局中斷這樣我們可以用中斷方式接收數(shù)據(jù)提高效率。生成代碼。步驟二編寫回環(huán)測(cè)試代碼在生成的工程中我們主要修改main.c。/* 在私有變量定義區(qū)域 */ uint8_t tx_buffer[] Hello UART Loopback!\r\n; // 要發(fā)送的數(shù)據(jù)加回車換行便于觀察 uint8_t rx_buffer[64]; // 接收緩沖區(qū) uint16_t rx_index 0; // 接收緩沖區(qū)的寫入索引 /* 在main函數(shù)初始化部分后 */ HAL_UART_Receive_IT(huart1, rx_buffer, 1); // 啟動(dòng)中斷接收每次接收1個(gè)字節(jié) /* 主循環(huán)中 */ while (1) { // 每隔1秒發(fā)送一次數(shù)據(jù) HAL_UART_Transmit(huart1, tx_buffer, sizeof(tx_buffer)-1, 1000); HAL_Delay(1000); // 接收到的數(shù)據(jù)處理可以放在中斷回調(diào)函數(shù)中 } /* 重寫中斷接收完成回調(diào)函數(shù) */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart-Instance USART1) { // 將接收到的字節(jié)回顯通過串口助手查看或進(jìn)行比對(duì) // 這里簡單地將接收到的字符再發(fā)送出去形成“軟件硬件”雙重回環(huán)效果 HAL_UART_Transmit(huart1, rx_buffer[rx_index], 1, 50); // 處理接收到的數(shù)據(jù)例如判斷是否是回車符等此處簡化 rx_index (rx_index 1) % sizeof(rx_buffer); // 重新啟動(dòng)中斷接收等待下一個(gè)字節(jié) HAL_UART_Receive_IT(huart1, rx_buffer[rx_index], 1); } }步驟三硬件連接與測(cè)試用一根杜邦線將芯片USART1的TX引腳PA9和RX引腳PA10短接。通過ST-Link或其他調(diào)試器將程序下載到單片機(jī)并供電。為了觀察效果我們還可以將單片機(jī)通過USB轉(zhuǎn)TTL模塊如CH340、CP2102連接到電腦。但此時(shí)必須斷開PA9和PA10的短接線并將PA9接模塊的RXPA10接模塊的TX。打開串口助手如XCOM、Putty設(shè)置相同的波特率參數(shù)你將會(huì)看到單片機(jī)不斷發(fā)送“Hello UART Loopback!”并且每收到一個(gè)字符來自串口助手就立即回顯一個(gè)字符。實(shí)操心得使用HAL庫的中斷接收時(shí)一定要在回調(diào)函數(shù)末尾重新調(diào)用HAL_UART_Receive_IT來開啟下一次接收否則只會(huì)接收一次。這是新手常忘的一步。另外對(duì)于高速或大數(shù)據(jù)量通信建議使用DMA模式可以極大減輕CPU負(fù)擔(dān)。STM32CubeMX也能很方便地配置UART DMA。3.2 在Linux環(huán)境下使用C語言進(jìn)行串口回環(huán)在Linux中串口設(shè)備被抽象為/dev/ttyUSB0USB轉(zhuǎn)串口或/dev/ttyS0硬件串口等文件。我們可以用標(biāo)準(zhǔn)的文件IO操作來讀寫它。步驟一打開并配置串口關(guān)鍵點(diǎn)在于使用termios結(jié)構(gòu)體進(jìn)行復(fù)雜的參數(shù)配置。#include stdio.h #include string.h #include unistd.h #include fcntl.h #include termios.h int serial_fd; int uart_init(const char *device, int baudrate) { serial_fd open(device, O_RDWR | O_NOCTTY | O_NDELAY); if (serial_fd 0) { perror(Unable to open serial port); return -1; } struct termios options; tcgetattr(serial_fd, options); // 設(shè)置波特率 cfsetispeed(options, baudrate); cfsetospeed(options, baudrate); // 8位數(shù)據(jù)位無校驗(yàn)1位停止位 options.c_cflag ~PARENB; options.c_cflag ~CSTOPB; options.c_cflag ~CSIZE; options.c_cflag | CS8; // 關(guān)閉硬件流控 options.c_cflag ~CRTSCTS; // 啟用接收忽略調(diào)制解調(diào)器狀態(tài)線 options.c_cflag | CREAD | CLOCAL; // 關(guān)閉規(guī)范輸入和回顯原始模式 options.c_lflag ~(ICANON | ECHO | ECHOE | ISIG); // 關(guān)閉軟件流控 options.c_iflag ~(IXON | IXOFF | IXANY); // 原始輸出 options.c_oflag ~OPOST; // 設(shè)置最小字符數(shù)和等待時(shí)間 options.c_cc[VMIN] 1; // 阻塞直到讀取到1個(gè)字符 options.c_cc[VTIME] 10; // 超時(shí)時(shí)間1秒單位是0.1秒 // 立即應(yīng)用配置 if (tcsetattr(serial_fd, TCSANOW, options) ! 0) { perror(Error setting serial attributes); return -1; } tcflush(serial_fd, TCIOFLUSH); // 清空輸入輸出緩沖區(qū) return 0; }步驟二實(shí)現(xiàn)回環(huán)邏輯我們可以用一個(gè)簡單的循環(huán)讀取串口數(shù)據(jù)并立即寫回。void loopback_test() { char buffer[256]; ssize_t bytes_read; printf(Starting UART loopback test. Press CtrlC to exit.\n); while (1) { bytes_read read(serial_fd, buffer, sizeof(buffer) - 1); if (bytes_read 0) { buffer[bytes_read] \0; // 添加字符串結(jié)束符 printf(Received %zd bytes: %s\n, bytes_read, buffer); // 打印到控制臺(tái) // 關(guān)鍵的回環(huán)操作將收到的數(shù)據(jù)原樣寫回 write(serial_fd, buffer, bytes_read); } else if (bytes_read 0) { // 非阻塞模式下可能返回EAGAIN這里簡單處理 usleep(10000); // 睡眠10ms避免忙等待 } } } int main() { if (uart_init(/dev/ttyUSB0, B115200) 0) { loopback_test(); close(serial_fd); } return 0; }步驟三測(cè)試方法編譯上述代碼gcc -o uart_loopback uart_loopback.c。將兩個(gè)USB轉(zhuǎn)TTL模塊的TX和RX交叉相連即A的TX接B的RXA的RX接B的TXGND相接。兩個(gè)模塊分別插入電腦的兩個(gè)USB口假設(shè)生成/dev/ttyUSB0和/dev/ttyUSB1。在一個(gè)終端運(yùn)行本回環(huán)程序指定設(shè)備為/dev/ttyUSB0sudo ./uart_loopback可能需要root權(quán)限操作串口。在另一個(gè)終端使用screen或minicom等工具打開另一個(gè)串口sudo screen /dev/ttyUSB1 115200。在screen會(huì)話中鍵入字符你會(huì)看到字符被回顯回來。同時(shí)第一個(gè)終端的程序也會(huì)打印出接收到的內(nèi)容。注意事項(xiàng)Linux下串口設(shè)備的權(quán)限問題很常見??梢耘R時(shí)用sudo或者將用戶加入dialout組sudo usermod -a -G dialout $USER然后注銷重新登錄。termios配置復(fù)雜務(wù)必仔細(xì)檢查每個(gè)標(biāo)志位特別是VMIN和VTIME的組合它們決定了read函數(shù)的阻塞行為。3.3 使用Python與pyserial進(jìn)行快速驗(yàn)證對(duì)于快速原型驗(yàn)證或自動(dòng)化測(cè)試Python是絕佳選擇。pyserial庫讓串口操作變得極其簡單。安裝與基礎(chǔ)回環(huán)腳本pip install pyserialimport serial import time import threading def serial_loopback(port, baudrate): try: # 打開串口設(shè)置超時(shí)時(shí)間 with serial.Serial(port, baudrate, timeout1) as ser: print(fLoopback test started on {port} at {baudrate} baud.) print(Type exit to quit.) # 啟動(dòng)一個(gè)線程來持續(xù)讀取串口數(shù)據(jù)并打印 def read_from_serial(): while True: if ser.in_waiting: received_data ser.read(ser.in_waiting) try: text received_data.decode(utf-8, errorsignore) print(fReceived: {text}, end) # 關(guān)鍵回環(huán)操作將收到的數(shù)據(jù)原樣寫回 ser.write(received_data) except Exception as e: print(fDecode error: {e}) reader_thread threading.Thread(targetread_from_serial, daemonTrue) reader_thread.start() # 主線程可以用于從控制臺(tái)發(fā)送數(shù)據(jù)可選 while True: user_input input() if user_input.lower() exit: break ser.write((user_input \n).encode()) except serial.SerialException as e: print(fError opening serial port: {e}) except KeyboardInterrupt: print(\nExiting...) if __name__ __main__: # 修改為你的串口設(shè)備名和波特率 serial_loopback(/dev/ttyUSB0, 115200)更高級(jí)的自動(dòng)化測(cè)試腳本我們可以編寫一個(gè)腳本自動(dòng)發(fā)送一系列測(cè)試數(shù)據(jù)包并驗(yàn)證接收到的數(shù)據(jù)是否一致。import serial import time import random import string def automated_loopback_test(port, baudrate, test_iterations100): ser serial.Serial(port, baudrate, timeout2) passed 0 failed 0 for i in range(test_iterations): # 生成隨機(jī)長度的測(cè)試數(shù)據(jù) length random.randint(1, 100) test_data .join(random.choices(string.ascii_letters string.digits, klength)).encode() ser.write(test_data) time.sleep(0.05) # 給回環(huán)一點(diǎn)時(shí)間 received ser.read_all() if test_data received: passed 1 print(fIteration {i1}: PASSED (Length: {length})) else: failed 1 print(fIteration {i1}: FAILED! Sent: {test_data}, Received: {received}) ser.close() print(f\nTest Complete. Passed: {passed}, Failed: {failed}, Success Rate: {(passed/test_iterations)*100:.2f}%) # 運(yùn)行測(cè)試 automated_loopback_test(COM3, 115200, 50)實(shí)操心得Python腳本非常適合進(jìn)行壓力測(cè)試和邊界測(cè)試。比如你可以測(cè)試發(fā)送大量數(shù)據(jù)、發(fā)送包含特殊字符如0x00, 0xFF的數(shù)據(jù)、快速連續(xù)發(fā)送數(shù)據(jù)等場(chǎng)景觀察回環(huán)是否穩(wěn)定。pyserial的read_all()會(huì)讀取緩沖區(qū)中的所有數(shù)據(jù)在回環(huán)測(cè)試中很好用但在實(shí)際與外部設(shè)備通信時(shí)通常需要根據(jù)協(xié)議定義的消息頭尾或長度來解析數(shù)據(jù)幀。4. 回環(huán)測(cè)試中的深度問題排查與性能優(yōu)化4.1 常見故障現(xiàn)象與診斷清單即使是最簡單的回環(huán)也可能遇到各種問題。下面是一個(gè)快速診斷表現(xiàn)象可能原因排查步驟完全無數(shù)據(jù)收發(fā)1. 物理連接錯(cuò)誤TX/RX接反或未接。2. 串口設(shè)備未正確識(shí)別或驅(qū)動(dòng)未安裝。3. 代碼中串口未使能或初始化失敗。4. 波特率等參數(shù)設(shè)置錯(cuò)誤。1. 用萬用表通斷檔檢查TX-RX是否短接良好。2. 檢查設(shè)備管理器Windows或ls /dev/tty*Linux確認(rèn)設(shè)備存在。3. 在MCU代碼中檢查初始化函數(shù)的返回值添加調(diào)試打印。4. 使用邏輯分析儀或示波器測(cè)量TX引腳波形核對(duì)波特率。收到亂碼1.波特率不匹配最常見。2. 數(shù)據(jù)位、停止位、校驗(yàn)位設(shè)置不一致。3. 電平不匹配如3.3V與5V系統(tǒng)直接相連。4. 外部干擾嚴(yán)重。1. 雙方嚴(yán)格核對(duì)波特率嘗試更換為標(biāo)準(zhǔn)波特率如9600。2. 雙方嚴(yán)格核對(duì)幀格式。3. 確認(rèn)雙方邏輯電平標(biāo)準(zhǔn)必要時(shí)使用電平轉(zhuǎn)換芯片如TXB0108。4. 縮短連線使用雙絞線遠(yuǎn)離強(qiáng)干擾源。數(shù)據(jù)丟失或截?cái)?. 接收緩沖區(qū)溢出。2. 發(fā)送速度過快接收方處理不過來。3. 使用了阻塞式發(fā)送且超時(shí)時(shí)間太短。4. 硬件流控啟用但未連接。1. 增大接收緩沖區(qū)大小。2. 在發(fā)送間增加延時(shí)或改用中斷/DMA接收。3. 檢查發(fā)送函數(shù)的超時(shí)參數(shù)設(shè)為HAL_MAX_DELAY或合理值。4. 確認(rèn)是否需禁用硬件流控RTS/CTS。只能收到部分字符或第一個(gè)字符1. 中斷或DMA接收未正確重新使能STM32 HAL庫常見。2. 接收回調(diào)函數(shù)處理時(shí)間過長錯(cuò)過了后續(xù)數(shù)據(jù)。1. 確保在接收完成回調(diào)函數(shù)末尾重新調(diào)用接收函數(shù)如HAL_UART_Receive_IT。2. 優(yōu)化回調(diào)函數(shù)僅做最必要的操作如置標(biāo)志、拷貝數(shù)據(jù)主循環(huán)處理業(yè)務(wù)邏輯?;丨h(huán)數(shù)據(jù)有重復(fù)或錯(cuò)位1. 軟件回環(huán)邏輯錯(cuò)誤導(dǎo)致數(shù)據(jù)被多次寫入發(fā)送隊(duì)列。2. 硬件上有干擾產(chǎn)生錯(cuò)誤起始位導(dǎo)致誤觸發(fā)接收。1. 仔細(xì)檢查代碼邏輯確保一次接收只觸發(fā)一次發(fā)送。2. 在TX/RX線上串聯(lián)一個(gè)小電阻如22-100歐姆或在引腳加對(duì)地小電容10-100pF濾除毛刺。4.2 使用邏輯分析儀進(jìn)行底層信號(hào)分析當(dāng)軟件排查無法解決問題時(shí)硬件工具是終極手段。一個(gè)幾十塊錢的USB邏輯分析儀配合PulseView或Saleae Logic軟件可以讓你直觀地看到TX/RX線上的每一位數(shù)據(jù)。連接將邏輯分析儀的通道0和通道1分別連接到被測(cè)設(shè)備的TX和RX引腳并共地。設(shè)置打開軟件設(shè)置合適的采樣率對(duì)于115200波特率設(shè)置2M以上采樣率足夠添加異步串口解碼器。觸發(fā)與解碼設(shè)置解碼器參數(shù)波特率、數(shù)據(jù)位等然后開始采集。你發(fā)送數(shù)據(jù)后可以在波形上看到清晰的起始位、數(shù)據(jù)位和停止位。解碼器會(huì)直接將二進(jìn)制數(shù)據(jù)翻譯成十六進(jìn)制或ASCII字符顯示出來。分析看波形是否干凈上升/下降沿是否陡峭有無明顯毛刺或振鈴測(cè)量波特率軟件可以測(cè)量兩個(gè)下降沿起始位之間的時(shí)間換算成實(shí)際波特率看是否與設(shè)定值相符。核對(duì)數(shù)據(jù)直接對(duì)比發(fā)送的數(shù)據(jù)和解碼出的數(shù)據(jù)是否一致。通過邏輯分析儀你可以確認(rèn)信號(hào)是否真的發(fā)出去了波形質(zhì)量如何實(shí)際波特率是多少數(shù)據(jù)內(nèi)容是否正確這能從根本上區(qū)分是軟件配置問題還是硬件信號(hào)完整性問題。4.3 從回環(huán)到實(shí)戰(zhàn)流控與錯(cuò)誤處理回環(huán)測(cè)試環(huán)境理想但真實(shí)世界充滿挑戰(zhàn)。兩個(gè)重要的進(jìn)階概念是流控和錯(cuò)誤處理。硬件流控RTS/CTS當(dāng)接收方緩沖區(qū)快滿時(shí)通過拉低CTS信號(hào)告訴發(fā)送方“暫停發(fā)送”當(dāng)緩沖區(qū)有空閑時(shí)再拉高CTS告知“可以繼續(xù)”。發(fā)送方則用RTS信號(hào)來指示自己是否準(zhǔn)備好接收。在高速或大數(shù)據(jù)量傳輸如通過串口傳輸文件時(shí)啟用硬件流控能有效防止數(shù)據(jù)丟失。在回環(huán)測(cè)試中你可以嘗試短接RTS和CTS來模擬流控過程測(cè)試驅(qū)動(dòng)是否支持。軟件流控XON/XOFF通過發(fā)送特殊的控制字符XON0x11, XOFF0x13來實(shí)現(xiàn)流量控制。現(xiàn)在較少使用。錯(cuò)誤處理成熟的串口通信程序必須考慮錯(cuò)誤。UART硬件通常能檢測(cè)到以下錯(cuò)誤幀錯(cuò)誤未檢測(cè)到有效的停止位。可能是波特率嚴(yán)重失配或噪聲干擾。溢出錯(cuò)誤接收緩沖區(qū)已滿新數(shù)據(jù)到來導(dǎo)致舊數(shù)據(jù)被覆蓋。說明接收處理太慢。噪聲錯(cuò)誤某些MCU在采樣點(diǎn)檢測(cè)到意外的電平變化。校驗(yàn)錯(cuò)誤如果使能了奇偶校驗(yàn)計(jì)算結(jié)果不匹配。在STM32的HAL庫中你可以通過HAL_UART_GetError()函數(shù)獲取錯(cuò)誤標(biāo)志并在錯(cuò)誤回調(diào)函數(shù)HAL_UART_ErrorCallback()中進(jìn)行處理比如清空緩沖區(qū)、重新初始化串口等。在回環(huán)測(cè)試代碼中可以故意設(shè)置錯(cuò)誤的波特率或幀格式來觸發(fā)這些錯(cuò)誤并測(cè)試你的錯(cuò)誤處理機(jī)制是否健壯。5. 超越基礎(chǔ)回環(huán)測(cè)試在復(fù)雜系統(tǒng)中的應(yīng)用掌握了基本的回環(huán)我們可以將其思想應(yīng)用到更復(fù)雜的場(chǎng)景中。5.1 多路UART并發(fā)通信的測(cè)試像STM32F407這類擁有多個(gè)UART接口的MCU可能同時(shí)需要與GPS模塊、4G模塊、調(diào)試終端通信。如何測(cè)試它們的并發(fā)性能你可以設(shè)計(jì)一個(gè)“交叉回環(huán)”測(cè)試將UART1的TX接到UART2的RXUART2的TX接到UART1的RX。然后編寫程序讓兩個(gè)串口同時(shí)以高波特率如921600互相發(fā)送和接收大數(shù)據(jù)塊。通過檢查接收數(shù)據(jù)的完整性和正確性可以壓力測(cè)試DMA控制器、總線帶寬以及你的多任務(wù)調(diào)度程序如果使用了RTOS的穩(wěn)定性。這能暴露出在單一串口測(cè)試中無法發(fā)現(xiàn)的問題比如總線仲裁延遲、DMA通道沖突等。5.2 驅(qū)動(dòng)與固件開發(fā)的調(diào)試?yán)髟陂_發(fā)USB轉(zhuǎn)串口芯片如FT232R, CP2102的驅(qū)動(dòng)或者編寫虛擬串口如STM32的USB CDC固件時(shí)回環(huán)測(cè)試是核心驗(yàn)證手段。驅(qū)動(dòng)安裝驗(yàn)證安裝完FT232R或CP2102N的驅(qū)動(dòng)后最簡單的驗(yàn)證方法就是短接其TX和RX引腳然后用串口助手發(fā)送數(shù)據(jù)。如果能收到相同的數(shù)據(jù)證明驅(qū)動(dòng)安裝成功設(shè)備工作正常。這也是為什么這些驅(qū)動(dòng)安裝教程常以回環(huán)測(cè)試作為最后一步。虛擬串口固件測(cè)試在STM32上實(shí)現(xiàn)USB CDC通信設(shè)備類功能讓電腦將其識(shí)別為一個(gè)虛擬COM口。在固件中你可以將USB接收到的數(shù)據(jù)通過UART轉(zhuǎn)發(fā)給另一個(gè)硬件串口同時(shí)又將該硬件串口接收的數(shù)據(jù)通過USB發(fā)回電腦。這就構(gòu)成了一個(gè)“USB-UART橋”的回環(huán)測(cè)試能同時(shí)驗(yàn)證USB棧和UART驅(qū)動(dòng)是否協(xié)同工作正常。5.3 協(xié)議棧開發(fā)的基石幾乎所有基于串口的應(yīng)用層協(xié)議如Modbus RTU、GPS NMEA-0183、AT命令集其開發(fā)的第一步都是在回環(huán)環(huán)境下搭建測(cè)試框架。以開發(fā)一個(gè)Modbus RTU從站為例搭建回環(huán)環(huán)境將設(shè)備的RS485接口的A和B-短接注意這是RS485的差分線回環(huán)不同于TTL的TX/RX短接。務(wù)必確認(rèn)你的設(shè)備支持內(nèi)部回環(huán)或這種接法安全更穩(wěn)妥的方式是使用兩個(gè)USB轉(zhuǎn)485模塊互連。實(shí)現(xiàn)數(shù)據(jù)鏈路層先不管協(xié)議內(nèi)容確保設(shè)備能正確收發(fā)原始字節(jié)。使用回環(huán)測(cè)試驗(yàn)證底層收發(fā)函數(shù)包括超時(shí)、CRC校驗(yàn)前的數(shù)據(jù)緩沖是否正確。逐步實(shí)現(xiàn)協(xié)議先實(shí)現(xiàn)最簡單的功能碼如讀保持寄存器在回環(huán)環(huán)境下自己構(gòu)造請(qǐng)求幀發(fā)送給自己驗(yàn)證解析和響應(yīng)幀生成是否正確。注入錯(cuò)誤測(cè)試故意發(fā)送錯(cuò)誤的CRC、非法的功能碼測(cè)試協(xié)議的魯棒性。這種從底層到上層、在受控的回環(huán)環(huán)境中逐步構(gòu)建和測(cè)試的方法能極大提高開發(fā)效率和代碼質(zhì)量。回環(huán)測(cè)試提供了一個(gè)純凈、確定性的環(huán)境讓你可以專注于邏輯正確性而不必受制于外部設(shè)備的不穩(wěn)定性。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
极品色www影院| 亚洲精品一卡二卡三卡福利视频网站| 色情婷婷久久五月天| 91综合熟女| 日逼国产| 97人人模人人爽人人| 亚洲国产ⅴ高清在线观看| 亚洲天堂男人天堂网| 国产麻豆一区二三区| 久久九九精品一区二区| 欧亚 另类 久| 久久夜夜| 亚洲人妻中文高清| 六月色婷婷| 在线女人91| 97色涩| 天堂亚洲精品| 国产在线视频午夜精华在| 熟女探花啪啪| 狠狠操夜夜| 成人性爱全视频观看| 久久久久国产一区二| 370p日韩欧美亚洲精品| 色男人色天堂东京热| 亚洲无码精品AV久久久| 老熟女阿 国产91| 国产激情av女片自拍| 激情抓乳插进去啪啪啪日韩 | 欧美性爱中文字幕无线码| 欧美日韩亚洲少妇寂寞影院正在播放 | 九九九九国产| 国产精品内射婷婷一级二| A一区片| 蜜臀久久99精品久久久久电影| 色婷视频| 中出91| 91模特在线观看| 中文精品一区二去| 性老妇一区二区三区| 狠狠色伊人亚洲综合网站色| 一级性爱视频免费观看| 精品一区二区三区四区外站 | 97国产色图| 久久久亚洲欧美综合| 色娱乐色呦呦夜夜夜夜av| 熟女精品一区二区三区| 色香在线| 亚州色综合| 91狠狠综合久久久| 熟女精品一区二区在线观看| av资源在线观看少妇| 97精品一区| 中文字幕91综合| 麻豆天美电影一区二区| 日韩精品9区| 久伊人网78| 中文熟女五十乱码在线| 欧美狠狠| 99久久免费看精品国产一区| AⅤ片水多多| 奶水 人妻 哺乳 在线| 99这里只有精品国产| 免费在线观看国内色片网站网址| 第四色亚洲色图| 无码137片内射在线影院| 区日韩亚洲乱码av电影| 精品国产乱子伦一区二区三区,精品一| 97摸视频| 蜜桃臀一区二区三区久久| 欧亚性爱啪啪| 久久 精品| 少妇99成人麻豆| 在线日韩日本亚洲国产| 少妇三p| 91久久18禁| 欧美啪啪啪91| 97最新在线播放视频| 精品人妻久久久| 97爱爱爱综合| 巨爆乳肉感一区二区三区竹菊影视| 国产又黄又粗的视频| 亚洲男人天堂网站| 亚洲加勒比色图| 曰韩操B| 青青草玖玖爱| 78精品| 一区二区三区精品黑丝白丝酒店对鸡| 超碰95| 黑人操一区二区| 免费观看国产小粉嫩喷水精品午| 久久婷婷精品| 热久久99999| 日韩卡一卡二卡三在线| 成人A片男人的天堂| 欧美日本成人一区二区| silk lablo在线观看一区二区| 色一情一乱一乱一区91Av| 精品无码久久久久久久杏吧| 国产乱不卡| 亚洲黄日韩无码专区| 久操com| 日韩午夜国产| 欧美少妇大量自拍视频在线观看| 久久夜黄色无码A级大片| 超碰97久久| 超碰色97| 日本道人妻久久久在线不卡色视频| 国产精品经典一卡久久久| 婷婷色在线| 天堂种子在线www网资源| 人妻干天天| 999精品乱码| 东北操逼| 蜜色网色哟哟| 熟女乱伦二区| 日本色色色| 欧美亚洲国产日本在线,久久精品国产| 久久超碰av在线| 黄色网址久久精品欧美喷水| 熟女高潮精品一区二区| 久久超碰久| 国产suv精品一区二六| 欧美伦乱爱| 日韩av乱伦| 在线免费观看高清无码视频| 色图综合| 亚洲天堂五月天国产| 又黄又粗又硬又长又大| 日韩精品9999| 老鸭窝黄色视频网站| 中文字幕 国产 精品| 淫色网综合| 欧美日韩人妻少妇 一区二区三区| 日日AAvv| 国产精品久久天天干| 爱爱动态60秒| 久久国产精品m码| 国内精品999| 久久久久国产一区二| 激情专区综合| baisiav| 久草精品视频| 久久91| 深夜激情无码| 午夜福利在线视频1000| 蜜臀99久久国产| 欧美顶级黄色大片免费| 在线观看不卡一区二区三区| 开心六月色| 九七毛片九九毛片| 黑人精品一区二区在线播放| 丝袜美腿制服人妻二区中文字幕 | 中文 人妻 制服| 蜜乳av一区二区| 久久伊人在线五区| 青青草色AV| 插欧洲美女欧美精品| 色欲人妻一区二区在线| 国产高清视频无码在线| 亚洲AV资源| 2020中文字幕在线观看| 六月婷婷色综合| 91美女精品| 欧美特大黄一级片片免费| 91五月天| 亚洲国产一级精品毛一级精品看免费视频 | 青娱乐蜜桃臀AV色婷| 91亚·色| 天天干18禁| 国产97色在线 | 亚洲| 国产熟妇 码视频户外直播| 一级黄色视频网| 欧美日韩国产一区二区小黄片大全| 欧美视频一区二区三区| 婷婷五月天无码 | 成人片视频| 1二区9| 91黑丝美女| 青青青艹在线视频| 久久九九视频九九视频| 亚洲熟妇综合久久久久久| 国产av强奸美女| 激情小说亚洲视频| 午夜福利在线视频1000| 精品人妻夜夜草| 亚洲精品一区二区精华| 日本不卡二三区| 国产色呦呦| Aa东京男人的天堂| 99视频在线| 国产丝袜美女在线一区| 亚洲影视高清第一页| 夜夜操狠狠操| 婷婷五月天色| 亚洲精品丝袜| 西西美女视频网| 啪啪AV导航| 亚洲黄色电影| 亚洲999综合| 在线无码操| 九九九九欧美| 欧美人与动性人交a| 日本啊啊啊啊啊视频| 天美麻花大全视频| 八人操人人摸人人看| 超碰78| 麻豆天美国美国产| 午夜啪啪片| 中文字幕天堂在线| 中文字幕国产在线天堂| 欧美激情精品| 男人天堂资源| 91M一社| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 久久精彩视频| 免费一级视频特黄色大片| 操操操日本的逼| 欧洲特黄毛片免费看欧洲毛片| 欧美 亚洲| 青青草原成人| 天天干18禁| 日韩丨制服丨中文|在线| 久9久9精品| 91强在线播放| 美女t无毒不卡不卡| 91美女国产在线| 制服丝袜第二页| 性色高清..……| 欧美一区二区三熟女剧情| 天天干1区2区在线| 九九九精品美女| 中文字幕黄色一起草| 国语精品av| 丰满人妻一区二区三区免费 | 自拍内地三级在线观看| 日本1区2区不卡视频| 色在线综合| 北约熟女超碰| 综合久久欧美| 熟女欧美日韩综合婷婷| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 欧美综合在线91| 天天天肏屄欧美| 性生活无遮挡纯毛片在线看| 黄久久| 精品久久久久久久| 1769国内精品视频| 日本女人操逼| 在线综合 亚洲 欧美中文字幕| 极品内射| 91热热色| 26uuu偷拍亚洲欧洲综合| 五月天黄色激情视频| 久久ww| 夜夜高潮夜夜爽高清视频一| 欧美 综合 亚洲| 3P丝袜熟女 色综合| 亚洲综合影院| 久久久97| 精品9区| 日韩性爱人人爱人人操| 九九伊人网| 欧美日韩一干二干| 日韩欧美加勒比| 国产亚洲色停停久久99精品91| 成人性爱av| 九月丁香| 人妻美腿丝袜日韩| 国产在线观看91精品一区| 国产一区在线免费播放| 神马久久久久久久久久| 中文字幕欧美丝袜07资源| 黄色视频60分钟| 色欲天天综合网| 97欧美色资源| 香伊人在线| 日本高清久久| 校园春色中文字幕AV| 中文操逼字幕| 综合网欧美在线| AV色五月天| 99亚洲国产精品色一区二区三区| av九九| 综合一区二区影视| 成年人三级黄色片视频| 美骚妇av高清在线| AAAA级日本片免费视频| 色色激情五月天| 色偷综合| 国产精品片| 久操婷婷| 96一区二区三区| 亚洲高清国产理伦片| 粉嫩少妇自慰在线| 日韩欧美操逼xxx| 啊啊啊啊啊操我视频| 97se亚洲综合自| 91在线视频观看国产| 天天香香欲综合| 国产激情视频一区区三区| 色婷婷久久| 国产午夜福利合集| 国产精品99久久久www| 精品国产一区二区三区久久久蜜臀| 国产精品动态一区二区三区四四| 乱伦1色页| 久久久久密臀视频| 377p欧洲日本亚洲大胆| 日韩人妻精品中文字幕| 国产探花精品在线| 欧美高潮| 欧美黄片视频在线观看免费| 九九九久久久W精品| 午夜男人一级A片7777| 色情婷婷久久五月天| 51一区二区三区| 亚洲精品国产熟女久久久| 操逼国产免费| 国产91丝袜 在线播放| 无码又爽又硬又激情免费视频| 久久蜜桃一区二区| 久久五月份| 欧美日韩中文视频播放| 操逼999| 国模少妇一区二区三区| 性欧美91| 欧中日成人免费影视| 搡老女人老91妇女老熟女| 伊人综合色网| 国产91乱伦| 国产精品69久久久久久久| 色99在线| 久久AV无码AV| 色香综合天天影视综合| 久操大香蕉手机视频在线看| 日韩簧片免费看| 91n.欧美| 国产久久一区二区三区野外在线| 亚洲精美粉嫩嫩泬在线观看| 亚洲中文字幕一区二区| 欧美色日本| 欧美极品性爱天天射| 97ai亚洲| 欧美韩国你懂得在线| 午夜精品久久久久久久99蜜桃一| 欧美97爱| 国产风韵犹存熟妇三区| 99国产天美| 风流老熟女一区二区三区l| 久久久性爱| 四虎视频在线观看| 婷婷色一区| 黄片com.| 亚洲第一页第二页激情| 四虎国产成人精品免费一女五男| 能直接看AV的网站| 操操操五月天婷婷丁香影院| 一起草视频在线| 人妻黑丝袜电影| 亚洲 欧美 中文 日韩超碰| 91精片| 国模91| 大香蕉免| ,国产乱人伦精品一区二区三区| 国产精品999zyz| 91精品人| 日本道不卡| nuu12国产麻豆精品| 开心六月色| 久久98| 国产偷拍自拍在线视频| 三级激情网站| J?P?NESEHD熟女熟妇伦| 日韩有码专区| 欧美日韩小说| 春色综合免费| 大干人妻| 欧美色爱综合| 福利天天都操| 超碰综合色| 曰韩欧美国产传媒麻豆第一区| 亚洲欧美国产其他二区| 95自拍视频在线观看| 日韩啊V| 日本色日夜干| 69精品| 欧色网址| 夜色综合| 日韩在线观看三级电影| 男人天堂网址| 麻豆三极片| 青娱乐国产剧情av一区| 水多多映视AV| 国产美女在线精品免费看| 欧美组图日韩亚洲中文字幕| 日韩综合无码一区久久92| 天天干电影| 亚洲性天堂| 久热最新在线杭州| 精品九九九九九九| 国产精品点击进入在线影院高清| 午夜美女福利视频| 精品人妻少妇| 26uuu久久| 国产精品视频自拍在线| 日韩欧美aⅴ综合网站发布| 极品欧美一区二区三区| 人人操人人插人人摸人人干| 97视频在线| 免费看片黄| 亚洲阿v天堂无码z2018| 日韩黄色成人性爱| 综合网欧美在线| 毛片视频白嫩| 国桃视频产巨乳精品一区二区在线| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 久久一区二区蜜桃| 躁躁躁日日躁2020| 日本操逼视频免费| av网页一区二区三区| 香蕉人人操tv| 情色AV电影| 欧美色997| 躁躁日曰躁2020| 国产免费一区| 精品午夜福利| 欧美黄片免费在线观看视频| 国产超碰在线| 亚洲欧美另类少妇精品| 人妻精品一区一区三区蜜桃91| 国产嫩草精品A88AV| 国产精品国产精品国产| av日韩在线观看电影| 婷婷久草| 男人网站婷婷| 国产高清自拍| 欧美日本国产日韩激情视频| 蜜臀久久99精品久久久老,,| 亚洲男人天堂2013| 青草精品视频日本久久久久网站在线| 天天摸夜夜添无码小视频| 操一区| 91oumei| 午夜性生活av免费在线看| 午夜男女爽爽大片免费观看| 婷婷丁香五月综合| 加勒比综合a∨| 国产精品爆乳懂色蜜乳| 一起草日韩| 另类综合另类| 9.1小视频| 人妻偷拍一区二区三区| 蜜桃视频精品一区二区| 亚洲综合另类色图| 黄色操人| 国产13区| 91美女在线| 睡产熟女乱伦| 日日噜噜夜夜久久亚洲一区二区| 国产在线综合福利网站| 999久久久精品国产| 亚州欧美综合| 密乳AV免费观看| 久操B网| 日本大香蕉综合网| 国产女人91精品嗷嗷嗷嗷| 久久久久久久久久久999| 999国产精品999久久久久久| 欧美成人性爱视频免费观看| 亚洲欧洲日产国产综合网| 亚洲精品久久久久毛片A片拉屎 | 国产女人操逼视频| 天天干天天日天天射黄色片| 97天天综合| 婷婷香蕉| 亚洲男人在线观看天堂| 青青草天天亲夜夜操网| 99最新日韩偷拍视频| 欧美精品日韩久久久九| 亚洲自拍一区夜夜操| 成人精品无码| 亚洲一区二区三区麻豆传媒| 黄色成人网久久久久久| 校园春色综合色| 呦呦一区| 动漫区日韩区欧美区| 日韩激情毛片一级久久久| 九九夜精品九九在线| 一中国女人毛片水真多| 国产欧美日韩臀 | 亚洲天堂第一页| 26uuu最新| 老汉网| 乱论91| 熟女久久久| 久久久久久欧美精品se一二三四| 亚洲欧美伦综合| 日韩性爱人人爱人人操| 中精品一区二区三区| 久久免费精品视频免一| 日本不卡一区二区| 小电影欧美91| 婷婷五月天伊人| 97超碰超碰| AV一二区| 久草新免费| 色欲三区| 小电影欧美91| 欧美熟爽综合| 五月丁香激情四射| 自拍二页| 国产精品秘 福利姬在线观看| 亚洲另类色综合网站| 99热国产| www.亚洲黄色| 欧美日综合| 五月天黄色av| 国产精品成人蜜臀AV在线| 嗯嗯不要 视频| 97人人中文网| 97色伦97色伦国产欧美| 麻豆色约约| 97se综合| 欧美天天性| 青青草字幕AV| 精品国产乱码久久久久久久久1| 日韩精品中文字幕人妻| 九久久精品| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 狠综合网| 日本中文字幕在线视频| 日韩欧美福利视频看看| 最新亚洲风情电影| 97av在线视频| 手机在线视频国内精品| 无码国产精品96久久久久孕妇| ji熟女.com| 99久久精品欧美国产| 婷婷激情四射| 97超碰色色| 国产乱弄免费在线视频。 | 国产9区| 大乔未久88一区| 麻豆 欧美 日韩| 操B在线观看| 日韩黄片影院| 久久久96| 亚洲视频精选| 欧美 亚洲 综合 制服| 国产精品直播在线观看直播| 亚洲资源站| 激情文学小说一区二区 | 男人的天堂VA在线| www久| 在线中文字幕极品av| 一区操逼| 熟妇综合一区二区三区| 97欧美综合| 久久久久久9999| 久久这里精品国产99丫e6| 青娱乐国产精品| 性色av大全| 97视频播放| 97在线播放 | 91强热人妻| 国产又色又粗又黄又爽| 999久久久国产精品| 在线 欧美 亚洲| 国产AV人人夜夜澡人人爽麻豆| 日han少妇无码| 国内精品不卡无毒99999| 91丨国产丨白浆| 色女网日韩| 久久久夜夜嗨免费视频| 人人看人人摸人人色| 可以免费观看的日韩av毛片| 思思热国产在线视频| 色在线视频导航| 欧美在线观看综合国产| 岛国黄色大片网站| 爱做久久久久久| 精品午夜福利国产一区二区在线观看| 日本一区二区三区精品| 大香蕉免| 九九av| 丝袜美腿91| 青青青在线高清视频在线一二三四区| 老熟女91视频| 国产真乱mangent| 翔田千里一区二区三区奶水| 欧美熟女操屄| 亚洲第一黄色av网站| 久久久久久日韩| 岛国成人av在线播放网址| 亚洲色婷婷| 任你爽视频| 久久天天摸| 欧美精品偷拍| 亚91网| 亚洲97在线| 国产三级资源在线观看| 亚洲一区二区性爱电影| 色婷五月天| 妇女视频网站| 久操国产在线| 无码国产Av| AA丁香综合激情| 加勒比在线视频一区二区三区| 综合在线导航一区| 无码粉嫩白虎一线天b区| 欧洲自拍第一页| 国产精品久久久吖| AV九九| 九九九久千久久激情蜜桃在线看| 色婷婷综合久久中文字幕雪峰| 伊人精品视频| 岛国黄片网站| 欧美毛片在线网| 国产精品午夜福利| 九九探花视频在线观看| 精品人妻一区二区乱码一区二区| 国产蜜臀精品一区二区尤物| 日本www操操操| 成人aⅴ一区二区三区| 超碰国产情侣自拍网| 麻豆2区1区天美| 97超碰天天爱天天爱| 国内精品a| 美女AV一区二区| 日本伦乱九九九综合| 亚洲精品中文字幕一区在线视频 | 无码又爽又硬又激情免费视频 | 嗯嗯啊好大| 免费观看国产小粉嫩喷水精品午| 留下AⅤ黄色片| 韩国嫰模上门援交视频| 亚洲高清综合网| 五月丁香啪啪网| 99在线视频播放| 无码一区免费在线不卡| 麻豆60秒| 极品欧美一区二区三区| 亚洲久草AV色图| 亚洲成a人片在线观看中文!!!| 欧美大片一区二区三区| 一级片视频啪啪| 亚洲乱熟女一区二区| 欧美图片校园春色| 成人午夜无码视频| a片自拍直播视频| 操死我了嗯嗯嗯| 精品国产精品一区二区| 日韩精品人妻中文字幕不卡乱码| 91干熟女| 亚洲综合另类小说色区亚洲成av人片在www| 国产又大又粗又长视频在线| 在线观看国产黄色| 五月婷婷丁香六月丁香| 欧美综合 站| 亚洲一区二区久久久久| 蜜臀久久99精品久久久久久酒店 | 婷婷综合视频| 色欲av一区二区三区蜜芽| 丝袜美腿丝袜| 久久精品人体| 99热思思| 天天爱天天韩国日本牛牛牛牛 | 久久精品综合| 精品91摸| 天美av在线观看| 黄色高清无码无码破解免费暗网 | 亚洲一区二区三区在线激情| 色91综合网| 欧洲无码一区二区| caopeng97| 国产精品一区人妻精品阁在线| 天天视频黄网站| 在线综合 亚洲 欧美中文字幕| 久久久96| 国产91影院| 国产高清成人免费视频| 日韩免费a级毛片无码a∨| 欧洲精品二区| 欧美97在线欧| 尤物视频新赏网鲜网色诱网| 殴美日韩m| 亚洲男人的天堂AV| 2019亚洲男人天堂| 校园春色 亚洲| 狠狠色五月亚洲91| 国产精品日日摸夜夜添骚逼| 三级日韩一区二区三区| 日韩欧美tv一区二区在线观看| 欧洲亚洲国产综合在线| 怡红院一区二区熟女人妻| 日本岛国黄色网址| 色哟哟国产精品免费网址| 亚洲色图自拍| 91操熟女| 久久性爱网站| 温婉少妇玩3p| 九九久久久久久爱| 亚洲色资源| 亚洲精品蜜桃久久久一区二区三区| 性爱av网站| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 欧美一二三区四五区| 75大香蕉| 长久操视频| 97超碰中文在线| 午夜福利免费精品视频| 日本三级小说中文字幕| 91精品在线播放| 激情小说在线视频| 91久久久久久久| 久久久久久9999| 0755午夜福利视频| 看日韩操逼| 神马午夜久久久| 91操熟女| 蜜臀久久99精品久久久久久久久| 中出后入| 嫩草影院在线观看精品| av日韩在线观看电影| 国产女人与拘做受视频免费| 午夜视频久久久久一区| 天天综合网91入口| 国产精品人妻无码久久久互動交流 | 亚洲精品国产日韩无码AV永久免| 国产青一二三| 夜夜爽夜夜摸夜夜操免费视频| 国产精品白丝| 67914亚洲精品| 97亚洲中文| 人妻少妇精品一区二区三区| 日产中文字幕2020| 懂色Av| 五月丁香激情综合| 欧美色宗合| 97色在线| 精品免费一区| 国产乱人妻精品入口| 日韩在线性爱免费视频| 欧美日韩精品久久| 日韩乱插| 熟女探花啪啪| 国产精品毛片| 九九英色视频| 国产1769在线| 91 亚洲情侣偷拍 久久| 日本综合色图| 青青免费在线视频一区| 久9爱精品| 欧美 传媒 麻豆 日韩 偷拍| 日逼97| AV天天综合| 成人无遮挡毛片免费看| 美女丝袜激情小说| 床上啊啊啊一区二区三区| 久久天堂| 中文字幕在线观看AV| 操我无码| 欧美人妻一区| 小视频国产| 久久人体一区二区| 高潮综合网| 欧美一二三区四五区| 午夜福利视频在线一区| 日熟女| 亚洲天堂久久久久久粉红视频| 校园春色中文字幕AV| 久久精品一区| 日韩不卡码| 亚洲丝袜色图| 国产久久久9999| 天天看少妇| 9久综合网| 99爱精品| 玖玖视频在线资源一区二区三区| 91站街按摩店老熟女熟女| 翔田千里一区二区三区奶水| 午夜福利1区2区3区| 青青色在线观看| 久久久久久九九九九九| 91青青| 久久97超碰| 夜色91| 乱伦强奸区日韩| 日韩三级伊人| 欧美BT 亚洲色图| 久久6热精品99视频| 久啪视频| 日本操逼视频在线| 3p国产色噜噜一区| 亚洲性网| 久久久国产av美女私房| 无码不卡八戒| 日韩av不卡在线看| 97在线观看播放视频| 亚洲精品毛片在线观看| 91色综合| 日韩欧美国产高清视频| 偷拍亚洲高清图片| 传媒在线观看一区二区三区| 国产在线综合网| 黑人嘿嘿嘿超爽免费视频| 色色综合网站| baiduhicn.com。| 久热伊人| www..com操老师| 日韩成人综合网| 啊啊啊97视频| 青青色在线观看| 午夜福利在线合集| JULIA人妻风俗店中出电影| 欧美A√综合网| 狠狠色伊人亚洲综合网站色| 九九热视频在线观看| 蜜桃久久久久久久久久久久| 可乐操在线| 嫩草影院在线观看精品| 91网18| 91AV国产精品| 免费看黄片现成| 偷窥自拍亚洲色图| 91 丝袜在线播放| 国产久久久久久久久一区二区| 中文字幕97色| 不卡视频一区蜜桃视频 | 传媒免费一区二区三区| 美女网站黄页| 中文字幕av乱伦| 四虎av在线| 亚洲无码色| 超碰综合97在线| 色噜噜人妻丝袜a∨先锋影 | 欧美韩日精品资源| 青娱乐欧美激情一区二区 | 激情专区综合| 九色黄站| 国产自产91区13区| 天天躁日日躁AAAAXXXX国产| 性色国产东北露脸精品视频| 亚洲AV无码乱码| 操死我了啊啊啊| 被体育老师抱着c到高潮| 日本色日夜干| 淫骚熟女一区二区三区| 影音先锋中文字幕日本好一区二区| 中文字幕人妻色偷偷久久皮| 日韩精品免费高清视频在线| 天啪| 99RE在线视频精品,这里只有精品| 男女啪啪网站免费视频| 亚洲色 国产 欧美 日韩| 久久丝袜| 亚洲第91页 | 欧美97爱| 日日AAvv| 97网址97| 中文一区在线日| 操屄不卡视频| 日韩综合成人免费视频| 欧美翘臀视频网站一区二区三区| 色婷婷电影网| 综合欧美日本三级| 亚洲 欧美 偷拍 唯美| 2017天天插| 天天综合站| 日韩人妻丝袜美腿中文| 躁躁日曰躁2020| 色嘟嘟人妻天堂网| 亚洲无码久久久久久久| 91天堂| 精品久久久久黄少妇| 亚洲欧美精品91| 日本久久精品| 高清国产av无码| 久久久久久国产无码精品| 少妇无码av专区线| 国产不卡免费在线视频| 欧美大波激情xxxx| 天天做天天爱| 97超碰色中文字幕| 久久久国产护士丝袜美腿一| 婷婷激情五月综合| 欧美另类丝袜熟女| 女生久久网| 国产精品 视频| 成人精品无码| 免费福利视频中文字幕| 任我爽在线视频免费观看| 激情图片亚洲色图| 伊人久久大香线综合无码| 日本天堂在线播放| 天天色天天干天天射| 国产家庭乱伦表演| 中文字幕精品一区二区精| 91精品伊人久久久大香线蕉91| 性爱1区| 亚洲精品日韩国产欧美| 伊人AAA| 大香蕉国产中文自拍| 欧中日成人免费影视| 60秒免费视频| 日本中文熟女视频| 欧美日韩性爱无码| AV 少妇 人妻 偷拍| 国产最新小视频在线播放下载 | 蜜臀99久久精品| 懂色Av| 成人a大片在线观看| 日韩无码三级影院| 人妻嗯啊啊在线播放| 亚洲精品蜜桃久久久| 青青五月天| 日韩一级性爱无码| 国产成人精品无码久久| 九九热精品在线| 美女尤物人人操| 激情久久久| 91国产丝袜美女| 国产欧美日韩一区二区三区| www老逼91| 一区二区影视| 亚洲成人碰碰| 亚洲另类天堂| 偷拍自拍在线视频观看| 一区二区蜜臀| 欧美国产欧美在线观看| 三级网站超变态精品| 粉嫩av在线一区二区| 人妻少妇精品无码专区二区密桃| 久久久成人国产精品无码| 老女人91| www色色com| 超碰久久.com| 97超碰在线资源网站| 午夜亚洲国产理论秋霞| 青青草中出视频| 激情四射婷婷四五月天| 亚洲在线网站| 手机不卡视频不卡在线一二三区| heyZO天然素人无码AⅤ专区| 91丝袜熟女| 成人黑料社久久| 日本精品一级二级三级| 午夜AV污污污| 久久久99久9| 97人人操人人摸| 欧洲亚洲人妻无码久久三区四区| 另类小色呦| 亚洲欧美另类激情小说| 欧美性综合| 丝袜美腿诱惑亚洲欧美视频在线观看| 97超级欧美| 奇米狠999| 強姦亂倫a| 蜜桃天美传媒AV一区二区三区| 色色色色色色色色色色色色色色综合| 狠狠久久手机视频精品| 少妇激情AV| 国产精品suv一区| 精品久久久久久中文| 欧美日韩大香蕉| 免费成人自拍视频在线| 激情四射婷婷六月天| 一区在线国产播放| 日韩不卡毛片Av免费高清| 老女人综合网| 天美精品原创av片国产| 久热热| 欧美宗合网| 色香伊人| 亚洲高清少妇| 久久久久久久久久久久久久久乱码 | 久久爱97| 大香蕉中文网| 96久久久久久久| 欧美黑人与女人91| 色九九综合AV| 亚洲少妇视频| 久操视频在线观看| 综合国产影视三级| 久久久久久99999国产精品| 九久9热| 欧美熟女妇同| 色哟哟1区2区| 久久精品无码一区二区三区| 亚洲天堂男人天堂网| 神马久久久久| 欧美性生活免费网| 日韩久久激情精品| 五月激情影院| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 可免费观看的av毛片中日美韩| 国产无码久久高清| 色情五月综合婷婷| 日本精品国产视频| 久久精品亚洲婷婷| 蜜臀th| 激情小说亚洲| 无码高清专| 91美女在线看| 国产丝袜啪啪| 久久大香蕉97| 日本免费一区二| 超碰偷拍| www亚洲免费| 人妻久久久久久久久久久久久久久 | 九九拍拍精品视频在线播放| 91日日夜夜| ji熟女.com| 成人老鸭窝人人在线视频| 国产精品97视频| 激情综合二| 亚洲情色在线| 欧美综合色,www| 色噜噜精品一区二区三| 国产亚洲 中文欧美久久| 久久黄黄黄| 激情五月天插| 色香在线| 亚洲欧美伦综合| 色墦五月丁香| 极品销魂美女一区二区| www.婷婷| 久久区| 久久男人网| 国产精品一区av在线| 97这里只精品| 国产精品久久久三级无码| 一区二区无码视频| 日韩性爱毛片操骚逼| 亚洲日韩东京热一区| 国产真实野战在线视频| 日日A∨| 五月丁香| 麻豆国产视频精品观看| 69人妻精品丰满熟女区| 一本大道不卡一二三区| 色偷偷综合91久久噜噜| 日韩素人无码一区二区三区三州| 久久久久亚洲熟妇熟女| 欧美日综合| 婷婷丁香五月综合| 亚洲黄色视频在线观看视频| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 岛国小电影| 日本 欧美 国产一区| 91电影色诱| 激情五月天色色网| 国产女同在线观看视频| 懂色av中文字幕| 美女淫穴| 99热亚洲| 亚洲黄网在哪免费看| 另类TS人妖一区二区三区| 99蜜月精品久久| 91总综合网| 91网站18在线观看| 色婷婷五月天| 久久人妻视频| 综合自拍| 国产亚洲禁久一区二区| 精品中文字幕一区二区l - 百度| 超碰久草| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 牛牛操视频逼| 国产精品人妻无码久久久互動交流 | 变态乱伦伪娘灌肠一区二区| 97超碰人妻| 亚洲美女AV无码| 97AV在线观看| 欧美加勒比| 我要去看2个日本美女.com曹逼| 亚洲 暴爽 AV人人爽日日碰| 天天综合色图| 黄骗免费网站| av影片在线观看不卡| 婷婷av在线中文字幕| 日本东京热加勒比久久| 精品人妻一区二区视频| 亚洲成熟国产精品美女| 激情啪啪拍91| 色蜜AV| 好看的91视频| 日本加勒比无码专区| 五月丁香激情四射| 国产一级高清免费观看| 无码区蜜乳| 户外裸露刺激视频第一区| 色婷婷99| 久久麻豆一区二区| 69视频福利导航| 凹凸 69堂 在线播放| 伊人国产成人av网站| 久草视频在线视频在线视频在线观看 | 国产强奸乱伦xd| 精品性爱一区二区| 91在线综合网| 72av视频| 亚洲欧洲综合av在线| 免费观看的av| 尤物av网站| 丰满人妻一区二区三区色-百度| 亚洲古典另类欧美在线| av在线浏览| 午夜精品久久一区二区| 午夜天堂啪啪| 欧洲亚洲人人爽爽视频| 婷婷去俺也去六月色| 九九九九九九九九九九九免费国产| 超碰99热中文字幕| 久久国产AⅤ| 久久精品欧美一区蜜桃| 97超碰资源网| 国产精品直播在线观看直播| 爱射综合| 97鸡把在线视频| 福利伊人玖玖国产| 成人老鸭窝人人在线视频| 97精品视频| 91美女中出| 神马麻豆福利院 | 亚洲青色欧美| 国产99久久99热这里只有精品15| 日韩情色视频| 自拍内地三级在线观看| 啊啊啊好舒服好爽啊啊啊视频| 国产精品人妻无码久久久互動交流| 99色悠悠| 一级人妻性爱视频| 免费久久9999| 黄片免费视频2019| AV99热18这里只有精品| 久久精品国产亚洲AV无码做| 日本有码影片下载| 免费一级a毛片久久久久久鸭绿欲| 中文字幕精品乱码| 久久性视频| 久久国产逼| 大香蕉伊利av| 无码操逼网| 人人妻人人澡人人爽久久av| 欧美性爱五月天| 啪啪啪综合网| 成人天天爽| 理论久久婷婷网 8| 翔田千里A片一区二区| 精品久久9| 高清不卡国产| 伊人婷婷五月天| 亚洲一区二区三区在线激情| 国产丝袜视频| 欧美熟女操屄| 日韩黄色片子| 欧美综合天天| 亚洲欧美内射| 干美女人妻|