亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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
返回資訊列表
欧美东京热青青草| 怡红院视频在线| 欧美一级久久久久久久大片动画| 99啪啪视频| 大香蕉啪啪网| 色欧洲97| 影视综合无码少妇| 精品久久一区二区三区四区五区| 九九拍拍精品视频在线播放| 青青草好吊色| 色女女女导航| 男人的午夜天堂| 成视频在线观看免费看| 亚欧美综合网。| 久久久久久九九九| 亚洲超碰AV| 成人精品视频一区二区| 欧美色图20p| 色爱综合网| 一本色道熟妇| 午夜寂寞欧美| 久久精品视| 中文字幕久热视频在线| 精品久久久久,69国产成人精| 亚洲狠狠入| 天天操夜夜操狠很操| 大香樵伊人网| 亚洲色图A| 午夜福利精品| 亚洲欧美日韩中文久久自慰| 国产女乱淫真高清免费视频| 国产污视频麻豆传媒一区二区 | 熟妇熟女亚洲天堂网| 综合色欧美| 久久综合日韩亚洲欧美| 久艹日日日| 花野真衣| 美女写真| 97欧美视频| 人妻久久久| 久久久月天| 国产不卡免费在线视频| 福利天天都操| av资源在线观看少妇| 中文字幕伊人| 日本在线不卡v二区| 欧美色日本| 国产辣妈在线视频福利| 人妻精品视频一区二区三区| 国产乱码久久| 九九九色| 九九九久千久久激情蜜桃在线看| 亚洲一区二区在线观看91| 密桃99999| 成全在线观看免费观看| 91丝袜| 国产激情综合| 亚洲另类欧美精品| 桑老女人九区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 天美精品av| 内射夫妻三片| 97操B| 亚洲AV成人无码久久精品播放| 青草园大香蕉| 你操综合| 欧美99热| 亚洲成人久久一区二区| 啊啊啊操死我了| 国产精品国产拍高清AV| 国产一区在线观看无码AV| 亚洲不卡一| 亚洲成人精品久久久| 日本色色视频网站| 2017超碰| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 嗯嗯嗯啊啊啊干死我吧| 殴美,日韩国产伦精品| 国产不卡免费在线视频| 亚洲图片日本AⅤ欧美在线| 久久精品女同亚洲女同13| 久久久精品国产亚洲伊人| 91老熟女| 国语精品av| 亚洲天堂东京热| 国产美女自拍AV| 亚洲精品电影| 九久久精品| 啊…啊…操我用力操我 | 999久久久九九九九| 天美传媒Av在线| 淫淫总合网| 免费在线黄片视频| 亚洲一区中文字幕一区| 久操视频资源站公开| jizz啪啪| 欧美双插| 综合五月天| 少妇蹲下买菜露大唇0| 天堂av2019| 精品毛片av一区二区| 国产农村妇女精品| 麻豆尤物视频网| 碰人碰碰人人开房人肉| 97网址97| 无码九九九九| 国产精品高朝久久久久久久| 久久精品综合| 三级色影综合网| 91色欧美| 亚洲一区二区AV| 中文 人妻 制服| 后入人妻无码| 少妇激情一区二区三区视频| 中国少妇啪啪视频| 啊啊啊好想要| 伦伦成年午夜免费视频| 国产女人91精品嗷嗷嗷嗷| 亚洲第一狼人丝袜美女另类 | 日韩在线观看三级电影| 伊人天天久久动态图| 久久狠狠色噜噜狠狠狠狠97| 色妺妺在线视频| 日韩国语字幕| 天天天乱色综合全| 久久久久9999精品九九九| 婷婷五月成人| 国产91久久九九免费精品无码| 日韩性爱免费视频在线网站| 色9999日韩国产| 色综合久久888| 日韩人妻少妇 一区二区三区| 97av在线视频| 亚洲 中文 女同| 99色色网| 青青青操| 中文字幕人乱码中文字的预防方法 | 无套后入双马尾| 亚洲图片另类| 中文色综合| 九九九精品成人免费视频小说| 成人网址在线观看| 日韩欧美女优电影| 久久精品人妻一区二区| 啊啊啊啊,啊啊好多水| 91岛国动作片| 国产精品久久久吖| 操操逼操操逼操操逼逼| 色区久久| 99热 按摩 日韩| 99热这里都是精品| 啪啪啪东京| 懂色AV蜜臀无码精品APP| 婷婷亚洲综合| 97欧美色综合| 成人三一级一片aaa| 欧美性爱系列| 干b在线性社区| 精品综合久久久久久97| 日韩熟女三十乱伦| 欧美啪啪女女| 97视频在线视频| 亚洲一区二区AV| 人人做,人人操,人人摸| 亚洲AV无码| 麻豆天美在线喷水AV| 猛猛干| 欧美日韩精品一区二区三区高清| 亚洲av在线免费观看| 91爱看| 欧美综合网在线| 丝袜剧情| 天天内射| 国产精品盗摄 偷窥盗摄| 久久激情网| 蜜桃臀久久| 欧美巨大性舒爽顶到了| 韩国一区二区精品亚洲| 欧美视频一区二区三区| 亚洲精品影视老司机| 日本美女性生活久久久久久久| 国产后入式在线观看| 青青免费在线视频一区| 92午夜免费福利视频| 偷拍欧美激情| 国产精品伦理| 五月婷婷无码| 九九自拍伦理| 试看日韩黄片| 蜜桃久久久久久久| 黄骗免费网站| 1区2区3区在线视频| 成人青青草原伊人| 免费综合亚洲中文| 国产一区麻豆免费观看| 日韩成人性日韩成人性爱视频在线免费观看| 亚洲操人| 97操97干| 99热精品在线在线| 国产乱子伦一区二区三区免看| 99re综合伊人| 超碰97人人乐| 欲色啪| 亚洲 无码 有码 中文字幕| 91操人| 国产免费永久精品无码| 日日夜夜骚| 综合色色网| 91九九九馒头| 丝袜制服字幕在线| 91色综合| 国产人妻一区二区三区欧美毛片| 老熟女乱伦一区| 国产老熟女| 国产亚洲福利第一页丝袜| 国产青一二三| 影视综合无码少妇| 人妻少妇久久中文| 开心五月深爱五月| 亚洲av性爱电影| 久久久久骚| 日韩中文字墓| 欧美亚洲宗合色性图| 久久精品国产99精品亚洲蜜... | 性暴力欧美猛交在线直播| 久插综合| 99热综合| 亚洲无码太久| 国产精品97超碰| 日本中文字幕在线视频| 亚洲欧洲激情卡通另类文学四射小说网站 | 被窝影院午夜看片无码| 亚洲资源网| 久久久夜夜嗨免费视频| 绯色一区二区三区不卡少妇| 人人搡人人肉久久精品| 日本中文字幕在线视频 | 亚洲综合贴图91 | 亚欧性爱在线无码| 亚洲欧美综合| 91老熟女91老女人| 毛片中心9视频99| 逼操网站| 国产h小视频在线观看免费| 97操97色| 久久婷婷影院| 国产中文字幕在线点播| 色原狠狠天天天| 久操B网| 亚洲无码一区二区三区三州| 国内精品久久人妻性色av| 精久久久| 91挑色欧美| 五月天婷婷久久| 日韩av电影成人在线| 偷拍亚洲视频一区二区三区四区| 91天美传媒精品| 99久久99久久综合| 8050无码八戒| 人人操人人摸人人看人人插| 私人尤物在线精品不卡| 熟女熟妇伦久久影院毛片一区二区| 校园春色 男人天堂| 岛国视频一二三区| 很很操在线| 精品人妻一区二区三区四区| 日韩美女高潮喷水视频| www鬼畜国产男人的天堂| 九九黄色视频在线观看| 无码操逼网| 97视频在线| 亚洲丨在线| 色偷偷色偷偷欧美日韩| 91日日| 一区二区三区四区色图| 狼人久草| 日韩在线视频1234| 五月婷婷综合网| 天天视频黄网站| av72网| 91色五月俺来也| 九九热在线视频| 国产乱人伦AVA麻豆软件.| 高清国产精品无码| av绯色| 欧美日韩不卡a片| 日韩黄片影院| 日韩精品在线放| 欧美人体性爱互联网第一页婷婷日本| 亚洲情色综合| 91伊人久| 亚洲图片激情综合另类| 婷婷av在线中文字幕| 国产强奸乱伦欧美| 波多野结衣之双飞调教在线播放 | 蜜臀av中文字幕| 日韩美女高潮喷水视频| 国产成人主播| 欧美熟女丝袜| 是还免费视频1727我| 亚洲情色在线| 久久久久日本视| 国产超碰国产97| 加勒比无码一区二区三区| av中文在线| 久久99网站| 激情丁香五月婷婷| 怡红院视频在线| 日本不卡卡一区| 红桃视频高潮| 九九九九九九免费视频| 天天综合欧美| 一个国产在线综合网站| 看日韩操逼| 色色色综合网| 欧美综合制服在线| 97 国产精品| 久肏视频字幕| 亚洲欧美首页| 天堂а√在线最新版在线| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 天天看天天综合成人网| 久久天天躁日日躁狠狠躁 | 91国产丝袜美女| 99久在线精品99re8| 性感美女91影视| 久久一区二区三区四区五区| 国产日产精品久久快鸭的功能介绍| 3d成人精品一区二区| 欧美日韩国产色图在线| www.狠狠干.coom | 婷婷av在线中文字幕| 日韩av不卡在线看| 天天爱天天韩国日本牛牛牛牛| 91精品国产综合久久久蜜臀| 久偷拍欧美日韩三区| 一二三四区操操Av| 久久黄片国产一区二区| 国产麻豆一级精品视频| 精品国产72| 91激情国产| 久久专区| www成人啪啪18秘 免费| 一区二区三区 丝袜 高跟 美腿| 91性高| 超碰色图| 亚洲啪啪视频一区二区| 嫩草 人人网精品| 国产精品一区二区三区四区五区| 国产日逼视频| 欧美最婬乱婬爆婬性视频 | 欧美日韩美女精品久草一区二区三区 | daxiangjiao你懂的 | 九九九九九九九| 久久久久久9| 日本国产高清色www视频在线| 久久久人妻| 欧美一级专区免费大片 | 超碰在线在公开超碰在线在公开| 91精品人妻偷情| 无码伊人久久大杳蕉中文无码| 欲色影视综合吧| 熟妇一区二区三区| 亚州色综合| 强奸乱伦Av网| 色哟哟精品1精品2| 青青操综合网| 乱子伦一区二区三区国产精品| 欧美综合亚洲综合| 色婷婷在线视频| 97久久国产精品| 无码免费在线观看黄色片| 亚洲综合另类| 亚洲性刺激| 强奸乱伦中文字幕AV| 亚射在线| 超碰精品国产无码| 99re这里只有精品3| 91欧美在线| 亚洲激情综合| 超碰99在线| 色丁香五月婷婷| 亚洲精品97p| 成人免费福利在线观看| 91美女网站| 伊人久久大香大香线蕉中文| 熟女熟妇伦久久影院毛片一区二区| 国产家庭乱伦性爱视频| 丝袜美腿校园春色| 男人天堂黄片| 天天舔天天日天天射| 亚洲AV秘无码一区..| 操香逼| 9国产超碰| 婷婷激情一区二区三区俺也去| 蜜臀一区二区三区在线| 夜夜夜久久| 女人精品内射国产99| 高清不卡国产| 91人妻中文| 99最新日韩偷拍视频| 久久久精品视频免费观看| 91网站18+| 大屁股xxxxx| 亚洲丝袜在线观看| 国产精品熟女AV中文字幕在线播放| 天天综合91| 91天美传媒精品| 2017人人操,人人摸| 狠狠夜色午夜久久综合在线| 国产大学生口爆吞精合集| 激情久久日韩精品中文字幕麻豆| 9999久久久久| 沈阳熟女高潮对白视频| 久久久久9999妇女| 日韩乱插| 久久免费少妇| 欧美情色贴图| 九九色逼| 久久透逼视频| 熟女高潮精品一区二区| 九九久久久九九| 最新av网站在线观看| 精品一区二区三区蜜桃臀www| www成人啪啪18秘 免费| 欧美乱欲| 免费啊啊啊| 手机看av网站在线看| 中文不卡视频| 中文字幕片| 国产成人免费观看在线视频| 国产综合久久久麻桃个| 啊操爽品善一区二区三区| 精品国产一级久久| 人妻一区二区三区视频 | 欧美性,色九九| 精品久久久久久中文| 色老大| 天美欧美国产| 爽爽歪在线视频| 欧美日本中字另类在线| 亚洲国产综合图区中文字幕| 国产精品午夜福利视频| 丰满少妇一区二区三区专区| 久久香蕉国产线看观看猫咪av| 亚洲97在线观看| 操91| 影音综合网| 色色五月天激情| 吖在线不卡一区二区国产剧情| 亚春色色| 日韩专区久久久| 久操 高清| 五月天激情网站| 国产h片在线观看视频| 好色综合| 97天天| 久久久九九| 97干天天| 九月AV| 蜜臀久久99精品久久久久久久久| 国产小视频91| 人妻人人做人人澡人人爽欧美一区| 一区二区高清视频| 少妇高潮九九九九| 欧美96在线|欧| 97热视频在线观看| 91国产美女丝袜足交精品视频 | 国产欧美一区激情交| 久久69精品久久久久久久| 欧美色女人| 97久操| 天操天操夜操夜月操月年年操操| 日韩欧美偷拍美女视频| 久久鲁夜| 欧美97日韩精品| 操b网站亚洲无码| 九九久久一区二区三区| 亚洲好色人妻| 九九九九九九九九九九九九九九九女| 一区二区首页| 啊啊啊啊啊好大好舒服想要| 婷婷激情一区二区三区俺也去| 亚洲色图久久成人| 98一区二区精品| 99性爱| 久操大香蕉手机视频在线看| 超碰97起碰| 国产农村妇女一区二区| 婷婷国产精品九区| 久久亚洲人妻| 综合久久99亚洲人妻中文在线| 成人熟女区| 久干网| 欧美精品久久| 精品二区三四区五电影 | 久久亚洲日韩熟女精品| 欧美双插| 日韩有码 一区二区三区| 久久国产AⅤ| 天天日天天搞天天干| 日韩av不卡在线看| 成人三级片无码| 九九色热| 精品久久久久,69国产成人精| 欧洲综合视频| 日本天天人人狠狠在线日美女| 97精品国产97久久久久久免费| 伊人综合色网| 98精品国产乱码久久久久久| 少好三P| 大香蕉狠狠爱| 日本欧美中文字幕| 日本熟女免费視颖| 五月丁香婷婷综合网| 亚洲色图大香| 熟啊v色欧美热| 九九热在线精品视频| 亚洲综合色在线| 99av| 影音先锋视频在线| av大香蕉| 人妻出轨一区二区三区| 97免费视频在线观看视频| 久久老熟女| 国产强奸乱伦欧美| 热99这里只有精品| 第四色色综合91| 999熟女精品| 亚洲精品九九九| 日韩性爱1级片视频| 无码少妇精品一区二区60岁老人| 久久一区无码| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 久久久久久无码人妻中文字幕| 天美传媒AV在线| 中文字幕日韩电影人妻| 婷婷综合| 亚洲怡春院| 免费成人自拍视频在线| 啪一啪免费视频| 欧州色图区| 一本色道久久综合亚洲二区三区| 乱抡国产91| 五月天社区| 久久区| 亚洲最大成人a毛毛片| 香蕉在线一区二区三区| 另类欧美| 国产野战露脸在线播放| 91狠婷| 99精品无码| 一起草欧美| 国产怡红院| 蜜臀AV一区二区三区| 丰满岳乱妇一区二区三区| 天天影视网综合少妇| 99在线精品观看视频中文| 国产强奸91| 色999人与兽| 亚洲一区中文字幕| 天天天天天天天天天天干美女| 久久久噜噜噜久久久| 天天操妹子| 免费久久精品麻豆一区二区av| 99热aaa| 搡老女人911熟妇老熟女| 久/久精品99看9| 女人天堂网| 乳欲人妻办公室奶水| 97 国产一区| 色欲天天综合久久久无码网中文| 久久九九网| 国产精品白丝AV| 国产成人bd在线观看| 四季AV一区二区凹凸精品小说| 亚洲中文字幕在线视频一区二区| 欧美在线官网| 五月天亚洲色图| 91neishe| 久久久九九九| 91女网站| 国产精品久久久无码aV去| 色噜噜人妻av 中文字幕| 97干在线| 亚洲A色| 伊人网青青| 国产欧美日韩臀| 五月婷婷丁香六月丁香| 亚州中文字幕超碰97| 天天干天天燥| 91激情综合| 伊人久久大香大香线蕉中文| 91制服丝袜| 东京日日夜夜| 久久国产在线一区二区| 久久內射| 探花熟女,姿勢到位,體驗感也到位| 日本免费一区二区不卡| 国产乱伦性爱AV| 天天日夜干| 欧美天堂日韩三级国产传媒| 国产精品99精品视频网站| 91爱看| 午夜福利成人免费视频| 久久久人妻| 第二页中文字幕| 人妻81p| 亚洲中文字幕久久无码精品| 久久男人的天堂国产| 国产主播福利| 婷婷九月国产| 91国产精品在线看| 国产午夜福利电影免费在线观看 | 亚洲综合在线高清| 黄色免费网页无码| 成人久久久| 国产熟妇一区二区| 欧美日韩性爱精品| 黄色免费一级在线毛片| 精品综合久久久久久97| 亚洲欧美大香蕉| 国产精品国产自产高清AV| 97亚洲综合在线| 日韩在线人妻网站| 国产自偷自拍一区| 26uuu国产亚洲综合| 嗯~啊~轻一点 视频| 国产农村妇女精品一| 夜夜爽妓女| 91成人久久 | 91艹B视频| 久久久久久久97| 嫩草影院永久在线制服丝袜| 麻豆人妻精品一区二区| 亚洲国产一区二区入口| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 激情五月天插| 淫荡网址| 美女91网址| 超碰 av 女人天堂| 在线日韩视频| 免费A V在线播放| 最新亚洲黄色免费电影| 欧美性少妇| 日韩午夜国产| 人妻密肉在线观看| 97人人射| 久久婷婷综合国际产色怕| 自拍内地三级在线观看| 屁股久久久久久久久久| 人妻少妇无码| 九九九精品一区二区无码| 青娱乐 成人娱乐在线| www…国产操逼| 国产亚洲日韩在线三区黑人| 欧美国产精品久久九九| 96麻豆精品一区二区三区| 久操av在线| 欧美日韩青操| 男人干美女| 涩涩这里只有精品视频| 亚洲欧洲综合视频在线| 日韩乱插| 人人摸人人干| 色网在线视频观看免费| 在线观看无码三级少妇| 免费中文在线| 国产一区二区三区免费视频在性观看| 久久69| 国产精品97超碰| julia中文字幕在线观看| 三上制服丝AV| 欧美 中文字幕 一区| 操操啪| 国产成人精品亚洲日本| 伦理片秋霞免费影院| av无码av无码专区| 黄色在线网站| 欧美成人一级免费电影| 丰满人妻无码一区二区三区| 在线有码中文字幕| 综合激情二| 岛国免费视频在线| 国产福利电影| 成年男人的天堂| 亚洲国产丝袜熟女av| 狠狠色一区二区中文字幕| 日韩精品永久在线观看| 中文字幕伊人| 国产高清在线观看欧美| 搡老熟女免费视频| 国产黄色在线播放观看| 熟妇的味道HD中文字幕| 2000亚洲男人天堂| 日本操大逼| 欧美翘臀视频网站一区二区三区| 久久一二三四不卡 | 久久久久日本视| 亚洲色图日韩精品| 久久精品国产精品一区| 997色在线| 亚洲激情 欧美色图| aaa一级黄片| 无码操逼视频一下| 亚洲国产熟妇综合色专区| 日本中文字幕一区| 真实高潮91| 激情av| 18禁中文字幕| 成人五月天丁香激情综合| 亚洲午夜蜜臀| 日韩欧美偷拍美女视频| 人妻夜夜爽天天爽麻豆三区网站| 中文字幕成人理论在线| 欧美激情性久久久久久| 欧美天天综合网| 日产精品久久久一区二区| 亚洲涩涩| 日韩三级在线观看mp4| 污啪啪啪视频| 一级免费啪啪片| 亚洲成人一区二区精品| 岛国视频免费在线观看| 91处女在线观看| 欧美欧美少妇| 91美女国产在线| 欧美日韩大陆黑人少妇99| 99re9在线| 五月丁香综合激情| 国产精选三级在线观看| 精品高清一区二区三区三州| 视频一区二区三区精品| 黄片www视频免费| 国产传媒日韩欧美| 91人人| 猛猛干| 97Ai亚洲| 一区二区影视| 日本一二区不卡| 亚洲人久久久久日| 天天亚洲| 久久六六| 人妻性爱一区二区| 免费精品国偷自产在线在线 | 果冻国产精品麻豆成人av| 伊人久久综合精品欧美| 中日韩久久久| 久久免费精品视频免一| 久久精品国产72国产精品福利 | 狠狠干2020| 九草九九九| 后入日本1234| 久久国产精品一区二区| 亚洲人综合19| 白嫩少妇| 国产操逼视频在线观看| 欧美极品性爱天天射| 国产网站在线播放| 欧美一区二区亚洲天堂| 激情五月激情综合网| 日韩AV电影网站| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 日日夜夜精品视频| 欧美真人抽搐一进一出gif| 在线观看无码三级少妇| 人妻日日干| 国产亚洲色婷婷久久99精品91| 五月婷婷六月色| 99久久久无码| 天天操美美| 97超级久久| 日本一级特级毛片视频| 久操网视频| 五月色网| 99re9这里只有精品| 熟女高潮合集-永久久久-成人AV | 欧美激情性爱视频网站| 国产精品自产拍在线观看社区| 五月婷婷六月天| 青青草精品| 久久久久九九九九九| 亚洲图片欧美| 日本欧美一区二区三区免费| 97综合在线| 亚洲中文电影| 丝袜AV一区二区三区| 不卡中文字幕aⅴ在线| 亚洲最大的综合性av| 欧美嫩性色| 国产欧美黑人丰满在线| 夜夜爽夜夜爽| 伊人激情五月天一区二区| 91狠婷| 物业黑人 AV一区| 97超碰欧美| 久久东京国产精品视频| 日本 免费 一区二区三区 久久香蕉 | 欧美专区17页| 蜜乳成人AV| 综合久| 无码久| 人人操欧美风骚| 性做久久久久久免费观看软件| 精产国品一区二三产品| juliaann欧美丝袜办公室| 国产高清26uuu| 看黑人AV不卡| 992视频一区| 97香蕉人人乳| 十八禁的黄污污免费网站| 高清国产性猛交xxxx乱大交| 92午夜免费福利视频| 久久伊人青青草| 日本一区二区不卡| 大香交伊人网| 91欧美情色| 国产精品久久成人免费| 色九九九综合| 国产午夜精品理论片一二三区区| 欧美日韩成人在线| 九九精品美女高溯喷水| 日韩三级在线观看网站| 四虎在线免费视频| 欧美日不卡| av天堂精品久久| 婷婷性网| 欧亚久久偷拍视频| 色婷婷久久| 国产亚洲精品A在线观看下载| 98福利在线视频| 人人乐大香蕉| 日韩一性一交一A片俄罗斯| 大香蕉视频啪啪啪啪| 国产一区96在线| 国产无马在线| 综合欧美色图| 伊人精品视频| 很很干很很操| 国模艳艳啪啪一区| 久久国产成人精品国产成人亚洲| 九一综合网| 久操视频免费在线观看| 日韩激情中文字幕有码| 中文?日韩?免费?精品| 曰本道人妻久久久在线不卡色视频| 夜夜一区二区| 黑人嘿嘿嘿超爽免费视频| 97久久超碰| 精品少妇高潮久久| 色 亚洲 91| 亚洲欧洲视频小说在线观看| 国产精品熟女丝袜一区二区| 骚女高跟AV在线| 亚洲 无码 偷拍| 一区二区三区 丝袜高跟| 丁香六月激情| 久久久久极品| 97电影院超碰| 欧美性爱日韩高清| 99精品久久久久久| 超碰在线人妻| 国产在线播放成人免费| 麻豆AV短剧| 日本一区二区三区四区免费观看| 国产久9| 六月婷激情福利天堂69| 亚洲欧洲自拍图片专区满春格| 亚洲成A∨人影院在线欢看| 婷婷爽人人婷婷爽视频| 加勒比色99999| 人澡逼| 久久人体一区二区| 久久人妻无码毛片A片麻豆| 久久综合女优| 欧美性,色九九| 国产精品九9| 久妇网| 78综合网| 欧美色偷拍| 91亚洲黑人| 内射白嫩美女| 丰满人妻一区二区三区在线| 婷婷五月天激情网| 色色色网站| 亚洲精品视频在线播放| 国产99 中文字幕日韩小视频| 免费啪啪一级视频| 国产亚洲精品玖玖玖在线观看| 波多野结衣一级视频| 日韩极品无码B| 无码高清操逼网址| 成 人片 黄色大片| 国产啊v在线免费播放| 操逼天美3区| 人人看欧美性爱| 成人性爱美曰韩| 亚洲色图欧美视频| www.五月天| 另类图片五月| 精品人妻一区二区三区-国产| 800zy一区二区| 99九九久久| 天综合网欧美| 天天在线91| 男同专区一区二区三区在线| 好爽视频在线观看视频| 日本欧美中文字幕| 搞中出久久| 日韩在线观看字幕精品| 综合激情婷婷| 在线小说视频一区| 麻豆一区在线| 久久综合精品一区二区三区| 九九色热| AV中文在线| 精品性爱一二三区| 怡红院久久老司机| 91青青草| 国产二区视频在线观看电影| 在线国产一区二区av| 超碰免费在线| 屌妞视频久久久久久久久久久久| 99日免费视频中文字幕| 97K超碰在线| 欧美性爱综合,免费| 久久直播国产| www.狠狠操| 日韩精品熟妇| 国产中文字幕在线观看| 免费成人自拍视频在线| 日韩免费在线视频观看| a网站免费观看| 精品久久久久黄少妇| 中国黄色特级精品一区二区三区片| 欧美色九九| 中文字幕一区二区三区字幕| 不卡免费av在线播放| 91精品成人www| 性九九九九九九| 91天天| 人妻日日干| 日欧美色| 国产熟女一区二区| 最新国内自拍av免费| 九九综合色| 极品粉嫩少妇视频| 精品国产乱码久久久久久网站入口| 8x福利精品第一福利视频导航| 看一级黄色视频| 欧美暴力猛交| 亚洲91色| 黄色高清无码无码破解免费暗网| 熟女丝袜视频| 国产视频97| 7777奇米影视久久| 欧美亚洲国内自拍| 欧美久久人体| 少妇啪啪自拍| 天天操女人| 欧洲精品二区| 国产一区在线免费播放| 17c在线成人免费A片观看| 黄色视频高清无码网站| 无码免费在线观看黄色片| 思思热影视| 爱射综合| 黄色二级片网站| 九九热精彩视频| 久久久工口| 麻豆天美一区二区| 99综合| 97欧美色| 国产熟女乱论| 国产第二页| 国产又黄又爽又刺激久久久久久| 国产天美欧美| 欧美色视| 午夜人妻精品综合在线| 色悠悠伊人网五月天| 日本一级二级三级网站| 九九热在线精品视频| 无码操逼视频一下| 真实高潮91| 久久精品国产精品一区 | 中国国国产一级特黄毛片| 五十路熟女工口| 100啪啪视频大全| juliaann精品熟女一区| 99久久99久久免费精品蜜臀| 色婷婷影院| 大香久久| 9久热| 九九性爱网| 超碰人人超在线观看| 熟妇人妻丰满久久久久久久无码| 亚洲有薄码区日本系列中文字幕| 免费成人在线观看91| 天天操熟妇| 日韩/97| 综合网色| 国产美女销魂在线观看不卡| 亚洲天在线| 午夜AV污污污| 老鸭窝日丰县女人| 强奸乱伦麻豆| 久久婷婷五月综合| 91美腿丝袜在线观看| 黄色免费网页无码| 色狠狠综合噜一二三区| 国产成人精品网站| 日本视频在线观看污污污| 亚洲制服aⅴ中文字幕| 欧洲精品网| 人人爱人人操人人性| 午夜福利一区二区三区四区五区色婷婷| AV免费在线播放一区| 亚洲男人天堂2| 激情五月综合网| 91狠狠| 久久神马影院| 久久精品店| 人人操人人摸超碰| 不卡码视频| 色婷婷视频| 久伊人网78| 久久久精品国产亚洲伊人| 亚洲中文字幕在线视频一区二区| 精品久久久久瑟瑟| 国产探花精品在线| 精品少妇一区二区| 久久国产99精品72福利 | 另类av天堂| 亚洲精品a人片在线观看视| juliaann丝袜| 韩国女主播青草在线| 草莓精品视频| 97爱爱| 少妇丝袜在线观看AV| 久久婷婷五月综合| 干我久操| 久久精品成人| 91在线免费观看处女| 特级毛片特黄久久免费看 | 97丝袜亚洲在线播放| 精品国产片亚洲一区| 色激情综合网站| 加勒比东京热五月天天堂网| 丁香五月av| 99re国产精品视频| 五月天伊人网| www.男人天堂| 花野真衣| 日韩乱伦视频| 激情小说图片亚洲首页| 热热色青青草| 91欧美成人色站| 在线播放成人网站| gogogo免费高清看中国国语| 91亚洲最新在线| 精品国产国产AV| A V少妇特黄三级| 午夜偷拍久久熟女| 亚洲av成人精品一区| 懂色AV蜜臀无码精品APP | 黄色片,com| 怡红院亚洲怡春院av| 夜夜爽33333| 国产精品成人AV片免费看网站| 精品亚洲俞拍视频一区| 国产剧情在线| 夜夜嗨一区二区三区三州加勒比| 亚洲精品 超碰| 性爱动态120秒| 日本在线播放不卡一区| 亚洲伊人a线观看视频| 91天天综合网| 九九九九精品视频| 一级免费精品| 男人的天堂2000| 97激情97激情| 天天综合~91入口| 国产亚洲99久久精品| 最近2019中文字幕国语免费版| 婷婷av在线中文字幕| 亚洲在饯| 97超碰超| 九九九九九九综合| 亚洲麻豆18发?| 色眯眯av| 欧美男人亚洲天堂| 男人 天堂 日 亚洲| 性色avv| 大香蕉97久久| 国产精品交换一区二区| 99综合免费视频| 色噜噜综合网| 91粉嫩萝控精品福利网站_精品影音先锋国| 中文日本免费高清| 女同女同恋久久级三级| 人人人摸人人| 天天看精品动漫视频一区| 大色综合| 丰满人妻一区二区三区色-百度| 天天综合官网| 2017天天操| 97伊人网| 综合久久少妇中文字幕| 97爱综合| 欧美一级在线观看成人| 亚洲综合电影| 999久久久免费精品国产牛牛| 乱伦强奸区日韩| 亚洲男人天堂网| 中文字幕后石码三区四区| 天天看天天日| 亚洲中文字幕在线视频一区二区| 麻豆天美传媒毛片| 在线视频 亚洲精品| 亚洲成人激情小说视频| 国产粉嫩蜜臀av一区二区三区| 天天影视色香欲综合网小说| a片 xxxx受爽视频| 黄片免费视频2019| 欧美aa一级片| 老司机射| 我爱大香蕉| http://qxhbdz.com| 亚洲射综合网| 熟妇人妻一区二区三在线| 东方亚洲在线操逼天堂| 夜夜国自区| 亚洲国产成人福利在线观看| 中文字幕日韩专区精品系列| 97在线免费| 欧洲综合色图| 久久色精品视频在线| 欧美91网| 久久久555| 久久内射| 女人综合网| 禁十八久久| 久久后入制服| 欧美一二三| 亚洲国产精品9999在线观看| 亚洲第一无码播放立川理惠| 91人妻爽爽人人做人人澡| 天色综合网| 亚洲天堂电影网| 日韩欧美女求操每天更新| 思思热在线视频在线| 在线观看AV片| 麻豆人妻精品一区二区| 国产盗摄美女如厕大神作品在线观看| 亚洲999综合| 久久综合国产精品国产| 婷婷中文网| 黄色大片一区二区密桃丝袜| 天天激色| 天天网综合|