久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码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
返回資訊列表
人妻铁牛TV| 日本无码1| 亚洲精品亚洲人成在线麻豆| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 100啪啪视频大全| 激情干在线| 天天做天天爱天天爽AV| 亚洲丝袜综合| 久久精精区一区二区一蜜桃一区二区| 亚洲色欧| 先锋色眉乱伦资源| 激情视频一二三| 色97干| 国产 无码 一区二区| 丁香婷婷久久| 午夜福利 成人 91| 国产1769在线| 日本久久999| 你懂的在线观看区国产| 丰满少妇一区二区三区专区| 日韩免费看在线黄色片| 91丝袜在线观看视频在线观看| 97久久超碰国产精品| 亚洲古典另类欧美在线| 国产视频小说| 国产CHASE男男GAYGA 毛多色婷婷| 欧洲乱码视频| 免费人成在线观看网站品爱网| 少妇天堂网络| 亚洲情色无码一区二区三区| 国产白嫩精品久久| 夜色综合| av亚洲天堂资源网站| 黑人娇小av在线播放| 久久9精品| 天天色播亚洲综合网站| 秘书高跟黑色丝袜国产91在线| 韩日无码在线观看| 欧中美三级一区二区三区| 上海一级黄片| 欧美日韩精品久久| 韩国午夜理伦三级好看| 亚洲国产精品久久久久婷婷老年| 欧美日韩性爱精品| 日韩欧美日韩| 天天看高清麻豆| 日韩 欧美 另类 人妻| 国产欧洲精品亚洲午夜拍精品| 久久久久亚洲?V片无码V| 欧美精品 - 91爱爱| 亚洲国产成人7777| 久久精品高清无码一区| 五月天社区| 精品97久久| 亚洲一区二区麻豆影院| 色综合V| 亚洲精品久久一区二区三区蜜桃臀| 亚洲精品无码成人久久久99| 91狠狠综合久久| 日韩成人综合网| 国内外内射高清视频| 特污免视频| 国产精品99精品视频网站| 精品十三区| 91福利网在线观看| 欧美日韩制服| 玖玖色综合| 日韩熟女无码| 亚洲脚交| 欧美72网页| 国产一区二区三区久久久精品| 亚洲影视第一页| 嗯啊免费视频| 乱伦3P视频| 蜜臀久久99精品久久久电影| 美欧老女人97| 96精品在线| 51一区二区三区| 91在线观看,天天综合| 午夜精品久久久久久久男人的天堂 | 久久91精品国产9丨久久分亭 | 久久乐| 欧美五十路熟| 国产精品一区二区三区在线| 久久综合女优| 电影69乱码96| 99热精品在线观看| 久久思思热| 欧美日韩不卡a片| 色婷婷日韩精品一区二区三区 | 久久精品国产亚洲AV先锋| 蘋果手機免費看成人Av| 午夜情侣自拍网站| 91粉芽高清在线一区二区| 久久性生大片免费观看性| 99热国产精品| 婷婷精品国产一区二区三区日韩| 青青草日韩无码| 综合影视国产无码| 亚洲国产精品成人无码久久久 | 欧美色图天堂网m| 欧美丰满熟妇XXXX性ppX人交| 欧美精品三区| 久久区| 久久成人精品| 青青草一本道福利视频| 任你干在线视频| 久久综合女优| 国产亚洲色婷婷99精品91| 国产女人高潮视频| 亚洲日韩一区电影| 天天干天天拍| 一区二区三区网站日日骚| 亚洲有码 欧美精品| 午夜福利视频在线一区| 久久久国产亚洲精品系列| 国产亚洲精品A在线观看下载| 日韩欧美日韩| 超碰欧美97| 一区超碰一区| 性欧美第一页| 男女啊啊啊啊啊| 亚洲成人在线乱码色午夜| 久久6热精品99视频| 老师充足的奶水小说| 色五月69夫妻| 天天日美女的B| 精品九九九九九九九| 91色综| 亚洲色图超碰在线| 麻豆黄色五月天| 18一区二区三区| 狠狠色婷婷777| 猛交交| 国产乱婷婷精品二区三区| 激情99| 久久久精品国产亚洲伊人| 亚洲男人bt天堂| 欧美夜夜狠| 91狠婷| 久久人人爽人人爽人人片Ⅴ| 日韩亚洲97| 亚洲日本韩国极品一区二区| 欧美一级二级三级| 无码九九九九| 久久久草草精品| 一区二区首页| 亚洲熟女一区| 最新制服中文第一页| 加勒比无码毛片| 久久久无码精品人妻二区| 一二三四区操操Av| 五月天AV资源| 易易A毛视频| 久久人妻熟女一区二区| 黑人娇小av在线播放| 综合网91| 成人无码在线超碰网| 国产无码精品高清| 欧美人妻久久精品二区三区| 大香蕉综合| 久久国产精品一级二级三级| 色婷婷综合久久久久中文一区二区| 人人天天欧洲| 欧州激情视频在线一区二区| 狠狠2050在线观看| 97超碰人操| 午夜啊啊| a亚洲欧美色欲| 91c色| 欧美成人午夜免费福利785| 五月婷婷激情网| 丁香五月天视频| 国产超碰国产97| 国产熟妇一区二区| 国产日本顶级一区二区三区| 69视频入口| 亚洲小电影免费涩涩成人在线高清| 中文字幕日韩人妻视频一区二区三区 | 97爱b| 亚洲青青草| 欧亚日本情色| a级免费在线观看| 操逼天美3区| 丁香成人五月天| 天天插天天射| 殴洲老熟女| 天天摸天天操视频| 亚洲导航深夜福利| 狠狠中文字幕| 一区二区亚州激情久婷婷欧美| 嗯嗯啊啊啊好爽| 午夜福利1区2区3区| 无码精品一区二区三区潘金莲| 成人午夜无码视频| 九九超碰综合网| 国产毛片片精品天天看视频| 中国探花熟女| 人妻社区男人天堂| 91熟女在线| 一区二区三区四区免费视频| 国产白领连续中出在线观看| 国产吹潮女在线观看| 五月久久HDAV| 超碰97日韩| 精品人体无圣光凹凸| 国产欧美日韩在线观看麻豆传媒公司| s片在线观看| 欧美96精品在线| 日本性爱少妇| 91黑丝美女| 亚洲欧美首页| 久久99操天天日| 插入粉嫩少妇视频| 国产传媒操逼视频| 久久婷婷在线观看视频| 香蕉视频精品亚洲一区二区三区在线播| 日本免费一级AAA大片器| 日韩99神马视频播放片在线播放| 亚洲一区二区av| 国产在线视频二区| 日欧美色| 99婷婷一区二区| 丝袜大香蕉| 亚洲综合校园春色| 久热在线精品免费观看| 日本超碰97日韩精品人妻| 黄色视频高清无码网站| 另类视频在线| 国内一级精品| www.夜夜操| 啊啊啊轻点在线观看| 免费又黄又裸乳的视频| 麻豆性爱视频在线播放| 青娱乐国产剧情av一区| 97蜜桃综合| 无套后入双马尾| 国产懂色精品国产av| 91女优在线观看| 久久久久久久久久va| 中文啪啪视频| 欧美日韩97| 日韩欧美视频青青| 黄页| 女色视频社区| 97精品| 亚洲欧洲偷拍一区| 激情综合网激情综合| 激情五月综合网| 特色a在线上| 99热色精品| JuliaAnnXXX888| 午夜精品探花| 日产精品久久久一区二区| 黄色片,com| 乱欲性色| 国产超碰人人操| 亚洲精品熟妇1区2区3区。| 凸凹视频在线观看| 男女啊啊啊| 人人考人人摸人人干| 日本二三四区| 91人妻超碰| 欧美性爱第一页久久| 亚洲综合113页| 亚洲国产精品成人综合| 嗯嗯啊啊操死我| 人妻无一区二区三区| 东京成人一区| 岛国黄色大片网站| 久久精品区| 婷婷久草一区二区三区| 成人自拍三级在线观看| 99日免费视频中文字幕| 日韩欧美中文| 久久久夜夜夜| 亚洲 欧美 另类 日韩 人妻一区| 五月天玖玖资源站| 夜夜躁狠狠躁日日躁av| 天天综合网91入口| 亚洲精品美女久久久久久久久| 国产精品在线免费| 色盈盈影院| 手机在线人成免费视频| 国产熟女无套内射| 精品人妻一区二区乱码一区二区| 国产91精品福利在线| 999色欧美中文字幕| 麻豆亚洲Av成人无码一区精品| 免费看片黄| 中文字幕视频免费| 亚洲天堂中文字幕无码男同| 国产特级毛片AAAAAA高潮流水| 久久妇| 国产按摩一区二区三区| 草草影院最新网址| 亚洲激情片| 大香蕉92| 人妻社区男人天堂| 国产日韩欧美三级片| 国产农村妇女精品| 成人情色综合网| 色91综合网| 日韩一级片在线看| 青青青国产手线观看视频2| 男女香蕉一区二区| 红桃视频高潮| av资源在线播放天堂| 日本淫乱女一区二区三区视频| 性交一区二区在线播放| 99热97| 国产操逼逼网| 视频一区二区三区精品| 色97干| 超碰97首页| 99re这里只有精品中心播放| 99热这里只有精品地址| 国产性爱在线视频一区二区| 91色夜| 亚洲色图欧美另类在线| 91亚洲黑人| av一区二区三区 中文| 亚洲电影中字一区二区| 狠狠入| 日韩中文字幕宗合在线| 人人操天天爽| 91大胆欧美| 激情久久久| 亚欧日韩成人| 香蕉热人人精品| 国产性爱强奸乱伦大全| 97鸡把在线视频| 北野未奈加勒比av| AV99热18这里只有精品| 天天日日本| 日韩在线76| 欧美婷婷五月天| 综合免费无码中文| 人人操人人叉人人插人人| 亚洲av无码成电影在线播放| a片自拍直播视频| 婷婷五月天激情四射| 亚洲熟久久| 天天享受天天看| 999久久久精品国产| 色丁香五月婷婷| 亚洲午夜福利视频| 男男H黄动漫啪啪无遮挡网站| 色网在线视频观看免费| 亚洲国产精品成人综合| 国产欧美精选自拍一区| 日韩无码三级影院| 欧美天天干| 91精品微拍福利| 国产色综合亚洲色综合吹潮| 欧美一区二区三区互相| 日韩操逼HD| 欧美一区二区三区另类精品| 国产无码精品高清| 操操吧亚洲乱伦视频| 国产辣妈在线视频福利| 爱妃国产亚洲视频中文字幕| 国产美女在线精品免费看| 免费A片三p视频| 搡老女人911熟妇老熟女| PMv在线观看| 亚洲国产av中文字幕久久| 操逼视频国产无套| 色欲无码人妻日韩欧美精品| 操逼操逼视频操逼| 国产真实野战在线视频| 亚洲欧美中文日韩视频中国语 | 欧美一区二区传媒| 99国产精品免费| 大香网伊人久久综合网eew| 东北女人的毛片| 极品久久久久久久久久久久久久| 亚洲欲| 国产日韩美女小穴视频网站不卡| 96一区二区| 国产偷拍网站| 东亚亚洲无码高清| 久久久久13| 欧美欲色| 久久久久ab| 色踪合AV| 久9九综合在线| 日韩国产精品人妻无码久久久| 翔田千里Av在线| 少妇高潮对白在线观看| 五月丁香狠狠爱| 精品无码久久久| 神马久久69| 欧美另类丝袜熟女| 18禁看网站一区| 中国大陆国产高清AⅤ毛片| 亚洲国产一区二区三区四区国产| 国产精品久久久亚洲一区| 国产高清不卡视频| 97操B| 国产精品成人AV片免费看网站| 啪啪视频亚洲第一| 99热这里是精品| 日本999精品视频| 智利AV在线网| A级在线视频| 国产亚洲精品美女久久久m| 国产av美女被艹的乱叫| 亚洲s在线观看| 91亚洲丝袜| 久久精品熟妇丰满人妻99| 久久免费99精品久久久久久| 欧美日韩99| 一牛一区二区三区久久| 久久久亚洲精品中文字幕人妻| 91AV入口| 97天天爽| 九九超碰综合网| 26UUU欧美日本| 狠狠色综合网| 97精品97久久| 熟女熟妇一区二区三四区| Av手机版天堂网| 久久精品国产精品亚洲艾通辽熟妇| 久久一二三四不卡 | 夜夜夜夜爽| 国产精品点击进入在线影院高清| 97人人干人人操| surenchaopeng| 日日夜夜精品视频| 99性爱视频| 天天操福利视频综合网站| 国产一区在线观看无码AV| 97干日韩| 亚洲欧美碰碰| 天堂种子在线www网资源| 日少妇亚洲版| 热99这里有精品综合久久 | 日韩三级久久久| 天天搞欧美| 正在播放国产精品一区| 97综合在线观看| 日韩精品午夜操呦呦不卡影院| 亚欧视频在线| 久久人爽| 国产av波波国产精品| 欧洲中文字幕| 日韩熟女操逼| 亚洲综合在线高清| 国产福利电影| 天天干天天干天天干| 色婷婷一区二区三区久久午夜成人不| 国产精品一级毛片不卡视| 欧美三级免费伊人| 强奸抽插av| 欧美制服网站美腿丝袜| 伊人国产成人av网站| 亚州国产精品乱| 九九五月天| 欧美极度丰满熟妇hd| 久久久久921| 日韩Va亚洲va欧美Ⅴa久久| 亚洲91亚洲| 99久久亚洲精品无码毛片潘甜甜 | 嗯嗯啊啊好疼| 日韩av不卡在线看| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 一块操欧美性爱| 欧美天天影院| 99热精品在线观看| 综合网亚洲在线| 一区二区激情国产熟女| 大香蕉综合网| 精品久久青青草| 国产无码成人无码| 狼天天狼天天大香蕉| 这里都是精品| 东京太热久久久| 日韩精品中文字幕人妻| 久久中出在线| 国产欧美精选激情视频| 97超碰免费生活| 亚洲黄网在哪免费看| 熟妇一区,二区,三区。| 97色在线| 97无码视频在线播放| 蜜臀人妻少妇久久在线观看| a一区二区三区乱码在线| 国产视频小说| 久99热| 97超碰欧美| 日韩国产十八禁| 国产操偷| 99re超碰| 欧美色日本| 日本肏逼视频在线观看| 午夜爽爽爽| 日韩成人午夜精品久久高潮| 国产亚州高清国产拍精| 欧美亚州综合网图片| 久久久一热在线播放| 综合伊人激情| 国产日产欧产美韩系列麻豆免费| 伊人久久大香大香线蕉中文 | 性饥渴少妇av无码毛片| 成人欧美日超碰| 亚洲夜夜欢无码一区二区| 九九九九国产| 亚洲十八禁止| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 国产精品一二三在线看| 97免费在线观看视频| 性色乱AV一区二区| 国产精品久久久久久久毛片1| 67914在线兔费成人视频| 99久久这里只有精品| 精品欧美А∨无码黑人大荫蒂| 色偷偷2020免费视频播放| 九九热男人天堂| 精品一区二区成人| V A在线| 青青青草原| 亚洲综合码| 密臀成人视频久久久| 亚洲欧美大| 黄页视频网站野外| 欧美人体性爱互联网第一页婷婷日本| 97精品第3页| 噜噜在线| 亚洲成人性爱在线观看| 亚洲天堂五月天国产| 超碰色大香蕉| 日日日骚女人精品| 男人天堂站| 丁香九月激情啪| 自拍偷拍亚洲熟女妇人精品| 九九久久玖玖| 亚洲精品九九九九九九| 精品176精品2| 强奸乱伦免费网站| 91天天美女| 久干网| 亚洲av总站| 激情综合五月婷婷| 白嫩国模丰满一二三区| 亚洲精品尤物yw在线影院| 夜夜爽夜夜爽| 九九九九亚洲| 亚洲狠狠入| 日本中文字幕一区| 亚洲区限制级| 天天综合欧美综合| 美女黄页| 3p国产欧美99热| 免费看黄片现成| 人人操人人色网| 欧美性爱超碰97| 91麻豆一二三区| 欧美日韩大陆黑人少妇99| 骚货人妻偷情自拍在线视频| 色情成人五月天| 亚洲aV性爱| 久久久久久国产无码精品| 麻豆视频国产一区二区| 国产强奸乱伦无码视频| 白嫩少妇| 蜜桃av色偷偷av老熟女| 欧美AB在线| 日日摸日日弄日日拍| 锕锕好爽 死我在线观看| 在线黄色污污网站| 久久伊人青青草| 久草婷婷| 91性高| 日本男人插女人的逼黄色| 亚洲日韩青青草色月| 四虎永久在线精品免费网址| 午夜精品99久久久久传媒| 久久婷婷五月天| 可以免费观看的AV| 亚洲宅男天堂| 偷拍欧美激情| 91国产大片| 超碰精品| 欧美91久久久久| 少妇精品久久久八区九区| 天天操天天7| 久久久久久久久久久精| 97神马久久| 99999国产精品| 一区在线精品中文字幕| 2023天天操夜夜操| 日韩国产欧美伦理在线| 黄色免费网页无码| 欧美十八禁在线看| 98色网| 国产伦精品免编号公布| 中文字幕在线观看网页| 91l欧美在线| 精品乱码在线观看| 色九久| 超碰精品日韩欧美国产| 精品人体无圣光凹凸| 日本一区二区不卡精品| 亚洲精品视频在线播放| 91亚·色| 久久中日麻豆| 成人精品视频| 精品人妻一区二区三区四区| 爱爱动态60秒| 国产欧美成人第一页在线观看| 亚洲乱码尤物193YW| 久草婷婷| 美女91在线观看| 久久中文字幕女同性恋一区| 亚洲欧美情色| 强奸国产在线| 五月天精品| 绯色AV粉色AV蜜臀AV| 99热日| 91亚洲欧美激情| 中国AV美女| 干婷婷综合网| 欧美大香蕉在线观看| 九九九热精品| 国产91 丝袜在线播放00-百度| 中文字幕日韩精品久久| 你懂得91| 欧美色视频在线| 手机看片1025| 91欧美偷拍| 人妻色情天天操| 欧美日韩中文视频播放| 中国大陆国产高清AⅤ毛片| 日日日日日| 裸体美女久久久| 日本女人久久久| 盗摄女人妻在线| 欧美性爱97超碰 | 丁香五月天婷婷姐| 一摸二插三插| 岛国免费黄色网址| 97舔舔| 日本久久久精品电影| 欧美AAAA黄片| 色色婷婷五月天| 亚州综合AⅤ| 狠狠91| 亚洲欧美日韩综合在线尤物| 美女大乳久久久久久久女人18| 欧美狠狠狠| 做爱A级亚欧| 丝袜狠狠草尤物人妻av91| 久伊人网78| 亚洲免费成人精品电影| 成人色女网| 啊啊啊啊啊啊啊啊视频| 视频分类 国内精品| 久久久婷婷| 97视频在线| 99精品无码| 天天爽入口| 免费精品人妻一区二区三| 中文字幕91综合| 嗯嗯啊啊啊好爽| 欧美大香蕉专区网| 久久爽爽精品| 综合久久久久久久久91| 欧美一区二区亚洲天堂| 蜜桃视频一区二区三区| 无码久久国产 | 黄片免费视频2019| 青青草中文-久久青草精品一区二区三| 香蕉av一区二区三区| 久久久久久久伊人精品| 校园春色欧美色图| 一区二区乱码福利| 啊啊啊啊啊在线观看网址| 天堂成人网| 久久久久国产精品片区无码直播| 色男人色天堂东京热| 中文字幕精品一区欧美| 伊人久久国产免费观看视频| 97亚洲综合| 无码免费一区二区三区啪啪| 精品无码少妇| 操人91| 久久久久久十| 在线观看啊啊啊啊啊| 桃花色涩综合影院| 亚洲女人毛茸茸91| 强奸乱伦日韩AV| 97精品在线| 一区二区三区 日韩欧美| 97视频在线观看高清资源| 人人做天天爱| 北条麻妃性愛视频| 日本一级婬片试看三分钟| 大香蕉啪啪啪啪在线| 小日子操bb在线看| 操淫穴亚洲五月丁香| 日本人人操人人操| 小电影欧美91| 97最新在线播放视频| 日本ZZ高免费A级视频| 综合一区中亚洲国产成人综合精品 | 97在线免费| 女优免费一区二区永久| 97超碰欧美中文字幕| 日夜啪电影| 国产福利一区二| 9久久美女首页| 日韩精品人妻一| 超碰 国产熟女精品一区| 国产白丝网站| 亚洲美女精品| 蜜乳AV一区| 无码精品啪啪啪一区二区三区三州| 久久久久9| 啊啊啊啊网站| 欧美日韩婷婷中文| 国产精品久久久久久久久AV大片| 97久久久久| 国产欧美一区二区| 久久久久免费看少妇A片特黄| 国产第二页| www九九热| 欧洲特黄毛片免费看欧洲毛片| 中文字幕天天操| 国产精品成人无码av无码免费| 欧美性爱一区二区三区| 欧美日韩免费专区在线| 夜嗨影院| 国产99999| 日韩精品操少妇| 伊人色综合网电影| 欧美Ⅴ性爱| 男人的天堂无码| 激情综合97| 曰韩操B| 麻豆亚洲AV成人无码久久精品| 国产农村妇女一区二区| 九九热久久99精品re| 91欧美少妇| 91oumei| 中文AV制服乱伦| 少妇蹲下买菜露大唇0| 日本特黄f c2| a v网站在线播放| 九九热精品| 福利天堂| 丝袜美腿欧美| 色噜噜精品一区二区三| 91天天| 国产热av| 91精品久久久| 日本天天干天天操一区| 日韩欧美偷拍美女视频| 国产无马av| 男女激烈网站最新| 91日产桃蜜| 久久久久网站-538在线视频-欧美永久乱码 | 人人性爱视频免费| 午夜操一视频一区| 精品乱码久久久久| 精品国产一区二区久久| 亚洲aV性爱| 日本狂喷奶水在线播放212| 超碰97人妻自拍| 久久超碰98| 亚洲人精品久久久喷水| 我爱大香蕉| 在线观看AV片| 干我久操| 亚洲男人电影天堂| 欧美九九九| 99日韩| 久久精品国产亚洲AV嘿嘿| 日本淫乱女一区二区三区视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲av国产av综合av卡| 精品久久久久久久| 97在线观看免费| 夜夜 中文视频rt| 丝袜综合色图| 人人喜人人妻| 欧美男人一区| 色综合久| 免費黃色視頻觀看一| 综合免费无码中文| 国产精品一区av在线| 亚洲自拍偷拍视频在线| 久久青青草在线视频| 九七超碰人人乐| avav青青草久久夜| 视频在线观看青青99国产| 免费A V在线| 午夜福利精品| 国产精品毛片?v一区二区三区| 日本淫乱女一区二区三区视频| 欧美色乱| 久久久久国产精品久久久| 久久精品超碰| 97这里有精品| 伊人97| 国产一区二区在线播放| 国产深夜福利| 热思思免费视频| 精品久久无码午夜福利| 涩综合导航| 亚洲天堂中文字| 欧美性爱视频免费一区一A| 在线看片国产精品每日更新| 综合影院永久入口国产| 亚洲最新Av| 亚洲一卡二卡在线免费| 欧美gv在线观看| 蜜臀久久99精品久久久电影| 欧美色网| 极品综合| 岛国AB视频| 亚洲无码免费看| 免费中文在线| 五月香婷婷| 欧美视频在线第3页| 精品人妻二区三区| 日韩三级在线观看mp4| 亚洲欧美精品久| 亚洲怡春院| 青青草国产一区二区三区| 亚洲综合色在线| 亚洲 欧美 日本 国内 首页| 一本色道久久综合精品婷婷| 欧美综合第一| 韩国成人精品久久久免费看| 午夜性生活av免费在线看| 欧美成年人性爱视频免费观看| 精品中文字幕一区二区| 韩国一级做A片免费的| 理论久久婷婷网 8| 青青草乱入乱欲视频在线观看| 亚洲天堂久| 亚洲无线观看久久| 久久精品国产精品一区| 免费操逼视频下载| 搡老女人老妇女AAA一VU麻豆| 明星性猛交ⅹxxx乱大交| 不卡av免费在线网址| 久久久亚洲精品中文字幕人妻| 97久久精品| 日韩中文字幕熟妇人妻| 97日韩欧美亚洲| 国产搭汕a级片| 九九九九九九成人| 91n免费处女| 人爽不卡视频| 国产毛片久久久久久久| 91精品黄在线观看| 国产精品色哟哟| 色九九久九九| 国产大陆天天艹| 久久草草欧美精品| 亚州欧美总和| 成人线上超碰| 久久精品性| 区二区亚洲婷| 超碰在线一区二区| 国产精品视频白浆免费| 日韩中文字幕熟妇人妻| 日本ZZ高免费A级视频| 极品欧美一区二区三区| 午夜大香蕉| 亚洲性感丝袜诱惑在线观看| 蜜桃av色偷偷av老熟女| 精品伊人久久久大香线蕉小说| 爱干爱射网啊啊啊| 欧美日韩欧美| 久久久久成人亚洲国产| 91新在线欧美| 久久久久国产精品久久久| 亚洲国产高清福利视频| a人欧美综合天堂麻豆| 高清孕妇孕交 交| 亚洲制服欧美另类内射| 亚洲自拍欧美国产首页网曝| 九热中文字幕| 99九九精品| 蜜桃狠狠色伊人亚洲综合| 亚洲和欧美裸体美女双飞视频| 天天噜| 亚洲aV性爱| 亚洲有码第一页| 成人av福利在线观看| 久久久久久中文字幕中文字幕最新| 97在线观看视频| 把腿张开老子CAO烂你| 99热导航| 搡老熟女免费视频 | 久操九九九九| 精品免费囯产一区二区三区| 91操人| 乱码人妻一区二区三区| 日韩人妻一区二区| 青青草原人妻| 美女诱惑一区| 欧洲色| 欧美姓爱综合网| 色噜噜综合网| 欧美第五页| 91人人臊| 大香蕉性欧美| 国产无套粉嫩白浆在| 俺也射| 黄片直播三级黄片两女一男| 2019午夜福利视频| 综合操逼| 亚洲国产亚洲天堂| 国产午夜无码片在线观看影视| 夜夜操中文字幕| 国产日韩欧美亚洲精品95| 久久久不卡区一区二区三区久久久| 91久久免费视频互動交流| 免费9 1久久| 眼镜人妻101.com| 人人澡人人弄| 操逼1区| 性感美女啊啊啊在线| 伊人女女资源在线观看| 男人的天堂三级| 强奸乱亚洲| 成人小电影网站tex| 亚洲丝袜二区| 肉动漫无遮挡h在线观看| 亚洲AV资源| 特级特黄一级毛片免费| 久噜噜| 中文字幕成人理论在线| 色天天野狼综合社区| 91精品91久久久久77777俄罗斯老妇姓x| 久热99| 秋霞午夜成人福利片片| 中文久久一区| xxx0国产在线播放| aV中文麻| 久久久久久性爱片| 翔田千里无码中出中文字幕| 超碰在97| 99色综合| 国产无码精品成人| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 人人爱夜夜爱| 国产av又色又爽又黄| 亚洲好色人妻| 黑操B| 日韩美女啪啪一区| 欧美97se| 宅男91视频在线播放| 日本免费一级AAA大片器 | 久久 久久国内精品亚洲| 婷婷丁香久久| 久久性爱视频免费看| 蜜臀久久久国产| 91色色色| 日本潮催一卡操| 日本国产二线女色| 国产视频三区四区| 人妻一区视频| 午夜超碰| 日本熟妇精品九九| 发朗少妇买婬全视频中文| {男男暴菊gay无套网站| 97久久国产精品| Sekablack无码一区| 精品中文一区二区| 亚洲日韩AV视色| 国产宅男宅女在线观看| 久操国产在线| 亚洲色91C| A V少妇特黄三级| 波多野42部无码喷潮在线观看| 97在线视频免费看| 国产白丝在线| 人妻久久久久久久久久久久久久久| 久综合国内精品自在自线| 欧美黑人与女人91| 综合色拍| 亚洲不卡AV在线| 久久性爱网站| av毛片aaaaa免费看| 97国产精品在线观看| 在线97在线| 清柠毛片| 凸凹视频在线观看| 日韩免费av片高清无码| 黄色工厂这里只有精品| 久操在97| 青青青国产| 看一级黄色视频| 欧美亚洲色图另类国产| 另类图片综合| 欧美草草高清日韩视频| 另类视频在线| 在线天堂999| 狠狠干狠狠色| 欧美一区二区观看在线| 国产不良强奸视频免费看| 97Ai亚洲| 神马久久久久久久久| 99www.bibizy香蕉资源国产一区二区三区高清 | 欧美日韩在线国产在线| 无码一区免费在线不卡| 啊啊啊啊好疼| 大香蕉色欲AV| 亚洲少妇在线影音| 天堂资源欧美| 日韩偷拍色图| 99国产人成精品| 巨爆乳一区二区爆乳区| 欧美片第一页| 中文字幕一区二区视频在线观看| 大逼色网站| 亚洲日韩黑丝| 久久草视频污视频| 久偷拍| 亚洲情色五月天 | 久操黄色视频| 久久九九99| 被体育老师抱着c到高潮| ..日韩av毛片精品久久久| 欧美日韩插逼视频| 性色aV一区二区三区噜噜| 麻豆色99999| 精品超碰色| 六月丁香网| 欧美日韩性爱精品| 欧美一级做a爰片免费视频| 欧美日韩性爱无码| 国产一级137片内射麻豆| 亚洲无码超碰免费| 69av一区二区三区| 91视频综合网| 91亚洲综合| 精品久久久久久中文字幕视频免费 | 91综合天天看| 97在线观看免费| 久久视频,这里只有精品| 日本欧美m v精品网站加| 风骚少妇视频中文字幕| 青青伊人加勒比海| 久久久男人的天堂| 综合天天。| 舔人妻中文免费视频| 无码九九| 97亚洲自在精品在线观看| 青娱乐 青青青操 日逼| 欧美图片色五月天| 亚洲欧美骚| 91操熟女| 男女猛烈无遮掩视频免费软件| 久久性爱视频免费看| 亚洲人体视频在线观看| 日韩av电影成人在线| 无码不卡八戒| 亚洲国产婷婷在线播放| 美中日韩无码| 国产 v乱码一区二| 五月婷婷激情| 欧美成人精品一区二区三区| 不卡九肏| 久久国模av| 呻吟 欧美 日本 中出| 九九九九九九综合| 啊啊啊好大好深| 黑人猛交| 久久久久亚洲AV无码专区少妇| 综合影视国产无码| 欧美人人AAA| 九月色婷婷| 精品91摸| 久久精品老司| 久久中文色图| 美女91在线观看| 婷婷色香| 人妻黑丝袜电影| 婷婷五月天色网| 91亚洲网| 韩日性爱av| 99久在线精品99re8热| 色五月首页| 久久直播国产| 色播丁香| 91热情品| 久久精品99| 天美精品原创av片国产| xxxx网站亚洲精品| 久久久97| 欧亚乱色熟一区二区三四区| 色网综合网| 午夜在线播放| 日本一区二区三区午夜观看| 睡产熟女乱伦| 超碰在线974| 日本 情色 1区2区3区| 热热色中文无码| 最好看的中文字幕在线2018| 久草婷婷| 精品性爱久久视频| 亚洲高清欧美总合| 精品中文字幕第一页| 日日操天天操| 日本有码影片下载| 综合性视频99| 无码一区免费在线不卡| 免费看欧美美女黄色大片| 插入综合网| 高清孕妇孕交 交孕妇| 香蕉欧美| 久久性爱城| 宗合情欲网| 亚洲资源一区| 久久成人国产| 淫色网综合| 精品久久久一本一道| 内射夫妻三片| 婷婷五月天影院| 欧美成人亚洲精品| 在线视频资源| 综合操逼| 亚洲成人一二三区| 久久风骚城市| 国产高清精品一区二区三区毛片| 69精品少妇一区二区三区蜜桃| 欧美丝袜美女电影一二三四区| 91狠狠综合网| 超碰人人干| 十八禁一区二区无码观看| 婷婷色色五月天福利| 亚洲AV永久无码一区仙野| 日韩传媒在线| 一本久道久久综合狠狠爱一密臀精| 可以在线观看AV的网站| 区一二区日韩亚洲乱码av电影| 蜜乳AV一区| 天天日天天干天天整| 久久超碰98| 97天天日| 婷婷激情五月| 骚货 中文字幕 av| 丁香六月激情| 任我爽视频在线观看| 揉揉日日日日| 日本日逼视频网| 欧美精品,四区。五区| 操婢日韩| 91jk色拍| 免费AV中文网在线观看| 丁香六月婷婷久久综合| 久久久91福利姬| 亚洲中文日韩欧美大香蕉视频| 自拍二页|