99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(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)。簡(jiǎn)單說(shuō)就是自己發(fā)送數(shù)據(jù)給自己接收看看數(shù)據(jù)是否“原封不動(dòng)”地回來(lái)。這聽起來(lái)簡(jiǎn)單但背后涉及硬件連接、電平匹配、波特率設(shè)置、數(shù)據(jù)幀解析等一系列關(guān)鍵點(diǎn)。一個(gè)穩(wěn)定的回環(huán)測(cè)試是后續(xù)所有復(fù)雜串口應(yīng)用如與傳感器、藍(lán)牙/Wi-Fi模塊、上位機(jī)軟件通信的基石。無(wú)論你是剛接觸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很多人以為串口通信就是簡(jiǎn)單地發(fā)0和1其實(shí)不然。UART通用異步收發(fā)傳輸器協(xié)議定義了一個(gè)完整的、自包含的數(shù)據(jù)幀結(jié)構(gòu)確保在沒(méi)有時(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位常見(jiàn)為8位代表實(shí)際傳輸?shù)臄?shù)據(jù)一個(gè)字節(jié)。數(shù)據(jù)位是從最低有效位LSB開始發(fā)送的。校驗(yàn)位可選位用于簡(jiǎn)單的錯(cuò)誤檢測(cè)??梢允瞧嫘r?yàn)、偶校驗(yàn)或無(wú)校驗(yàn)。發(fā)送方會(huì)根據(jù)數(shù)據(jù)位計(jì)算并附加這一位接收方進(jìn)行校驗(yàn)以判斷傳輸過(guò)程中是否可能發(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ù)位無(wú)校驗(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è)比特位。因此常見(jiàn)的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)過(guò)分頻后可以較精確地產(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庫(kù)調(diào)試模式都支持軟件回環(huán)。這種模式主要用于測(cè)試應(yīng)用程序的數(shù)據(jù)處理邏輯、協(xié)議解析代碼是否正確而無(wú)需關(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庫(kù)的硬件回環(huán)我們以常見(jiàn)的STM32F103C8T6藍(lán)橋杯單片機(jī)和STM32CubeMX工具為例。步驟一CubeMX工程配置新建工程選擇你的芯片型號(hào)。在Pinout Configuration標(biāo)簽頁(yè)找到你需要使用的USART例如USART1。將模式Mode設(shè)置為“Asynchronous”異步通信。在參數(shù)設(shè)置Parameter Settings中配置波特率Baud Rate為115200字長(zhǎng)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é)回顯通過(guò)串口助手查看或進(jìn)行比對(duì) // 這里簡(jiǎn)單地將接收到的字符再發(fā)送出去形成“軟件硬件”雙重回環(huán)效果 HAL_UART_Transmit(huart1, rx_buffer[rx_index], 1, 50); // 處理接收到的數(shù)據(jù)例如判斷是否是回車符等此處簡(jiǎn)化 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短接。通過(guò)ST-Link或其他調(diào)試器將程序下載到單片機(jī)并供電。為了觀察效果我們還可以將單片機(jī)通過(guò)USB轉(zhuǎn)TTL模塊如CH340、CP2102連接到電腦。但此時(shí)必須斷開PA9和PA10的短接線并將PA9接模塊的RXPA10接模塊的TX。打開串口助手如XCOM、Putty設(shè)置相同的波特率參數(shù)你將會(huì)看到單片機(jī)不斷發(fā)送“Hello UART Loopback!”并且每收到一個(gè)字符來(lái)自串口助手就立即回顯一個(gè)字符。實(shí)操心得使用HAL庫(kù)的中斷接收時(shí)一定要在回調(diào)函數(shù)末尾重新調(diào)用HAL_UART_Receive_IT來(lái)開啟下一次接收否則只會(huì)接收一次。這是新手常忘的一步。另外對(duì)于高速或大數(shù)據(jù)量通信建議使用DMA模式可以極大減輕CPU負(fù)擔(dān)。STM32CubeMX也能很方便地配置UART DMA。3.2 在Linux環(huán)境下使用C語(yǔ)言進(jìn)行串口回環(huán)在Linux中串口設(shè)備被抽象為/dev/ttyUSB0USB轉(zhuǎn)串口或/dev/ttyS0硬件串口等文件。我們可以用標(biāo)準(zhǔn)的文件IO操作來(lái)讀寫它。步驟一打開并配置串口關(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ù)位無(wú)校驗(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è)簡(jiǎn)單的循環(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這里簡(jiǎn)單處理 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ì)看到字符被回顯回來(lái)。同時(shí)第一個(gè)終端的程序也會(huì)打印出接收到的內(nèi)容。注意事項(xiàng)Linux下串口設(shè)備的權(quán)限問(wèn)題很常見(jiàn)。可以臨時(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庫(kù)讓串口操作變得極其簡(jiǎn)單。安裝與基礎(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è)線程來(lái)持續(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ī)長(zhǎng)度的測(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é)議定義的消息頭尾或長(zhǎng)度來(lái)解析數(shù)據(jù)幀。4. 回環(huán)測(cè)試中的深度問(wèn)題排查與性能優(yōu)化4.1 常見(jiàn)故障現(xiàn)象與診斷清單即使是最簡(jiǎn)單的回環(huán)也可能遇到各種問(wèn)題。下面是一個(gè)快速診斷表現(xiàn)象可能原因排查步驟完全無(wú)數(shù)據(jù)收發(fā)1. 物理連接錯(cuò)誤TX/RX接反或未接。2. 串口設(shè)備未正確識(shí)別或驅(qū)動(dòng)未安裝。3. 代碼中串口未使能或初始化失敗。4. 波特率等參數(shù)設(shè)置錯(cuò)誤。1. 用萬(wàn)用表通斷檔檢查TX-RX是否短接良好。2. 檢查設(shè)備管理器Windows或ls /dev/tty*Linux確認(rèn)設(shè)備存在。3. 在MCU代碼中檢查初始化函數(shù)的返回值添加調(diào)試打印。4. 使用邏輯分析儀或示波器測(cè)量TX引腳波形核對(duì)波特率。收到亂碼1.波特率不匹配最常見(jiàn)。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ā)送速度過(guò)快接收方處理不過(guò)來(lái)。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庫(kù)常見(jiàn)。2. 接收回調(diào)函數(shù)處理時(shí)間過(guò)長(zhǎng)錯(cuò)過(guò)了后續(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)軟件排查無(wú)法解決問(wèn)題時(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字符顯示出來(lái)。分析看波形是否干凈上升/下降沿是否陡峭有無(wú)明顯毛刺或振鈴測(cè)量波特率軟件可以測(cè)量?jī)蓚€(gè)下降沿起始位之間的時(shí)間換算成實(shí)際波特率看是否與設(shè)定值相符。核對(duì)數(shù)據(jù)直接對(duì)比發(fā)送的數(shù)據(jù)和解碼出的數(shù)據(jù)是否一致。通過(guò)邏輯分析儀你可以確認(rèn)信號(hào)是否真的發(fā)出去了波形質(zhì)量如何實(shí)際波特率是多少數(shù)據(jù)內(nèi)容是否正確這能從根本上區(qū)分是軟件配置問(wèn)題還是硬件信號(hào)完整性問(wèn)題。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í)通過(guò)拉低CTS信號(hào)告訴發(fā)送方“暫停發(fā)送”當(dāng)緩沖區(qū)有空閑時(shí)再拉高CTS告知“可以繼續(xù)”。發(fā)送方則用RTS信號(hào)來(lái)指示自己是否準(zhǔn)備好接收。在高速或大數(shù)據(jù)量傳輸如通過(guò)串口傳輸文件時(shí)啟用硬件流控能有效防止數(shù)據(jù)丟失。在回環(huán)測(cè)試中你可以嘗試短接RTS和CTS來(lái)模擬流控過(guò)程測(cè)試驅(qū)動(dòng)是否支持。軟件流控XON/XOFF通過(guò)發(fā)送特殊的控制字符XON0x11, XOFF0x13來(lái)實(shí)現(xiàn)流量控制?,F(xiàn)在較少使用。錯(cuò)誤處理成熟的串口通信程序必須考慮錯(cuò)誤。UART硬件通常能檢測(cè)到以下錯(cuò)誤幀錯(cuò)誤未檢測(cè)到有效的停止位??赡苁遣ㄌ芈蕠?yán)重失配或噪聲干擾。溢出錯(cuò)誤接收緩沖區(qū)已滿新數(shù)據(jù)到來(lái)導(dǎo)致舊數(shù)據(jù)被覆蓋。說(shuō)明接收處理太慢。噪聲錯(cuò)誤某些MCU在采樣點(diǎn)檢測(cè)到意外的電平變化。校驗(yàn)錯(cuò)誤如果使能了奇偶校驗(yàn)計(jì)算結(jié)果不匹配。在STM32的HAL庫(kù)中你可以通過(guò)HAL_UART_GetError()函數(shù)獲取錯(cuò)誤標(biāo)志并在錯(cuò)誤回調(diào)函數(shù)HAL_UART_ErrorCallback()中進(jìn)行處理比如清空緩沖區(qū)、重新初始化串口等。在回環(huán)測(cè)試代碼中可以故意設(shè)置錯(cuò)誤的波特率或幀格式來(lái)觸發(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ù)塊。通過(guò)檢查接收數(shù)據(jù)的完整性和正確性可以壓力測(cè)試DMA控制器、總線帶寬以及你的多任務(wù)調(diào)度程序如果使用了RTOS的穩(wěn)定性。這能暴露出在單一串口測(cè)試中無(wú)法發(fā)現(xiàn)的問(wè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)后最簡(jiǎn)單的驗(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ù)通過(guò)UART轉(zhuǎn)發(fā)給另一個(gè)硬件串口同時(shí)又將該硬件串口接收的數(shù)據(jù)通過(guò)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)最簡(jiǎ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ì)量?;丨h(huán)測(cè)試提供了一個(gè)純凈、確定性的環(huán)境讓你可以專注于邏輯正確性而不必受制于外部設(shè)備的不穩(wěn)定性。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九色色| 成人无码髙潮喷水A片| 国产免费性爱| 久久这里只有精品8| 五月婷婷久久久久| 777影视理论片大全在线观看| 激情5月婷婷狠狠干| 波多婷婷久久| 亚洲久热| 日日肏天天操| 久久er视频6| 丁香五月天堂网| 欧美激情2025| 色色激情网| 天天色播| 中文字幕AV在线播放| 噜噜噜噜婷婷五月天| 久久精品一区二区三区四区| 五月丁香啪| 日韩婷婷五月天| 大香蕉伊在| 婷婷五月婷婷| 黄网在线免费观看| 久久精品这里只有精品免费首页| 99热这里精| 五月天婷婷情色| 久久婷五月| 五月天婷婷激情综合| 97成人丁香婷婷| 超碰成人影视| 99热个人在线| www.色婷婷| 丁香五月婷婷日本| 久久国产色| 一区二区中文字幕| 五月综合亚洲色| 91久久九| 亚洲AV日韩在线观看| 色综合久久888| 九九99久久| 五月丁香婷婷AV天堂| 91精品婷婷国产综合 | 日本成人小说婷婷六月| 五月花综合网| 久久精品色| 亚洲色婷婷五月天| 久久九九re热| 91视频免费后入强操| 九九99九九精品免费 | 中文字幕五月久久婷婷| 91色五月在线观看| 91在线人| 真实的国产乱XXXX在线91| 99ri国产在线| 这里只有精品视频| 99热综合| www.9操| 另类精品视频在线观看| 狠狠狠狠狠干| 免费无码毛片一区二区A片| 婷婷久久色| 任你爽精品免费视频6| 99热这里只有精品免费观看| 亚洲激情五月| 色婷婷综合久久久久| 五月丁香啪| 伊人婷婷五月天av| 91婷婷五月天嫩女| 伊人五月婷婷| www.99视频| 五月丁香六月情| 婷婷色啪| 久久人妻视频| 国产内射婷婷| 婷婷久久婷婷色五月| aV直接看| 黄色短视频在线观看| 五月婷婷久久网| 五婷婷综合网| 五月婷久久久| 久久小视频免费| 九九九九九无码| 成人婷婷桔色| 欧美色婷婷| 色综合中文| 99九九久久| 99精彩视频| 99热18| 婷婷99狠狠躁天天躁| 婷婷久久色| 日本天天操| 久久大香蕉丁香| 超91热| 97超喷视频在线观看| 亚洲丁香婷婷| 噜噜噜狠狠色综合| 九九热视频精品| 婷婷五月天狠狠色| 中文字幕在线免费看线人| 国产AV一区二区三区日韩| 99爱在线| 丁香激情网| wWw色五月| 深爱五月亚洲| 婷婷色综合| 国产AV一区二区三区最新精品 | 婷婷中文字幕| 九月色婷婷综合| 香蕉久久国产AV一区二区| 色婷婷丁香网| 99热97| 婷婷丁香花五月天| 黄色av高清| 91久久久久久久久久| wwwss在线观看| 激情五月天色婷婷综合| 色婷婷在线视频| 婷婷五月丁香青青草在线| 色五月综合97| 丁香五月色五月婷婷宗合| 激情99| 色五月综合网| 综合性爱网| 美女婷婷六月色| 免费亚洲婷婷| 激情综合网激情五月婷婷| 久99久99精品免| 小视频aaa久久久| 色情五月停停丁香| 超碰av在| 久热这里这里有精品| 天堂草在线看www| 久久人妻精品| 成人电影一区| 亚洲综合久| 99riAV成人在线视频| 日韩啪啪视频| 久热无码| 狠狠色97| 99热66| 风流少妇A片一区二区蜜桃| 五月天AV大香蕉| 亚洲成人在线播放| 丁香五月偷拍| 激情九月婷婷| 91AV婷婷| 99er视频在线| 久久婷婷丁香花综合网| 激情欧美婷婷| 国产亚洲99久久精品| 天天干天天日蜜臀av| www激情| 亚洲丁香五月在线观看| 日本人妻伦在线中文字幕| 五月丁香婷婷婷激情爱爱| 色婷婷九月综合| 天天噜噜| 91大屁股精品| 伊人五月天| 丁香五月婷婷社区| 六月丁香VA| 婷婷亚洲在线| 婷婷五月天开心激情网| 久久电影五月天丁香电影| 亚洲色婷婷婷婷人人爽| 欧美人与性动交CCOO| 丁香六月婷婷综合激情欧美| 久久婷婷五月综合色奶水99啪| 人人草碰| 操骚货在线| www...com黄在线观看| 激情五月婷婷在线区| 天天日日夜夜| 色婷婷狠狠色| 激情淫乱男女| 99精品国产热久久91色欲| 六月婷基地| 天天揷综合网| 开心五月网| 五月天婷婷基地综合网| 泰州成人视频| 米奇激情婷婷| 亚洲啪| 激情五月婷婷色综合| 色色亚洲| 成人网站免费sxj| 亚洲激情av| 综合激情伊人影视在线| 午夜不卡久久精品无码免费| 99re热视频这里只精品5| 99热色综合| 色五月婷婷影院| 亚洲在线视频321| 丁香婷婷影院| 丁香五月婷婷久久久| 丁香六月婷婷| 26uuu亚洲精品国产| 日韩久久日| 国产精品色婷婷AV综合色色| 色婷婷在线播放| 丁香成人五月天| 五月婷婷六月激情在线| 玖玖玖婷婷婷| 久操婷婷| 久久婷婷综合五月趴| 亚洲熟女乱色综合亚洲网站| 91啪啪视频| 天天综合五月| 五月激情婷婷综合| 欧美久久一级内射wwwwww.| 亚洲十月婷婷综合| 97视频91| 亚洲无码影音| 久热伊人| 色色狼人综合| 日日撸天天干| www.激情| 婷婷五月另类网站| 99热这里只有精品9| 综合激情五月丁香| 97人人干| 五月丁香亭亭A片| 五月婷婷影院| 五月激激激情综合网| 五月婷啪啪| 亚洲综合色婷婷| 六月久久狠狠| 婷婷深爱五月天在线| 区啪精品| 中文字幕按摩做爰| 婷婷五月天色| 久狠狠狠| 99精品爱| AA丁香综合激情| 中文字幕在线人妻| 欧美久久九九| 男同91 | 五月丁香综合网| 色久九| 极品人妻VIDEOSSS人妻| 性爱视频久久| 亚洲AV综合在线观看| 久久深爱激情网| 亚洲成人综合在线| 99大香蕉| 99久久精品国产色欲| 欧美A级成人婬片免费看理论| 99在线精品视频| 五月激情综合深爱| 狠狠狠狠狠操| 婷婷五月婷婷五月天| 91久热| 丁香六月婷婷色XXXXX| 久久精品99国产精品日本| 激情亚洲婷婷| 婷婷丁香激情综合色情| 激情久久久久久久久久| 日本久久人| 五月丁香龟婷婷| 开心五激情网| 性爱电影科技贸易有限公司| 狠狠干青青草| 五月丁香婷婷激情澎湃四射| 天天摸人人摸| 色综合色色| VA婷婷亚洲| 婷婷五月天天天日日夜夜| 色综合久久88色综合天天99| 色五月天激情| 欧美噜噜免费观看| 最新精品视频99| 婷婷五月69| 天天色综合天天| 五月天婷婷色| 五月天全国最大成人网| 五月之婷婷| 激情二色月| 久久五月婷综合网| 中文国产五月天| 五月天婷婷网站| 天天做天天爱天天爽在| wwccc久久久| 五月丁香直播| 中文乱子伦视频| 午夜色丁香| 精品国产va久久久| 色婷婷五月色| 久久曰曰| 婷婷丁香红五月91C| 亚洲精品国产A久久久久久| 国产精品18久久久| 伊人五月婷| 五月做爱| 久久99久久99精品免观看粉嫩| 操97免费超级视频| 99热这里只有精品在线免费| 99色在线观看| 五月婷婷天堂| 少妇出轨做爰高潮A片| 午夜天堂一区人妻| 欧美啪啪9| 亚洲婷婷在线播放十月| 日日日影院| 99精品在线观看视频| 97碰| 国产SUV精品一区二区883| 综合久久狠狠| 91丨九色丨国产打屁股| 天堂婷婷丁香六月网| 人妻无码精品一区| 色偷偷综合| 国产日产亚系列精品版优势| 色九月欧美| 婷婷丁香视频在线观看免费| 五月天色社区| 丁香五月AV| 伊人狼人干| 99视频在线观看网址| 99操| 色五月女| 亚洲V国产V欧美V久久久久久| www,99热在线观看| 台湾综合丁香五月蜜桃| 久热99热| 成人网在线观看视频| 丁香视频| 天天日夜夜B久久| 亚洲视频伍月婷婷| 国产人妻777人伦精品HD| 99热99日天天干| 欧美色色色| 亚洲色A| 9热视频在线观看| 久久视频在线视频| 激情综合网丁香| 久99热| 色综合丁香| http://www.com久久久精品一区| 99ri视频| 久热这里只有| av五月天婷婷丁香| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 国产片天天爽夜夜爽| 婷婷五月天激情偷拍| 五月综合婷婷五月| 激情五月四色| 婷婷五月天,影院| 激情五月综合网| 九九九九精品精| 超碰人妻在线| www.99热| 五月激情婷婷综合| 天天日天天插| 热久69| 狠狠狠人妻| 五月婷婷啪啪| 久久精品色| 九九这里是免费的视频5| 热久久这里只有三级视频| 五月情四婷婷| 免费看欧美成人A片无码| 久久婷婷综合网| 色五月婷婷亚洲最大| caop视频| 久久婷婷五月激情网站| 99在线精品免费视频| 人妻狠狠操| 超碰免费大香蕉| 丁香综合久久| 大香蕉伊人爱在线| 激情黄色小说色五月| 九九成人| 色情五月天。| 中文字幕 码精品视频网站| 99久精品视频| 99色色网| 久久九九网| 国产精品色婷婷99久久精品| 久热欧美| 激情五月综合婷婷| 五月丁香婷婷国产精品综合| 日韩在线视频9色| 深爱五月亚洲| 久热AⅤ| 婷婷五月视屏| av国产精品偷| 99精品在线| 欧美婷婷六月丁香综合色连续高潮抽搐| 色五月天电影| 精品少妇蜜臀91| 五月激情综合婷婷| 激情五月综合网| 亚洲、欧美、国产另类笫二区| 亚洲另类婷婷综合| 婷婷五月激情热播| 五月天久久婷| 99视频精品全部观看10| 六月丁香婷婷五月天| 色欲久久综合| 久久这里只有欧美| 哇嘎成人久久| 久久婷婷亚洲| 这里只有精彩视| 综合九九久久| 五月天综合视频| 人人草公开操| WWW久久99久久99久久| 女人天堂AV| 久/久精品99看9| 激情小说五月天| 激情婷婷五月天在线观看| 丁香视频| 狠狠干狠狠色| 天天干天天拍| 国产在线6| 五月天大香焦| 五月丁香六月婷婷网| 亚洲综合网激情五月天| 99热费观看| 日本婷婷| 天天干天天干天天干天天干天| 99人人操人人爱久久久| 亚洲视频在线观看| 99ri在线| 婷婷丁香五月在线播放| 五月丁香美女| 婷婷久久综| 国产亚洲精品AAAAAAA片| 久久九九视频| 九九精品这里只有| www..999热久| 婷婷综合在线网| 色五月天综合网| 丁香五月 六月婷婷首页| 婷色五月天| 综合久久十三| 丁香五月偷拍| 亚洲AV人人操| 99热这里只有精品免费| 少妇久久诱惑视频| 久久综合激情五月天| 99久免费视频| 六月婷综合| 色色操| 天天精品视频在线观看视频| 思思99精品视频| 色情五月天。| 色婷婷情片| 丁香久久在线| 九九热最新| 久久性刺激| A A色色| 91色久| 亚洲成人在线观看网址| 丁香婷婷老熟女综合网| 成人国产欧美大片一区| 天天操夜夜操| 激情欧美五月丁香| 影音先锋一区二区三区| 五月丁香好婷婷A片网| 婷婷丁香激情综合色情| 五月综合缴情网| 丁香婷婷人妻综合网| 99色热| 91视频久久久| www91久久| av一区免费看| 激情婷婷五月综合| 97人妻人人| 亚洲va久久久噜噜噜久久天堂| 天堂成人A片永久免费网站| 五月丁香久久| 天天骑天天操| 99热精品在线观看| 99色视频| 第九色区av天堂| 五月天开心网| 日韩AV免费看| 99色综合久久| 爆乳熟女-区二区三区| 亚洲中文字幕在线电影| 婷婷久久女人| 久久综合婷婷五月| 色婷婷88| 九九热黄色| 久久久网站| AV色五月婷婷| 五月丁香激情综合欧美| 丁香五月六月激情久久| 激情综合网五月| 五月精品| 五月丁香999| 97人妻碰碰中文无码久热丝袜| 在线99热| 天天日天天插| 五月丁香狠狠爱婷婷综合| 99热99日天天干| 欧美日本高清视频99| 91丨九色|PRNY熟妇| 五月婷婷丁香啪啪| 丁香色五月婷婷17C| 五月丁香视频在线观看| 亚洲色模骚货| av在线资源| 激情综合五月天| 丁香五月婷婷综合啪啪| 六月婷婷网| 91碰碰碰| 亚洲 小说 欧美 激情 另类| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 丁香色五月直播| 激情涩涩网| 五月天婷婷深深爱| 熟女网站久久| 国产性爱在线| 激情AV在线| 久久久久婷婷五月热综合| 国产片色| 国产精品日日躁夜夜躁| 日本欧美成人片AAAA| 中文超碰视在线| 2017人人操| 狠狠艹狠狠艹| 色五月av| 人人操av| 狠狠综合色网| 亚洲综合网激情五月天| 久大香蕉| 少妇人妻丰满做爰XXX| 99啪在线视频| 婷婷在线操| 九九热最新| 国产精产国品一二三在观看| 久久婷婷原创视频| 极品人妻VideOssS人妻| 丁香九色不卡aaa | 丁香五月激情性色郤| 九九精品亚洲| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 久久久久久久97| 九九久久综合网站| 九九av| 国产精品天天狠天天看| 五月天啪啪视频| 色情一区二区播放| 色999五月色| 午夜丁香 婷婷| Av性爱网| 亚州操操| 久久99激情五月天| 色婷婷丁香五月天激情综合网| 久久99激情| 99精品丁香五月| 99re熱| 丁香婷婷五月| 另类丁香五月天区图| 婷婷五月av| 色屌丝中文字幕| 亚洲偷| 久热99| 激情五月天偷拍综合网| 无码一区二区三区四区五区91c| tingtingjiqingwuyue| 人人综合久| 东京热人妻一区二区三区在线| 激情婷婷综合| 五月婷婷丁香| 色色99色色| 九九色色| 日本久热| 色色色五月婷| 色五月婷婷影院| 五月色婷婷综合| 在线精品97| 99色看| 乱岳熟女50岁| 丁香成人综合| 色色网站毛片| 亭亭社区五月天| chaopengdaxiangjiao| 色9色| 这里只有精品1| 99热亚洲| www.婷婷五月天| 激情亚洲婷婷| 91一起操| 91色综合| 色综合色色| 狠狠干综合| 91久久久久久| 九九热视频精品2| 色综合色色色| 婷婷综合五月天激情| 超pen个人视频97| 天天干,噜噜色,狠狠色| 九九成人电影婷婷| 丁香婷婷影院| 婷婷五月天激情小说| a在线观看| 丁香九月综合| 久九男女天堂| 色色色色av色色色色| 久久精品五月| 久热伊人| 99视频精品视频| ..真实国产乱子伦对白在线_欧| 丁香伊人激情| 久久五月天激情婷婷| 男人的天堂五月丁香| 99热碰碰热| 五月婷婷综合视频| 五月综合缴情网| 色色色色区| 丁香六月婷婷| 五月婷婷五月天亚洲无码| 久久九九亚洲| 天天插天天爽| 色欲色香伊人| 91操人视频| 不卡在线视频| 一级二级色大片| 婷婷丁香在线| 久热精品9999| 99精品在线播放| 99热国内| 综合久久综合综合| 天天插综合网| 五月天六月婷| 99色这里| 丁香深五月婷婷| 超碰大香蕉网| 日日操,夜夜撸| 五月婷色色| 天天久综合网永久入口18| 婷婷色综合| renrencaoni| 丁香五月婷婷婷桃花影院| 日本综合色图| 久久机热/这里只有精品| 九九九这里只有精品| 亚洲岛国电影| 综合久| 欧美丁香婷婷五月天| 色狠狠狠干| 久久狠婷婷| 国产毛片精品一区二区色欲黄A片| 欧美丁香五月夫妻天| 99热日本| 欧美色99| 奇米四色五月天| 精品人妻伦一二三区久久| 日本九婷婷| 99色播| 丁香婷婷六月天| Www.se.久久| 五月婷婷综合网| 日韩成人电影在线播放| 久久五月激情| 激情激情激情网| 少妇丁香婷婷| 五月天堂色| 国产免费一区二区三州老师F1F1……| 国产一二区爆乳_1国产日韩一区二区三-成人AV | 色天天久婷婷| av中文在线| 丁香五月婷婷天堂大香蕉| 久久久天堂国产精品女人| 91久久婷婷| 婷婷久月| 亚洲小说欧美激情| 激情开心五月婷婷| 九九人妻福利| 五月婷婷激情综合| 日本超碰在线| 激情六月婷婷| 97热这里精品在线视频| 超碰精品国产首页| 婷婷99丁香| 激情玖玖综合网| 四川BBB搡BBB爽爽视频| 五月开心播播网| 色色色综合| 香蕉综合网| 涩五月婷婷| 色婷婷电影| 日本片日本片祼观看网站在线看中文版网页在线看 | 99啊精典免费视频| 9久久久| 67194中文在线| 99ER热精品视频| AA片在线观看视频在线播放| 爱久久小说下载网| www.金莲av| 狠狠精品干练久久久无码中文字幕| www99热| 久久丁香五月天| 久久亚洲婷婷| 国产熟妇乱子伦hd| 99爱在线| 高清国产AV| 丁香婷婷五月综合影院| 99操视频| 婷色人人狠| 国产精品五月丁香| 思思精品久久艹| 无码色色| 五月天伊人| 色综合激情| 五月香婷婷| 八戒青柠影视剧在线观看| 强辱丰满人妻HD中文字幕| av网站不卡在线| 99热日本精品| 激情久久久久久| 欧美成人无码高清一区二区三区| 少妇口诉沐足视频播放器网址| 五月精品免费XXX| 婷婷国产成人| 日日杆天天| 大地资源色婷婷视频在线| 丁香五月色激情| 亚洲天99| 狠狠操天天操| 色婷婷六月丁香综合欲精品| 另类图片色五月| 国产做爰视频免费播放| 青青色com久久| 伊人碰碰碰| 99热这里只有精品23| 五月天六月色| 国产成人综合网| 天堂网操| 色墦五月丁香| 五月婷天天搞视频| 五月天婷婷小说| OYIWbGcPu8H| 伊人超碰| 五月天激情婷婷小说| 色碰碰视频| 婷婷综合性爱网| 操操国产| 久久机只有这里精品| av在线观看网站| 人人妖人人97| 天天插天天玩天天干| 日日插日日干| 天天插天天插| 超碰9| 激情影院免费视频婷婷五月天| 一本色道久久综合狠狠躁小说| 国产激情久久久| 激情婷婷九月| 丁香婷婷六月在线资源观看| 五月丁香亚洲综合| 欧美色偷拍| 婷婷丁香亚洲五月天| 91色噜噜狠狠狠狠色综合| 婷婷亚洲在线| 激情五月综合免费| 久久色情| 9久久网| 开心五激情网| 激情五月天小说网| 九色七七| 色色色色色网站| 午夜69成人做爰视频| 久操福利| 天天久| 成人做爰黄A片免费看直播室男男 A片试看120分钟做受图片 | 婷婷D区| 99热这里都是精品| 天天操夜夜操| 伊人久久大香| 天天橾夜夜爽| 五月天婷婷狂暴白浆| 69堂午夜视频最新地址| 色婷婷丁香五月| 99ri在线播放| 天天插综合| 欧美日韩一区二区三区四区| 色婷五月丁香久亚洲| 五月天丁香网| 久去色色| 五月丁香啪啪| 久久HD| 天天爽天天干| 婷婷色中文| 五月丁香综合激情| 色婷婷色| 欧美激情综合五月色丁香| 九月丁香八月婷婷加勒比| 五月天无码视屏播放| 婷色五月| 婷婷五月天视| www.色婷婷.com| 综合欧美五月婷婷| 五月婷婷六月丁香| 色色色精品无码区| 精品人妻伦九区久久AAA片| 丁香婷婷精品视频| 日本久久网| 99热精在线九九久久保| 成人综合网站| 久久这里99| 新激情婷婷| 久久丁香久久| 狠狠色综合网站久久久久| 日日爽日日| 99干99| 日韩亚洲视频| 激情五月图| 少妇2做爰HD韩国电影| 综合五月天天天天天五月| 丁香婷婷狠狠97| 激情婷婷啪啪| 亚卅毛片| 五月天综合婷婷| 日韩欧美一区二区三区四区| 日本不卡高字幕在线2019| 久热这里只有精品视频6| 婷婷色综合网日韩国产| 国产婷婷综合| www.激情.com.| 丰满女老板BD高清A片| 狠狠色精品综合| 国产操肏网站| 99这里只有精| 激情色情五月天| 丁香五月开心亚洲| 久久激情五月| 丁香美女主播视频在线观看| 4399人妻无码久久久| 色欧洲| 亚洲mm色| 欧美日本99| 五月丁香六月婷综合成人综合| 日日操夜夜操狠狠操| 婷婷丁香五月综合久久| 超碰大香蕉网| 97久久香草精品视频| 狠狠色噜噜狠狠亚洲A∨| 九九色婷婷| 亚州日本欧州韩美高青高潮一| 视频久久9| 五月丁香六月婷| 久热网在线视频| 91一起操| 亚洲av另类在线观看| www.婷婷五月天.com| 久久婷婷一级片| 99九九综合久久九九| 99热个人在线| 五月婷婷六月丁香综合| WWW.桔色成人.COM| 伊九九三级区| 大香蕉久久伊人网| 日日操日日撸| 久热这里只有精品6| 五月婷婷开心色伊人| 97超碰在线免费观看| 国自产拍偷拍精品啪啪一区二区| www.91婷婷| 五月婷婷花| 噜噜色天天开心| 激情网色五月| 色五月首页| 色九月婷婷丁香| 亚洲综合色丁香婷婷六月| 99爽视频| 操逼电影免费看| 色五月激情网| 婷婷久久网| 久久婷婷视频| 日日操人人操| 五月丁香亭亭成人电影| 99热国产精品| 丁香九月综合在线| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 丁香六月婷婷综合激情欧美| 婷婷.com| 另类综合激情| 久热这里只精品| 六月丁香婷婷色狠狠久久| 九月激情婷婷丁香| 538在线精品| 久久久婷| 五月婷婷开心网| 激情五月天色婷婷| 婷婷色日本| eeuus五月婷| 亚洲色综合| 五月天婷婷綜合院| 99人人操人人操人人精| 六月丁香婷婷综合影院| 日本三级日本黄色| 丁香五月婷婷啪啪视频| 亚洲视频综合网| 中字幕视频在线永久在线观看免费 | 丰满少妇猛烈A片免费看观看| 色播六月| 激情五月婷| 五月六月丁香激情| 色婷婷五月中文字幕在线dvd| 色五月综合网| 久久在线人妻| 六月婷婷国产| 久久这里只有精品22| 天天日人人爽| 国产精品色一哟哟| 人人做人人看人人摸| 日日干日日s| 五月激情久久综合| 天天色天天爱天天舔| 色亚洲中文| 色婷婷丁香五月丁香| 翔田千里aV中文字幕| 天天肏天天插| 亚洲性图一区二区| 亚洲色情网站| 色五月丁香五月| 中文成人在线| 色婷丁香| www.色综合| 色婷婷视频在线| 色婷婷狠狠| www.97视频| 伊人天堂婷婷| 最新日韩久热免费视频看看| 99久久视频| 欧美97色| 5月婷婷综合| 婷婷深爱五月亚洲综合| 久99久热只有精品国产99| 丁香五月中文字幕久色| 五月婷婷成人| 91性高潮久久久久久久久| 久久99网| 中文字幕日产A片在线看| 超碰在线免费观看日韩| 婷婷五月丁香激情图片| 97色在线观看视频| 9久热| 欧美日韩大黄| 91wwmm导航| 久久丁香五月| 九九亚洲视频| 色天使色综合| 五月婷亚洲精品AV天堂| 婷婷六月激情啪啪| 第五色婷婷| 婷婷五月天激情文学| 国产69久久久欧美黑人A片| 影音先锋男士资源网一区| 丁香六月婷婷综合欧美| 爱之国产色情综合| 97婷婷五月天| 亚洲操b| 国产成人精品亚洲线观看| 超碰啪啪网| 日韩综合天堂| 婷婷五月天激情AV影院| 大香蕉啪啪| 国产乱子轮XXX农村| 少妇婷婷五月天| 久热这里只有精品3| 天天摸色吧天天摸色吧| 九九精品热| 五月丁香综合久久夜夜| 这里只有精品视频222| 激情五月天小说视频| 五月丁香婷婷综合久久| 老美AA片| 五月天婷婷操逼视频| 国产美女精品| 成人视屏在线观看| 狠狠爱成人综合网| 精品久色| 一区二区三区XXXXXX| 色国产五月| 婷婷五月丁香综合激情| 五月婷婷 激情按摩| av中文在线| 人人爽天天爽| 精品爱欲五| 日韩成人av在线| www天天色天天射| 99国产精品久久久久久久久久久 | 日日狠狠久久偷偷四色综合免费| caop在线视频| 五月天丁香啪啪啪啪| 99久久这里只有精品免费官网| 99热这里只有精品在线观看| 青草青草视频2免费观看| 色婷婷综合综合网| 亚洲亚洲永久无码777777| 公的粗大挺进了我的密道| 亚州色婷婷| 97五月天| 婷婷五月天天| 99这里有精品免费| 香蕉久久国产AV一区二区| 99视频在线啪| 婷婷五月六月激情| 夜夜爽77777妓女免费下载 | 综合色播| 欧美三级巜人妻互换| 第2色五月婷| 婷婷月综合| 久热久操久热久草国产91| 丁香六月婷婷综合在线| 欧洲电影在线观看免费版英语版 | 亚洲 在线 另类| 99色精品视频| 成片免费观看视频大全| 操日本三片99| 狠狠干夜夜干| 五月丁香在线观看国产| 激情五月婷婷啪啪| 色婷婷成人做爰A片免费看网站| 亚洲国产婷婷色五月| av在线免费播放| 日本天堂爱爱| 五月丁香激情综合啪啪| 亚洲精品中文字幕成人片| 热久久99热欧美国产亚洲| 草草色情综合网| 99视频精品全部免费 在线| 人妻内射一区二区在线视频| 蜜桃婷婷丁香五月天狠狠久久综合| 狠狠综合| 丁香大香蕉| 五月婷婷激情久久| 99re思思| 免费视频99| 六月欧美综合色情| 嫩草AV久久伊人妇女超级A| 久青青久| 色色色无码| 丁香婷婷人妻| 99ri视频| 99热成人精品| 色和综合网| av网站中文| 91久久人人操| 天天人人人人人人人人人人人| 激情图片久久| 久久五月视频| 五月丁香日本一抹本| 激情綜合W W W,激情五月天| 99综合色色色| 思思久久99热只有频精品66| 五月婷婷久久内射| 色五月激情五月| 婷婷五月天香蕉| 操操熟女| 国产.亚洲.欧洲视频在线| 五月天天堂久久| 久色资源| 丁香六月视频| 一区=区操屄高清大全av| 五月天开心网| 色噜噜狠狠色综合网| 婷婷五月激情丁香| 99久久思思| av不卡网站| 综合成人小说婷婷| 激情五月丁香五月| 熟妇内谢69XXXXXA片| 激情五月天激情综合网| 色综合大香蕉| 八戒青柠影视剧在线观看| 男女久久婷婷五月天| 综合网网欲色| 91欧美| 久久狠色噜噜狠狠狠狠97| 色狠狠婷婷| 秋霞A V毛片| 3p日韩网站视频| 婷婷五月天你懂的| 日本va欧美va国产激情| 天天干、天天日日| 91岛国片| 婷婷丁香五月亚洲17cao| 六月丁香婷婷在线波多| 综合激情肏逼网| 夜夜爽天天爽| 五月天婷婷色综合| 亚洲激情淫网| 91丁香| 色婷久久| 日本熟女二区| 色婷婷XXXXX| 色婷婷91激情小说| 日韩无码成人电影| 天天色官网| 久久五月天婷婷| 天堂呦 呦百度搜索-百度搜索| 另类小说五月天| 精品色色网| 操操碰| 五月丁香在线观看国产| 久久婷婷五月| 五月天婷婷综合| 97色五月天| 日本色99| 综合在线观看99| 99自拍视频| 婷婷五月天综合久久| 色婷婷深爱五月| 另类综合激情| 久久婷婷六月综合国际| 中文激情网| 大香蕉五月婷婷| 无码人妻一区| sewuyuejiqingwang| 色婷婷色99国产综合精品| 无码一级片| 熟女色色一区二区| 国产精品色色| 99re在线观看| w婷婷五月婷婷w| 日欧大屏操| 俺去也在线视频| 婷婷五月天另类视频| 亚洲综合九九| 丁香五月婷婷Av| 欧美久久久久久久久中文字幕| 人妻丰满精品一区二区A片| 狠狠干综合| 亚洲愉拍99热成人精品| 天天干天天日天天操| 婷婷丁香五月综合激情小说| 丁香五色月婷婷网| 99性视频| 五月婷婷婷综合网| 99热精品10| 日韩精品99久久| 色级婷婷| 婷婷综合丁香| 色婷婷性爱网| 四川BBB搡BBB爽爽视频| 午夜少妇在线观看视频| 97五月天| 日本三级日本三级99| 久久a热| 超碰久热| 色婷婷狠狠爱| 99操逼| www.五月婷婷久久.com| 亚洲av日韩无码| 99热大香蕉| 五月久久婷婷丁香| 超碰色色综合| 天堂久久精品| 久热9| 婷婷五月天丁香花| av大香蕉| www.天天日| 丁香九月激情| 国产做A爰片毛片A片美国| 少妇人妻丰满做爰XXX| 国产性爱在线| www超碰com| 伊人大蕉香| 九色无码| 九九色之九九色之88| 91视频精品99| 人人人操Av| 天天草天天舔| 天天综合亚洲综合| 国产黄色大片| 亚洲成人人人操| 激情五月天伊人影院| 99视频精品在线| 五月婷婷天堂| 综合色播| 婷婷97| 国产亚洲精品久久久久久豆腐| 538在线精品| 丁香五月欧美婷婷| 538任你爽视频不一样的| 天天插天天射天天干| 中文AV在线观看| 99在线精品免费视频| 亚洲亚洲人成综合网络| 久草婷妨| 丁香五月九九| 婷婷99狠狠躁天天躁| 99热日本| 五月天亚洲色| 狠狠色综合网| 狠狠干综合| 日本在线wwww| 国内一级精品| 日本婷婷丁香五月| 婷婷色狠狠| 无码啪啪| 激情又色又爽又黄的A片| 九一娱乐在线观看视频| 伊人玖玖精品| 开心五月婷婷六月丁香| 毛片毛片毛片毛片| 无码激情| 99精品国产在热久久| 久久综合五月| xxxx五月| 日本社区五月天激情| 色播五月丁香| 九九爱精品网站| 婷婷综合久久| 91久久婷婷人人澡草 | 97久操视频| 人妻系列久久久久久久久久久| 天天狠狠干| 六月丁香五月天| 亚洲视频码| 人人干人人干骚美女| 色五月激情五月天| 97色婷| 婷婷激情综合色五月久久91| 丁香六月婷婷激情综合| 五月婷精品| 操一区| 绿色小导航AV| 丁香开心深爱| 超碰免费人妻| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | www.狠狠狠.com| 99九九综合久久九九| 97碰精品| aaaaa黄色| www.五月丁香| 91聚色综合网| 伍月婷丁香婷| 91黄址| 丁香婷婷综合影院| 五月婷婷就去色| 久久五月天婷婷| 亚洲爱婷婷| 五月丁香六月婷婷在线播放| 色五月婷婷五月| 久久婷婷五月综合激情国产| 激情五月婷婷色| 无码少妇高潮喷水A片免费| 日韩亚洲视频| 高清无码网址| 日本丰满久久| 婷婷五月天com| XX色综合| www.婷婷.com| 丁香五月天成人网站| 婷婷中文综合网| 天天噪夜夜爽| 久热99| 色色色欧美| www..999热久| 91精品又长又大又粗又爽又猛| 五月婷婷伊人在线| 九九九激情综合| 五月停停直播| 日韩色色视频| 婷婷丁香在线| 色啪网| 久久丝袜婷婷| 中文字幕综合| Www99热|