色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

Qt實(shí)現(xiàn)Modbus RTU串口通信:從協(xié)議解析到工業(yè)數(shù)據(jù)采集實(shí)戰(zhàn)

Qt實(shí)現(xiàn)Modbus RTU串口通信:從協(xié)議解析到工業(yè)數(shù)據(jù)采集實(shí)戰(zhàn) 1. 項(xiàng)目概述與核心價(jià)值最近在做一個(gè)工業(yè)數(shù)據(jù)采集的小項(xiàng)目核心任務(wù)是通過串口與現(xiàn)場(chǎng)的PLC、傳感器等設(shè)備通信讀取它們的狀態(tài)和數(shù)據(jù)。這個(gè)場(chǎng)景在工控、物聯(lián)網(wǎng)領(lǐng)域太常見了而Modbus RTU協(xié)議又是串口通信里當(dāng)之無愧的“老大哥”。我選擇了Qt框架來實(shí)現(xiàn)一方面是因?yàn)樗目缙脚_(tái)特性項(xiàng)目后期可能需要部署到嵌入式Linux工控機(jī)上另一方面Qt對(duì)串口QSerialPort的支持非常成熟封裝得很好能省去很多底層細(xì)節(jié)的麻煩。這個(gè)“【Qt】modbus之串口模式讀操作”項(xiàng)目說白了就是利用Qt的類庫實(shí)現(xiàn)一個(gè)穩(wěn)定、可靠的Modbus RTU主站Master讀功能從從站Slave設(shè)備那里把我們需要的數(shù)據(jù)“拿”回來。聽起來簡(jiǎn)單不就是打開串口、發(fā)指令、收數(shù)據(jù)嗎但實(shí)際做起來從協(xié)議幀的組包、CRC校驗(yàn)的計(jì)算到串口超時(shí)、數(shù)據(jù)粘包的處理每一步都有不少細(xì)節(jié)需要注意。網(wǎng)上很多代碼示例要么過于簡(jiǎn)單只演示流程要么耦合度太高難以復(fù)用。我這次的目標(biāo)是構(gòu)建一個(gè)清晰、健壯且易于集成的讀操作模塊不僅要能跑通更要能在復(fù)雜的工業(yè)現(xiàn)場(chǎng)環(huán)境中穩(wěn)定運(yùn)行。如果你也在用Qt做類似的數(shù)據(jù)采集或設(shè)備控制特別是對(duì)通信的可靠性和代碼結(jié)構(gòu)有要求那么我踩過的這些坑和總結(jié)的經(jīng)驗(yàn)或許能幫你節(jié)省不少時(shí)間。2. 核心思路與方案選型在動(dòng)手寫代碼之前先得把整個(gè)通信鏈路和軟件架構(gòu)想清楚。Modbus RTU是一種基于串行總線如RS-232/RS-485的主從式協(xié)議通信過程是半雙工的即同一時(shí)刻只能有一方在發(fā)送。作為主站我們的核心動(dòng)作就是“問”與“聽”組織一個(gè)符合格式的查詢幀問通過串口發(fā)出然后等待并解析從站的響應(yīng)幀聽。2.1 為何選擇純Qt實(shí)現(xiàn)而非第三方庫市面上有一些成熟的C Modbus庫比如libmodbus。它們功能全面但引入外部依賴會(huì)增加項(xiàng)目復(fù)雜度尤其是在跨平臺(tái)部署時(shí)可能遇到編譯問題。Qt本身提供了QSerialPort和QTcpSocket對(duì)于實(shí)現(xiàn)Modbus RTU串口和TCP來說基礎(chǔ)通信能力是足夠的。選擇純Qt實(shí)現(xiàn)意味著依賴純凈項(xiàng)目只需Qt環(huán)境部署簡(jiǎn)單??煽匦詮?qiáng)從字節(jié)流到協(xié)議幀的每一步都自己掌控便于深度定制和調(diào)試。學(xué)習(xí)價(jià)值高能透徹理解Modbus協(xié)議和串口通信的每一個(gè)細(xì)節(jié)。當(dāng)然這要求我們自己實(shí)現(xiàn)協(xié)議幀的封裝、CRC校驗(yàn)和超時(shí)重試等機(jī)制但這正是我們理解整個(gè)通信過程的好機(jī)會(huì)。2.2 軟件架構(gòu)設(shè)計(jì)狀態(tài)與事件驅(qū)動(dòng)串口通信是典型的異步事件驅(qū)動(dòng)模型。你不能發(fā)完指令就傻等因?yàn)閺恼卷憫?yīng)需要時(shí)間而且串口數(shù)據(jù)是流式的可能一次readyRead信號(hào)并不能收到一個(gè)完整的幀。我設(shè)計(jì)的核心架構(gòu)圍繞兩個(gè)關(guān)鍵類展開ModbusRtuMaster類負(fù)責(zé)協(xié)議層。它知道如何根據(jù)功能碼如0x03讀保持寄存器、起始地址、數(shù)據(jù)數(shù)量來組裝請(qǐng)求幀也知道如何解析響應(yīng)幀并驗(yàn)證CRC。它對(duì)外提供諸如readHoldingRegisters(slaveId, startAddr, quantity)這樣的友好接口。SerialPortManager類負(fù)責(zé)物理層。它封裝了QSerialPort管理串口的打開、配置波特率、數(shù)據(jù)位等、數(shù)據(jù)收發(fā)。它內(nèi)部維護(hù)一個(gè)緩沖區(qū)用于累積從串口讀取到的原始字節(jié)流并嘗試從中識(shí)別出一個(gè)完整的Modbus RTU幀通過幀間靜默時(shí)間判斷。兩者通過信號(hào)槽協(xié)作ModbusRtuMaster發(fā)出一個(gè)讀請(qǐng)求SerialPortManager將其轉(zhuǎn)為字節(jié)流發(fā)送出去然后啟動(dòng)一個(gè)定時(shí)器等待響應(yīng)。當(dāng)串口有數(shù)據(jù)到達(dá)SerialPortManager將其放入緩沖區(qū)并進(jìn)行幀完整性判斷。一旦確認(rèn)收到一個(gè)完整且CRC正確的響應(yīng)幀就通過信號(hào)傳遞給ModbusRtuMaster進(jìn)行解析最終將解析結(jié)果成功或失敗以及數(shù)據(jù)通過信號(hào)通知給上層業(yè)務(wù)邏輯。這種分離的設(shè)計(jì)使得協(xié)議處理和硬件通信解耦任何一部分的修改或替換比如未來改用TCP都相對(duì)容易。3. 關(guān)鍵組件詳解與實(shí)現(xiàn)3.1 QSerialPort的配置與坑位指南QSerialPort是Qt給我們的利器但配置不當(dāng)就是“坑”器。以下是一個(gè)標(biāo)準(zhǔn)化的串口配置流程每一行都有講究QSerialPort *serial new QSerialPort(this); // 1. 設(shè)置端口名注意跨平臺(tái)差異 #ifdef Q_OS_WIN serial-setPortName(COM3); // Windows #else serial-setPortName(/dev/ttyUSB0); // Linux/macOS #endif // 2. 嘗試打開串口 if (!serial-open(QIODevice::ReadWrite)) { qCritical() Failed to open port: serial-portName() Error: serial-errorString(); return; } // 3. 核心參數(shù)配置以9600-8-N-1為例這是Modbus RTU最常見配置 if (!serial-setBaudRate(QSerialPort::Baud9600)) { qWarning() Set baud rate failed.; } if (!serial-setDataBits(QSerialPort::Data8)) { qWarning() Set data bits failed.; } if (!serial-setParity(QSerialPort::NoParity)) { // Modbus RTU通常無校驗(yàn) qWarning() Set parity failed.; } if (!serial-setStopBits(QSerialPort::OneStop)) { qWarning() Set stop bits failed.; } if (!serial-setFlowControl(QSerialPort::NoFlowControl)) { // 硬件流控通常不需要 qWarning() Set flow control failed.; } // 4. 關(guān)鍵配置緩存與超時(shí) serial-setReadBufferSize(1024); // 設(shè)置讀取緩沖區(qū)大小避免數(shù)據(jù)溢出 // 超時(shí)控制通過QTimer實(shí)現(xiàn)而非依賴QSerialPort自帶的waitForReadyRead后者在事件循環(huán)中可能阻塞。注意setBaudRate()等配置函數(shù)返回bool值務(wù)必檢查返回值。我曾遇到過在Linux下因?yàn)闄?quán)限問題用戶不在dialout組導(dǎo)致串口能打開但參數(shù)設(shè)置全部失敗通信自然也不成功排查了很久。關(guān)于流控Flow Control絕大多數(shù)Modbus RTU應(yīng)用場(chǎng)景RS-485總線都不需要硬件流控RTS/CTS。如果你配置了硬件流控但線路不支持會(huì)導(dǎo)致數(shù)據(jù)無法收發(fā)。所以除非設(shè)備說明書明確要求否則一律設(shè)為NoFlowControl。3.2 Modbus RTU幀格式的封裝與解析這是協(xié)議層的核心。一個(gè)Modbus RTU請(qǐng)求幀結(jié)構(gòu)如下以讀保持寄存器0x03功能碼為例字段從站地址功能碼起始地址高字節(jié)起始地址低字節(jié)寄存器數(shù)量高字節(jié)寄存器數(shù)量低字節(jié)CRC低字節(jié)CRC高字節(jié)示例值0x010x030x000x6B0x000x03CRC_LCRC_H組裝請(qǐng)求幀QByteArray ModbusRtuMaster::assembleReadRequest(quint8 slaveId, quint16 startAddr, quint16 quantity) { QByteArray frame; QDataStream stream(frame, QIODevice::WriteOnly); stream.setByteOrder(QDataStream::BigEndian); // Modbus協(xié)議使用大端序網(wǎng)絡(luò)字節(jié)序 stream slaveId; stream static_castquint8(0x03); // 功能碼讀保持寄存器 stream startAddr; stream quantity; quint16 crc calculateCRC(frame); // 計(jì)算CRC stream static_castquint8(crc 0xFF); // CRC低字節(jié)在前 stream static_castquint8(crc 8); // CRC高字節(jié)在后 return frame; }CRC16校驗(yàn)計(jì)算Modbus RTU使用CRC-16/MODBUS算法多項(xiàng)式0x8005初始值0xFFFF。這里提供一個(gè)高效查表法的實(shí)現(xiàn)quint16 ModbusRtuMaster::calculateCRC(const QByteArray data) { static const quint16 crcTable[] { /* 預(yù)先計(jì)算好的256值CRC表 */ }; quint16 crc 0xFFFF; for (char byte : data) { crc (crc 8) ^ crcTable[(crc ^ static_castquint8(byte)) 0xFF]; } return crc; } // 注意計(jì)算CRC時(shí)輸入是幀中除CRC字段本身之外的所有字節(jié)。解析響應(yīng)幀響應(yīng)幀比請(qǐng)求幀復(fù)雜因?yàn)橐獢y帶數(shù)據(jù)。成功響應(yīng)格式為[地址][功能碼][字節(jié)數(shù)][數(shù)據(jù)...][CRC]。解析時(shí)需按順序讀取并校驗(yàn)CRC。bool ModbusRtuMaster::parseReadResponse(const QByteArray frame, quint8 expectedSlaveId, QVectorquint16 result) { if (frame.size() 5) return false; // 最小響應(yīng)幀長(zhǎng)度地址1功能碼1字節(jié)數(shù)1CRC2 QDataStream stream(frame); stream.setByteOrder(QDataStream::BigEndian); quint8 slaveId, funcCode; stream slaveId funcCode; if (slaveId ! expectedSlaveId || funcCode ! 0x03) return false; quint8 byteCount; stream byteCount; if (frame.size() ! 5 byteCount) return false; // 長(zhǎng)度校驗(yàn) // 驗(yàn)證CRC計(jì)算整個(gè)frame的CRC結(jié)果應(yīng)為0 if (calculateCRC(frame) ! 0) return false; result.clear(); for (int i 0; i byteCount; i 2) { quint16 regVal; stream regVal; result.append(regVal); } return true; }3.3 串口數(shù)據(jù)流的粘包與斷包處理這是實(shí)現(xiàn)中最容易出問題的地方。QSerialPort的readyRead()信號(hào)觸發(fā)時(shí)機(jī)是不確定的它只表示有數(shù)據(jù)可讀但可能是一個(gè)完整幀、半個(gè)幀、或多個(gè)幀粘在一起。解決方案基于“幀間靜默時(shí)間”的斷幀法。Modbus RTU協(xié)議規(guī)定幀與幀之間至少要有3.5個(gè)字符時(shí)間的靜默間隔。我們可以利用一個(gè)定時(shí)器來模擬這個(gè)判斷。在SerialPortManager中維護(hù)一個(gè)QByteArray m_buffer作為接收緩沖區(qū)。每當(dāng)readyRead()信號(hào)觸發(fā)就將新數(shù)據(jù)readAll()追加到m_buffer。關(guān)鍵步驟同時(shí)或追加后啟動(dòng)或重啟一個(gè)定時(shí)器比如m_frameTimer定時(shí)時(shí)長(zhǎng)設(shè)置為大于3.5個(gè)字符時(shí)間。計(jì)算方式(1000.0 / 波特率) * (1數(shù)據(jù)位停止位) * 3.5。以9600-8-N-1為例一個(gè)字符時(shí)間約1.04ms3.5個(gè)字符約3.64ms定時(shí)器可設(shè)為4ms或5ms以保證安全。當(dāng)定時(shí)器超時(shí)意味著在3.5個(gè)字符時(shí)間內(nèi)沒有新數(shù)據(jù)到來可以認(rèn)為當(dāng)前m_buffer中累積的數(shù)據(jù)構(gòu)成了一個(gè)“可能完整”的幀。此時(shí)將緩沖區(qū)數(shù)據(jù)取出進(jìn)行CRC校驗(yàn)等完整性判斷。如果校驗(yàn)通過則是一個(gè)有效幀將其取出并清空緩沖區(qū)對(duì)應(yīng)部分如果校驗(yàn)失敗可能是幀錯(cuò)誤或還未收全策略可以是丟棄緩沖區(qū)頭部的第一個(gè)字節(jié)因?yàn)閹^可能錯(cuò)了然后繼續(xù)等待后續(xù)數(shù)據(jù)。void SerialPortManager::onReadyRead() { m_buffer.append(m_serialPort-readAll()); // 每次收到數(shù)據(jù)都重啟“幀結(jié)束”判斷定時(shí)器 m_frameTimer.start(5); // 5ms超時(shí) } void SerialPortManager::onFrameTimerTimeout() { if (m_buffer.isEmpty()) return; // 嘗試從緩沖區(qū)頭部查找一個(gè)完整且有效的幀 for (int i 0; i m_buffer.size(); i) { // 假設(shè)有一個(gè)函數(shù)isValidFrame從位置i開始校驗(yàn)CRC和長(zhǎng)度 int frameLen isValidFrame(m_buffer, i); if (frameLen 0) { QByteArray completeFrame m_buffer.mid(i, frameLen); m_buffer.remove(0, i frameLen); // 移除已處理的數(shù)據(jù) emit frameReceived(completeFrame); // 發(fā)出信號(hào) m_frameTimer.start(5); // 處理完一幀重啟定時(shí)器檢查緩沖區(qū)剩余部分是否還有完整幀 break; } } // 如果遍歷完都沒找到有效幀可以清空緩沖區(qū)激進(jìn)策略或保留保守策略 // 通常保留因?yàn)榭赡苤皇菐€沒收全等待下次超時(shí)再判斷。 }4. 完整讀操作流程與代碼實(shí)現(xiàn)讓我們把上面的模塊串聯(lián)起來看看一次完整的讀寄存器操作是如何進(jìn)行的。4.1 主站發(fā)起讀請(qǐng)求假設(shè)我們的業(yè)務(wù)邏輯比如一個(gè)界面按鈕的槽函數(shù)需要讀取從站地址1起始地址為1070x006B的3個(gè)保持寄存器。// 在業(yè)務(wù)邏輯中 void MainWindow::onReadButtonClicked() { quint8 slaveId 1; quint16 startAddr 107; // 對(duì)應(yīng)Modbus地址 400108? 注意協(xié)議中的地址是0-based而通常說的400001地址是1-based。 quint16 quantity 3; // 調(diào)用ModbusRtuMaster的接口 m_modbusMaster-sendReadRequest(slaveId, startAddr, quantity); }在ModbusRtuMaster::sendReadRequest內(nèi)部void ModbusRtuMaster::sendReadRequest(quint8 slaveId, quint16 startAddr, quint16 quantity) { // 1. 參數(shù)校驗(yàn) if (quantity 0 || quantity 125) { // Modbus RTU一次最多讀125個(gè)寄存器 emit errorOccurred(tr(Invalid quantity.)); return; } // 2. 組裝請(qǐng)求幀 QByteArray requestFrame assembleReadRequest(slaveId, startAddr, quantity); // 3. 通過SerialPortManager發(fā)送 m_serialManager-sendData(requestFrame); // 4. 啟動(dòng)響應(yīng)超時(shí)定時(shí)器例如設(shè)置300ms超時(shí) m_responseTimer.start(300); m_expectedSlaveId slaveId; m_expectedFunction 0x03; m_currentTransactionState WaitingForResponse; }4.2 響應(yīng)處理與超時(shí)管理SerialPortManager發(fā)送數(shù)據(jù)后便進(jìn)入等待。當(dāng)它通過前述的斷幀機(jī)制識(shí)別出一個(gè)完整幀后發(fā)出frameReceived信號(hào)。ModbusRtuMaster連接了這個(gè)信號(hào)connect(m_serialManager, SerialPortManager::frameReceived, this, ModbusRtuMaster::onFrameReceived); void ModbusRtuMaster::onFrameReceived(const QByteArray frame) { if (m_currentTransactionState ! WaitingForResponse) { // 不是我們等待的響應(yīng)可能是其他從站的數(shù)據(jù)或干擾直接忽略 return; } m_responseTimer.stop(); // 收到響應(yīng)停止超時(shí)定時(shí)器 // 解析響應(yīng) QVectorquint16 registers; if (parseReadResponse(frame, m_expectedSlaveId, registers)) { // 成功 emit readRequestFinished(true, registers); } else { // 解析失敗可能是異常響應(yīng)功能碼0x80 quint8 errorCode 0; if (parseErrorResponse(frame, m_expectedSlaveId, errorCode)) { emit errorOccurred(tr(Modbus Exception: Code %1).arg(errorCode)); } else { // CRC錯(cuò)誤或幀格式錯(cuò)誤 emit errorOccurred(tr(Invalid response frame.)); } emit readRequestFinished(false, QVectorquint16()); } m_currentTransactionState Idle; }同時(shí)必須處理超時(shí)情況connect(m_responseTimer, QTimer::timeout, this, [this]() { if (m_currentTransactionState WaitingForResponse) { m_currentTransactionState Idle; emit errorOccurred(tr(Response timeout.)); emit readRequestFinished(false, QVectorquint16()); } });4.3 線程模型考量為何及如何將串口放在子線程在GUI應(yīng)用中如果串口通信數(shù)據(jù)量較大或處理耗時(shí)直接將QSerialPort放在主線程可能會(huì)阻塞界面響應(yīng)。更穩(wěn)妥的做法是將整個(gè)串口管理和協(xié)議解析放到一個(gè)獨(dú)立的QThread中。實(shí)現(xiàn)要點(diǎn)創(chuàng)建一個(gè)Worker類繼承QObject將SerialPortManager和ModbusRtuMaster的邏輯移入其中。在Worker中創(chuàng)建QSerialPort對(duì)象。特別注意QSerialPort及其定時(shí)器必須在其所屬的線程內(nèi)創(chuàng)建和使用。在主線程創(chuàng)建QThread和Worker對(duì)象使用moveToThread將Worker移至子線程。主線程與Worker之間通過信號(hào)槽通信。Qt的跨線程信號(hào)槽是線程安全的。// 主線程 m_workerThread new QThread(this); m_worker new ModbusWorker(); // ModbusWorker包含了我們之前的所有邏輯 m_worker-moveToThread(m_workerThread); connect(this, MainWindow::startReadRequest, m_worker, ModbusWorker::sendReadRequest); connect(m_worker, ModbusWorker::readResultReady, this, MainWindow::handleReadResult); m_workerThread-start(); // 在ModbusWorker線程中其事件循環(huán)會(huì)自動(dòng)處理串口事件和定時(shí)器事件。重要心得很多人會(huì)忘記在子線程中創(chuàng)建的QTimer也需要在那個(gè)線程中start()。確保所有與串口相關(guān)的對(duì)象生命周期都在同一個(gè)線程內(nèi)管理能避免很多詭異的崩潰問題。5. 調(diào)試技巧、常見問題與實(shí)戰(zhàn)避坑指南理論跑通了代碼寫完了一上真設(shè)備可能還是沒數(shù)據(jù)。別慌工業(yè)現(xiàn)場(chǎng)調(diào)試是常態(tài)。5.1 調(diào)試工具鏈準(zhǔn)備工欲善其事必先利其器。以下軟件是串口調(diào)試的“瑞士軍刀”串口調(diào)試助手如AccessPort、友善串口調(diào)試助手、或開源的QSerialTerm。用于監(jiān)聽。把你的Qt程序和一個(gè)調(diào)試助手同時(shí)連接到同一個(gè)串口需要虛擬串口對(duì)或硬件分線可以直觀地看到你的程序到底發(fā)出了什么數(shù)據(jù)設(shè)備又返回了什么。這是最直接的驗(yàn)證手段。Modbus從站模擬器如Modbus Slave。在電腦上虛擬一個(gè)從站設(shè)備設(shè)定好寄存器的值讓你的Qt程序去讀。這能在不依賴真實(shí)硬件的情況下驗(yàn)證你的主站邏輯和協(xié)議解析是否正確。邏輯分析儀或USB串口示波器如果問題非常底層如電平、波形這些小工具能幫你看到物理線上的實(shí)際字節(jié)流判斷是軟件問題還是硬件問題。5.2 典型問題排查清單當(dāng)你遇到“讀不到數(shù)據(jù)”或“數(shù)據(jù)不對(duì)”時(shí)可以按以下順序排查問題現(xiàn)象可能原因排查步驟與解決方案根本打不開串口1. 端口被占用如被其他軟件打開2. 驅(qū)動(dòng)問題如CH340/CP2102驅(qū)動(dòng)未裝3. 權(quán)限不足Linux/macOS1. 關(guān)閉所有可能占用該串口的軟件。2. 檢查設(shè)備管理器重新安裝驅(qū)動(dòng)。3. Linux下使用ls -l /dev/ttyUSB*查看權(quán)限將用戶加入dialout組sudo usermod -aG dialout $USER并重啟。能打開但收發(fā)無數(shù)據(jù)1. 波特率等參數(shù)與設(shè)備不匹配2. 收發(fā)線接反RX/TX3. RS-485方向控制未設(shè)置如果使用1.逐項(xiàng)核對(duì)波特率、數(shù)據(jù)位、停止位、校驗(yàn)位。一個(gè)字母都不能錯(cuò)。2. 檢查硬件連接RS-232的TX應(yīng)接對(duì)方的RX。3. 如果使用USB轉(zhuǎn)RS-485轉(zhuǎn)換器可能需要通過代碼控制RTS引腳來控制收發(fā)方向。這是個(gè)大坑需要查閱轉(zhuǎn)換器手冊(cè)。能收到數(shù)據(jù)但全是亂碼或CRC錯(cuò)誤1. 波特率不匹配最常見2. 大小端序處理錯(cuò)誤3. CRC計(jì)算或校驗(yàn)算法錯(cuò)誤1. 用串口調(diào)試助手以相同參數(shù)監(jiān)聽對(duì)比收發(fā)數(shù)據(jù)。如果助手收到正確而你收到亂碼很可能是你的讀取時(shí)機(jī)或緩沖區(qū)處理有問題。2. 確認(rèn)QDataStream的字節(jié)序設(shè)置為BigEndian。3. 用已知的正確幀如從Modbus Slave模擬器捕獲測(cè)試你的CRC函數(shù)。偶爾能收到經(jīng)常超時(shí)1. 幀間靜默時(shí)間判斷不準(zhǔn)粘包/斷包2. 從站響應(yīng)慢3. 電磁干擾1. 調(diào)整幀間靜默定時(shí)器的超時(shí)時(shí)間適當(dāng)加長(zhǎng)如從3.5字符時(shí)間增加到4-5個(gè)。2. 增加主站的響應(yīng)超時(shí)時(shí)間如從300ms增加到1000ms。3. 檢查RS-485總線終端電阻120Ω是否匹配線路是否過長(zhǎng)。收到異常響應(yīng)功能碼0x80從站返回錯(cuò)誤解析異常碼。常見0x01 非法功能碼0x02 非法數(shù)據(jù)地址0x03 非法數(shù)據(jù)值。檢查你請(qǐng)求的地址和數(shù)量是否在從站允許范圍內(nèi)。5.3 獨(dú)家避坑心得“幽靈數(shù)據(jù)”問題有時(shí)打開串口瞬間或關(guān)閉后會(huì)收到一些隨機(jī)字節(jié)。這可能是串口芯片電平不穩(wěn)定導(dǎo)致的。解決在打開串口后先readAll()清空一下緩沖區(qū)再開始正式通信??缙脚_(tái)路徑問題Windows用COMxLinux/macOS用/dev/ttyXXX。建議在軟件中做一個(gè)串口自動(dòng)發(fā)現(xiàn)功能遍歷當(dāng)前系統(tǒng)可用端口讓用戶選擇而不是寫死在代碼里。日志是救星一定要在關(guān)鍵步驟打開、配置、發(fā)送、接收、解析加入詳細(xì)的日志輸出使用qDebug()、qInfo()、qWarning()。當(dāng)現(xiàn)場(chǎng)出問題時(shí)一份詳細(xì)的日志文件比猜原因有效一萬倍??梢钥紤]將日志同時(shí)輸出到文件和界面。資源釋放在程序退出或關(guān)閉串口時(shí)確保先停止所有定時(shí)器清空緩沖區(qū)再關(guān)閉端口。QSerialPort的析構(gòu)最好在其所屬線程中進(jìn)行。性能與內(nèi)存在高頻讀取如每秒幾十次時(shí)避免在每次readyRead()信號(hào)中都進(jìn)行復(fù)雜的UI更新。將數(shù)據(jù)先緩存起來定時(shí)批量更新UI。同時(shí)注意接收緩沖區(qū)的內(nèi)存增長(zhǎng)定期檢查。最后與硬件通信耐心和細(xì)致是最重要的品質(zhì)。從最基礎(chǔ)的參數(shù)匹配開始用調(diào)試工具一層層驗(yàn)證從物理層到協(xié)議層問題總能被定位和解決。當(dāng)你第一次穩(wěn)定地從設(shè)備中讀到正確的數(shù)據(jù)時(shí)那種成就感絕對(duì)是純軟件開發(fā)難以比擬的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品人妻一区二区三区不卡断 | 无码人妻精品酒店| 成片免费播放| 区自美91| 探花精品视频| 加勒比aⅴ| 国产精品人妻熟女aⅴ| 殴洲老熟女| 久久草视频污视频| 国产成人五月天丁香花| 婷婷色播婷婷| av网站国产主播在线| 无码99| 男同专区一区二区三区在线| 激情五月天网| 天天射天天操天天干天天吃2018| 亚洲免费精品一区| 精品蜜乳AV免费观看| 天综合中文| 亚洲一区日韩精品中文字幕 | 日本伦乱九九九综合| 韩日男人的天堂| 日本一级特级毛片视频| 神马久久69| 黄色AV免费| 高清有码一区二区| 国产超碰国产97| 日本一区二区不卡精品| 五月天玖玖资源站| av国产无码| 操比国产| 五月婷婷六月色| 国产 亚洲 丝袜 制服| 51国产午夜精品视频| 欧美色亚洲| 男同专区一区二区三区在线| 狠狠色伊人亚洲综合网站色| 成人26uuu| 精品欧美老熟女一二区| 一起草三级AV电影在线观看| 做爱A级亚欧| 中文字幕第9页萱萱影音先锋 | 性色生活片久久毛片婬片免费放女人一级毛片| 色色色日本| 人人玩人人添人人澡免费| 搡老女人老熟女91| 日韩熟女乱伦中出| www.av在线视频| 国产一区二区三区导航| 无码视频黄色网战| 炮色五月| 亚洲十八禁止| 中文字幕日韩专区精品系列| 色操逼网| 五月天成人综合| 五月天色图影视| 黄色污污污污污污网站| 亚洲中文字幕妇伦久久| 亚州熟妇精品| 色图四区| 日本国产高清色www视频在线| av天堂天堂av日韩| 婷婷亚洲五月***久久| 国产亚洲日本精品在线| 1024手机看片欧美日韩| 亚洲天天综合| 被体育老师抱着c到高潮| 欧美成人性爱视频大全| 99热在线播放| 韩国黄色片精品久久久| 国产精品熟女AV中文字幕在线播放| 小骚逼被操的爽不爽| 欧美综合天堂| 国产人妖视频一区在线观看| 熟妇熟女一区二三区| 日韩中文字幕2020| 99热这里都是精品| 人妻乱仑一区二区三区| 亚洲精品天天影视综合网 | 好湿好紧好爽 视频| 四虎视频在线观看| 久草加勒比一区在线| 久久精品国产99精品亚洲蜜... | 日日骚网站| 天天狠操| 色综合91| 久久午夜神马| 欧美性爱在线无码| 欧美曰韩国产精品| 国产亚洲精品久久久久小| 老司机老司机午夜影院| 久久综合18p| 大香交| 欧美精品69性爱| 精品久久人妻成人网| 久久久久密| 一区二区无码视频| 国产精品美女在线一区| 亚洲射综合网| 91社区伊人| 色色色色综合网| 99精品丰满人妻无码| 呦呦影院| 色九九九九| 91精品人| 亚洲AV免费在线观看| 亚洲中字慕不卡| 亚洲日韩精品一区视频在线| 欧美性生活内射| 男人的午夜天堂| 中文字幕一区日韩精| 日韩精品大香蕉伊人在线| 亚洲一区在线观看欧洲| 国产精品suv一区| 久久久久久久九九九九| 91蜜臀熟女| 男人的天堂Va| 99久re热视频精品98| 蘋果手機免費看成人Av| 成人性爱高清视频免费看| 亚洲图片日本AⅤ欧美在线| 国产美女销魂在线观看不卡| 美女干逼2| 一个国产在线综合网站| 久久超碰98| 不卡av在线中文字幕| 制服少妇欧美| 飘花国产午夜精品不卡| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 97久久免费| 一中国女人毛片水真多| 国产玖玖| 国产精品白领在线观看| 天天日天天射天天干| 日韩在线地址一| 亚洲欧洲无码97久久精品| 精品久久无码午夜福利| 伊人久久大香蕉线AV五月天| 97国产高清视频在线观看| 一区二区三区四区在线不卡| 999狠狠综合| 国产综合久久久麻桃个| 欧美久久婷婷| 两性综合网| 国产91丝袜 在线播放| 欧亚不卡| 黄片不用下载在线观看| 色97干| 熟妇最新先锋一二三区| 久久国产乱子伦精品免费女人| 91路www| 亚洲强奸乱伦影视网| 东京太热男人的天堂久久久| 一区=区三区视频| 亚洲,日韩,欧美,成人播放| 97se综合| 中文字幕一二三区| 亚欧日韩成人| 7777奇米影视久久| 国产成人五月天丁香花| 超碰97最新人妻| 亚洲成A∨人影院在线欢看| 麻豆尤物视频网| 色哟哟-国产专区| 国产69精品久久久久99尤物| 亚洲高清视频在线免费观看| 日日干日日摸| 国产中文福利| 天天摸夜夜摸| 五月天婷婷色色| 国产精品亚洲一级av第二区| 性91| 日日嗷| 99青草| 强歼乱伦资源网| 亚洲av噜噜噜噜噜噜| 成熟熟女国产精品一区二区| 久久欧美1卡2卡3| 国产 v乱码一区二| 久久久久久亚洲Av无码| 78超碰| 极品色电影院| 国产精品久久久九九九| 亚洲欧美性生活| 丁香五月性爱| 狠狠色婷婷7777久| 久久久九97| 中文字幕交换人妻| 人人玩人人添人人澡免费| 72av视频| 亚洲欧美色图| 春色综合网| 中出91视频| 操91| 国产国产亚洲一二三久久| 今日头条成人一区二区三区四虎精品| 亚洲精品一区二区三区新线路| 操逼逼无码| 国产 日韩 另类 视频一区爱| 天堂69亚洲精品中文字| 在线有码中文字幕| 无码逼| 秋霞无码av鲁丝片一区| AV污污污污| 亚洲国产av中文字幕久久| 日本不卡一区二区| 大香蕉视频一二三区| 97久久久| 日韩免费三级黄片电影| 欧美综合国产精品久久丁香| 欧美高清16| 99re6在线视频精品免费完整版安卓版| 国产精品色哟哟| 精品人妻一区二区免费蜜桃| 青青操在线亚洲视频观看欧美在线 | 91伊人影视综合| 黑丝内射一区二区三区| 97日本超碰综合| 蜜桃久久久久久久| 区二区亚洲婷| 亚洲日韩东京热一区| 国产精品亚洲四五区在线观看| 99中出在线| 欧洲射精91| 麻豆一区在线| 碰人碰碰人人开房人肉| 婷婷探花久久精品一区| 本道综合精品| 午夜福利一区二区影院| 欧美亚洲第一页| 色yeye成人免费视频| 国产综合网站在线播放| 人人考人人摸人人干| 亚洲av强奸乱伦| 淫妻综合网| 一本大道综合伊人精品热热| 日韩日韩日韩-国产乱码精品一区二区| 人妻少妇久久| 日韩综合色图| 91香蕉视频在线观看免费| 国产亲戚伦亲在线| 日韩偷拍色图| 欧美 亚洲 91| 无码人妻精品酒店| 亚洲午夜福利在线影院| 在线人妻熟女一区二区三区四区五区| 欧美天堂亚洲电影院一区在线播放| 欧美亚州色的图| 美女诱惑一区| 午夜精品探花| 91色噜噜狠狠| 丝袜美腿操av| 亚洲无码国产精品久久| AV九九| 亚洲自拍另类丝袜综合| 黑丝制服中文字幕| 无码高清少妇久久| 人妻少妇蜜桃视频欧美一区| 久草草一二三四区久久| 99热色精品| 精品一久久久| 天天干人人看综合| 久9视频| 欧美中字二区| 欧洲综合无码| 亚洲色欲一区二区三区| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 另类小色呦| 中文字幕高清20页视频| 色噜噜人妻av中文字幕| 日韩色| 后入 亚洲 美女 射| 大白逼三四级| 操逼1区| 久久天天躁日日躁狠狠躁 | 玖玖爱在线视频免费观看| 亚洲欧美日韩综合在线尤物| 亚洲文学偷乱拍啪啪啪啪| 日本操逼视频在线| 亚洲无套久久嗯嗯| 97超碰欧美手机| 亚洲免费看片| 熟女91网站| 亚洲欧美国产日本一区二区三区| 色香欲天天天天综合色| 亚洲色色探花| 91操人| 久久国产乱子伦精品免费女人| 亚洲日本韩国极品一区二区| 激情欧美97| 日本三级韩国三级99| 人人妻人人爽人人精品| 新版天堂中文资源8在线| 日日夜夜模| av无码av无码专区| 我想要啊 啊 啊| 中文字幕精品一区二区精| 麻豆AV96熟妇人妻| 中文日本免费高清| 天堂综合| 噜噜吧,噜噜色,噜噜| 天欧美在线| 亚洲综合九九| 97资源久久| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲国产欧美中日韩成人综合视频| 欧美美女在线高潮999| 亚洲天堂久久久久久粉红视频| 日韩欧美视频青青| 26uuu久久| 九九毛片这里只有精品| 国产隔壁老王影院在线| 少妇激情AV| 91日本在线观看| juliaann欧美丝袜办公室| 五月天综合在线| 亚洲啪啪综合?v一区综合精品区| 艾草av| 日韩一区二区高清在线观看的| 亚洲一区制服诱惑| 麻豆国产尤物AV| 蜜乳视频网站| 久久风骚城市| 福利风月五月天影院| 老外又粗又长一晚做五次| 麻豆 亚洲 97| 激情综合五月婷婷| 99亚洲精品| 国产1727欧美| 久久国产精品一级二级三级| 日韩免费看在线黄色片| 亚洲熟女一区二区| 日韩精品99久久久久久中文字幕| 婷婷激情五月天小说网| 亚洲国产精品无码AV久久| 久久神马影院| 日韩另类色图| 韩国成人精品久久久免费看| 无码久久国产 | 日本色色视频网站| 欧美色交| 97精品网站| 久99久视频精选| 美女写真| 91综合色噜噜| 91A欧美电影网站| 亚州乱码中文字幕综合久久久| blacked精品一区国产| 欧美97爱| 欧美日日人人天天| 天天影视网色欲色香| 小草精彩毛片| 丁香六月啪啪| 久久激情亚洲精品无码?V| 91丨人妻丨国产丨丝袜| 久久久熟女一区| a人欧美综合天堂麻豆| 性爱av在线免费观看| 日韩精品字幕| 97国产精品视频| 91中文字幕在线观看| 欧美精品91| 人妻熟女一区在| 国产精品午夜高潮呻吟久久av| A级毛片在线看免费| 欧美91变态| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 蜜臀99久久精品久久久懂爱| 91热热色| 久久久无码精品人妻二区| 屌妞视频久久久久久久久久久久| 久久9精品视频| 国产999精品久久久久久| 国产黄色 A 片免费看| 国产午夜精品理论片一二三区区| 丝袜综合网| 中文三一区| 丰满人妻一区| 日韩肏逼视频| 9超碰免费| 99自拍B亚洲| 9 9精品一区二区三区| 手机看片1024你懂的国产| 日本一级婬片试看三分钟| 精品国产三级av韩国在线| 欧美色青| 亚洲国产成人精品久久久国产成人一区二区 | 伦理日韩国产久久| 九九九久久久久| 亚洲综合113页| 精品福利视频| 91嫩草欧美| 国产精品午夜成人福利| 91网站18在线| 欧美玖玖爱免费玖玖| 女人的天堂大香蕉网| oumeizonghese,www| 99热aaa| 亚洲欧美setu| 97国产精选| 91岛国动作片| J?P?NESEHD熟女熟妇伦| 人妻一二三区| 一区二区三区精品视频| 综合色图亚洲欧美| 亚洲 欧美 另类 日韩 人妻一区| 男人的天堂三级| 国语少妇精| 国产精品国产亚洲区艳妇糸列| 人人做,人人操,人人摸| 日韩成人综合网| 欧美一区91大爱| 欧美性暴力猛交XXXX| 牛牛久久国产精品视频一二三| 天美一区在线| 97超碰9| 亚洲自拍偷拍视频在线| 亚洲欧洲精品视频发布| 国产丝袜视频| 老司机久久| 91久久国产精品| 翔田千里A片一区二区| 欧美综合娱乐久久| 99热66| 97视频www| 青青草久草| 天天草夜夜草高潮片| 日本3级一区二区免费| 色蜜AV| 91色堂| 亚洲国产美女久久久久| AV中文在线| 午夜欧美神马久久久久| 久久在肏| 亚洲无码久久久久久久| 97硬碰| 人妻第一页| 思思热免费在线视频| 五月激情天| 国产精品一区二区后入| 麻豆久久精品亚洲精品88| 欧美少妇性爱网站| 少妇69中文| 亚洲欧美情色| 99热这里只有精品9| 欧美激情久| 男女无套 免费网站| 91热爆在线| 强奸熟女一区二区三区 | 天天拍天天操| #NAME?| 免费作爱一级视频| 欧美夜色| 欧美不卡在线一区二区| 国产九月婷婷| 亚洲av青草久久一区二区| 天天躁日日躁AAAXX| 国产精品天干天干综合网麻豆| 伊人天天久久动态图| 天天爽人人综合免费7799| 日本精品九九九| ji熟女.com| AV一二区| 久久超碰国产一区二区三区| 看看小穴| 日韩成人无码| 岛国小电影| 97综合网| 高清不卡视频| 国产无吗在线播放| 色爱欲亚洲| 亚洲AV成人精品网站在AV| 久操B网| 搡老熟女免费视频| 91殴美大片| 日韩熟女操逼| 亚洲色图 图片| 国产亚洲中文不卡二区| 中文字幕av一区二区三区人妻少妇| 日韩乱中文| 日本精品九九九| 天天躁日日躁XXXXYY| 精品人妻一区二区三区蜜桃视频| 色五月激情网| 女欧美一区二三区| 久久久专区| 俺去俺来也在线www| 青青草国产一区二区三区| 午夜黄色免费在线观看| 欧美激情综合网| 免费人人搞97| 亚州AV无码国产精品| 丝袜美腿91| 六六久久日韩不卡| 草草影院最新网址| 青青草女人天天干| 色蜜AV| 无遮挡一级毛片视频免费的| 色香91| 五月丁香综合| 欧美91视频| 日韩欧美~中文字| 97亚洲综合电影| 在线无码网站| 中文字幕一区二区无码成人| 欧美一二在线| 久99| 日本一区视频在线观看| 综合网亚洲在线| 欧美日韩免费专区在线| 尤物一级在线免费观看| 色欲久久久久综合网| 超碰97欧美日韩| 91国产精品在线看| 成人三一级一片aaa| 人妻天堂三区| 99热大香蕉伊在线| 亚州操操穴网| 91一起操| 日韩中文字幕人妻视频| 国产白丝精品在线观看| 91狠狠狠| 日日夜夜青青草母狗| 天天天天操| 久操网视频| 五月婷亚洲精品天堂| 国产不卡的视频| 亚洲一区二区三区麻豆传媒| 99视频内射三四| 18禁的网站在线| 麻豆国产97在线| 南澳成人一级片在线播放| 国产成人天堂| 久久久久久性爱视频| 久久九九网| jizzjizz欧美| 中文字幕一区二区三区四区在线视频| 91精品国产91熟女| 噜噜噜噜天天狠狠| 精品视频久久区| se,,,亚洲欧美| 97干色天堂| 欧亚洲精品有视频| 色色99| 女人被添高潮免费视频| 99性爱在线观看| 国产日韩欧美操逼视频| 亚洲欧洲日本精品中文a∨| 麻豆天美一区二区| 精…码一二三区| 欧美日韩人妻精品一区二区三区| 尤物视频网 刘玥| 校园春色中文字幕AV| 蜜桃在线观看一区二区三区 | 欧美日韩亚洲天堂网| 中日无幕一二三四区| 五月天开心网| 992这里有精品| 天天爱天天操| 黄污污污污| 99成人| 日韩人妻少妇中文字幕| 亚洲人精品久久久喷水| www.97在线| 宅男91视频在线播放| 中文字幕艹艹| 欧美日韩精品久久| 九九九九九精品十六| 亚洲熟女乱色一区二区三区久久久 | 五十路六十路素人熟女| 亚洲日韩视频二区| 亚洲精品第一| 破苞ⅩXXX性无码动漫无码| 天天干人妇| 九九热超碰| 97超碰69| 亚州综合AⅤ| 果冻传媒一区二区三区| 伊人宅男大香蕉| 91无遮挡| 亚洲人妻中文高清| 九月色婷婷| av婷婷色网| 91天天爱| 亚洲男人天堂2017| 国产欧美日本亚洲精品| 国产午夜无码片在线观看影视| 久久精品色欧美aⅴ一区二区| 成人黑料社久久| 偷窥自拍亚洲色图| 任你干在线视频| 亚春色色| 国产成人拍国产亚洲精品| 亚洲国产成人精品久久久国产成人一区二区三.| 欧亚性爱视频免费看| 激情六月婷婷| 欧美 牲| 密臀在线一区尤物| 色在线亚洲视频www| 色九月婷婷| 四虎884a| 欧美人妻少妇| 亚洲综合精品国产一区| 高清不卡一二三区视频......| 一本久久精品中文字| 欧美丝袜中文字幕07在线| 国模私拍一区二区三区神乳| 大香蕉520| 色综合久久夜色精品国产天堂| JuliaAnnXXX888| 国产一级137片内射麻豆| 亚洲精品视频在线| 欧美人妻中出| 人妻9117c| 97色婷婷| 久久久91福利姬| 亚洲**2021在线观看| 午夜天堂啪啪| 欧美亚州色的图| 国产精品内射婷婷一级二| 免费一级欧美片片线观看| 欧美大香蕉97| 亚洲中文字幕在现观看| 色色热| 日夜尻逼网| 日韩精品在线观看观看| av在线人气| 久久久久久综合久久伊人蜜月| 美国aaaaa一级黄片| 在线综合 亚洲 欧美中文字幕| 密臀在线视频| 探花精品视频| 91网站18+| 日韩成人精品视频自拍| 婷婷五月天无码 | 国产精品麻豆成人av| 人妻天堂综合网| 久久久久女教师免费一区| 自拍偷拍2025在线观看| 欧美洲精品一级| 精品午夜福利国产一区二区在线观看| 性欧美天天| 精品蜜乳AV免费观看| 欧插网站| 2024黄色视频| 手机不卡视频不卡在线一二三区 | 天天看少妇| 亚洲欧美色图片| 另类图片五月| 亚洲中文字幕在现观看| 亚洲。日韩。欧美| 日日干天天干夜夜爽| 在线天堂999| A级片日韩欧美国产欧美视频精选观看 | 亚洲精品第一| 日影院久久婷婷夜夜网| 乱伦1色页| 国产欧洲精品亚洲午夜拍精品| 操逼1区| 国产熟女高潮一区二区三区| 翔田千里av一区二区三区| 97 国产精品| www.久久| 欧美成年人性爱视频免费观看| 亚洲激情 欧美色图| 亚洲 日本 国产 综合| 九九国产| 九热视频| 国内毛片热久久思思热| 狠狠色一区二区中文字幕| 九月丁香综合网| 久久亚洲日韩熟女精品| 男人天堂2019亚洲| 免费αV在线视频| 香蕉免费一区二区三区不读| 另类专区在线观看| 色呦呦国产精品免费看| 加勒比伊人综合| 激情视频网址| 亚洲AV成人无码一二三久久| 青草园大香蕉| 熟女精品一区二区三区| 综合国产影视三级| 日韩欧美麻豆 | 九色黄站| 欧美综合 站| 激情综合五月天| 天天爽夜夜爽夜夜爽精| 亚洲天天天| 黄站在线免费观看| 大香蕉综合| 日韩女模中文造逼| 中文字幕高清精品一区| 91男人综合| wwe 天天干.com| 看一级黄色视频| 91精品无码久久久久久久| 无码九九| AV高清一区| www.夜夜| 亚洲国产麻豆一区二区三区| 九九九久久久| 欧美日韩系列| 亚洲AV不卡在线观看尤物| 啪啪啪综合网| 全免费a敌肛交毛片免费| 97香蕉网| 超碰精品97| 欧美夜色| 美女高潮视频91| 99久热| 欧美很很操视频| 懂色中文一区二区三区| av中亚| 九九热只有精品| 亚洲色香| 国产五码丝袜屁眼| 久九干| 亚洲成人av色网| 国产精品岛国片在线观看| 强奸乱伦免费网站| 日韩在线国产字幕| 97欧美日韩| 中文字幕国产| 91麻豆天美国产欧美高潮| 国产妇女精品视频青青草| av婷婷色网| 亚洲日产专区| 五月丁香六月婷| 无码精品一区二区三区潘金莲| 超碰午夜| 蜜臀无码视频在线观看| 日韩精品人妻一区二区| 天天天肏屄肏屄肏屄欧美欧美| 人妻内射一区二区在线视频| 中文字幕人妻色偷偷久久皮| 天天做天天爱天天爽AV| 久久9久9久99久9久9| 黑操B| 国产精品一区人妻精品阁在线| 六月色色| 丁香五月av| 中文字幕黑人大片| 欧美性特| 综精品久久久aaaa| 色一射色一射| 99re9这里只有精品| 亚洲中文字幕乱码无码一区二区| 日韩亚洲美州欧洲综三区一品在线| 99热精品在线观看| 久久国产三区| 好爽,再快点啊哈嗯嗯嗯嗯| www四虎| 国产老熟女| 九草在线大香蕉| 日韩一级二级三级免费看完整版国语版| 天美传媒在线一区| 999熟女精品| 玖色av| 丁香七月婷婷| 日韩黄片视频试看| 小情侣高清国产在线视频| 99色在线视频| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 欧美亚洲综合高清在线| 午夜精品久久99蜜桃的功能章节| 性一级黄色录像片网站导航| 91丝袜在线观看| 成人无遮挡毛片免费看| 免费精品人妻一区二区三| 偷拍自拍在线视频观看| 五月婷丁香| 久久超碰亚洲人| 狠狠爱夜夜干| 欧美高清第一页| 蜜乳AV.COM| 一区二区三区机械有限公司| 天天干天天操天天拍| 婷婷15月天青娱乐| 唯美清纯 妖精视频| 亚洲一区二区三区在线激情| 男人a天堂手机在线版| 99啪啪| 久久精品视频在线观看| 欧美少妇高潮视频| 无码免费在线观看黄色片| 爆操无码| 91亚洲影院综合| 黄页网站成人免费| jizz啪啪| 亚洲第一综合| 97超碰人操| V A在线| 丰满的三级少妇欧美久久久| 蜜桃视频一区二区三区在线观看| 熟女久久| 曰本人妻人人澡人人夹| 久久久久性熟视频| 五月天日日操夜夜操| 亚洲精品免费中文字幕| 激情网五月天| 老鸭窝日丰县女人| 国产精品一区二区亚洲人成毛片 | 国语少妇精| 操逼视频免费日韩无码| 蜜桃天美传媒AV一区二区三区| 91精品国产91久久青草| www.色婷婷色综合| 久久99草| 一个人免费视频观看在线WWW| 噜噜噜狠狠色综合| 福利大香蕉| 九九综合久久中文字幕| 九九热免费国产视频婷婷伊人五月 | 强奸乱伦大香蕉| 青青草九九九九九| 熟妇女伦乱视频视频| 亚洲日韩成人性爱视频| 91亚洲欧洲| 99久久久久| 国产熟女高潮一区二区三区| 性在久久久久久| 欧美人妻色| 亚洲av噜噜噜噜噜噜| 中文字幕五区| 久久高潮妇女视频| 国产 码在线成人网站| 丰满少妇精品一区二区| 久热香蕉精品在线视频| 亚洲涩涩| h无码动漫在线观看| 青青草字幕AV| 无码天天操| 天堂伊人久久| 精品国产一区二区三区四区在线看 | 亚洲中文字幕在线视频一区二区 | 中文不卡视频| 欧洲色色| 欧美97爱| 夜夜狼人妻| 91搞逼视频| 久啪| 人妻精品一区二区在线| 中日992视频| 欧美日韩99| 91精品丝袜久久久久久| 婷色五月天| 亚洲91色| 久久久婷婷| 成人麻豆av电影网站| 久久99草| 熟女视频久久| 中文字幕熟女人妻丝袜| 丰满少妇一区二区三区四区观看| 26uuu最新| 日韩超碰精品综合| 亚洲综合另类小说色区亚洲成av人片在www | 91色综| 无码精品久久久久久亚洲| 欧美激情视频一区二区三区不卡| 狠狠91| 一区二区不卡| 牛牛aV| 99re免费| 亚洲成人妻日韩在线| 免费A V在线播放| 国产精品丝袜在线| 国产婷婷一区| 久草网站免费在线观看| 麻豆AV一区二区天美传媒| 国产伦精品免编号公布| 国产毛片在线| 欧美96在线|欧| 亚洲国产剧情少妇激情| 91爆操视频| 精品熟女呻吟久久91| 97久久精品国产| 亚洲Av无码成人精品国产| 久久精品国产亚洲粉嫩| 操美女人妻| 久久久精品国产亚洲AV无码| 十八禁啪啪视频| 欧美91久久久久| 人人天天欧洲| 久久精品高清AV| 人妻一区二区三区熟女| 吉川爱美亚洲二区在线| 亚洲激情综合| 思思热久久成人| 久久加勒比| k频道色撸撸| 精品久久久久,69国产成人精| 2020中文在线一区二区三区| 大香蕉伊人75| 久久综合久色欧美综合狠狠 | 99r九九| 婷婷丁香五月激情啪啪| 一级日本牲交大片好爽在线看| 久久成人东京热人妻| 国产AV人人 夜夜人人澡| 99综合免费视频| 亚洲色色探花| 欧美高清18A片| 天美传媒麻豆一区二区三区国产精| 国产中文福利| 欧美日韩99精品麻豆传媒| 日本三级R| 人人 操人人 操人人| 色悠久| 一本大道青青| 久久视频少妇美女| 丝袜天堂| 日韩熟女精品无码专区一区二区| 丁香五月大香蕉| 中文字幕亚洲热播人妻| 91大神精品长腿在线观看网站| 老鸭窝成人免费毛片视频| 啊嗯嗯啊好大好爽| 后入式在线免费观看60秒| 日韩无码嘿咻黑热久| 亚洲九区| 人妻少妇av在线观看| 日日操丁香五月天| 精品国产乱码| 台湾一区国产高清在线| 日韩欧美加勒比| www亚洲欧美| 中文有码9| 情色大香蕉| www久久精品| 天天影视之亚洲综合网| 国产人妻精品一区二区三区秋霞 | 亚洲男人天堂2| 精品乱码在线观看| 激情久久久| 久久伊人东京热| 婷婷久草| 亚洲怡春院| 91色伦综合| 1204金沙人妻懂旧版免费| 久久超碰、| 日日夜夜青青草母狗| 亚洲免费97免费| 欧美夜色| 久久精品高清无码一区| 久久人妻一区二区三区高清| 蜜桃臀一区二区三区久久| 国产成人啪一区二区| 国产精品乱码久久久久久久| 久久中文字幕女同性恋一区| 欧美最婬乱婬爆婬牲视频| 人妻另类| 七月丁香婷婷| 色欲天天婬色婬香WWW夜色| 美女诱惑在线一区| 美女极品一区二区三区| 狼狼色丁香久久婷婷综合五月| 欧美亚洲一级在线观看| 亚洲成人免费中文字幕| 岛国艾薇凹凸视频天堂| 人妻99p| 人人人人人人少妇| 国产久久一区二区三区野外在线| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 欧美一区二区亚洲天堂| 亚洲超碰在线| 国产11页| 99操| 青青草一区二区三区四| 999久久久国产精品| 永久电影三级在线观看| 高清无码在线播放网站| 亚欧性爱ab| 日韩欧美麻豆大片| 91挑色欧美| 亚洲情色 无码专区| 丁香九月婷婷| www.黄色在线| 日韩精品99999| 狠狠夜色午夜久久综合在线| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 精品久久人妻成人网| 91狠狠综合久久久| 女一区二区| 中文字幕av片| 亚洲国产成人精品久久久国产成人一区二区 | a片在线播放| 亚洲成熟国产精品美女| 少妇高潮99p| 久9久精品视频| 人妻欧美| 色久桃花影院在线观看| 欧美 亚洲 制服 精品| 久久久久久9999| 中文 人妻 制服| 亚洲精品无码成人久久久99| 欧美夜夜狠| 蜜臀av中文字幕| 亚洲成人激情小说视频| 亚洲偷拍自拍在线视频| 国产久久视频| 欧美色蜜桃97| 婷婷去俺也去六月色| 中文字幕老熟妇黄色视频| 色偷偷人人玩人人舔人人操人人摸人人爽| 91人人| 国产日本久久免费精品| 日本999精品视频| 国产精品丝袜在线| 在线人人人人人人精品超| 亚洲色图20p| 九九九九精| 久久欧美性爱视频| 熟妇人妻一区二区三在线| 午夜精品久久久| 五月综合久久| 超碰 国产熟女精品一区| 日韩高清黄片| 欧美日本久久精品一区| 久久岛国| 国模精品一区二区三区苹果色戒| 色偷偷色偷偷欧美日韩| 永久免费观看的毛片的网站| www.久久| 91国产丝袜白虎| 亚洲无码久久久久久久| 天天射夜夜| 日日操免费视频| 最新一二三区视频| 免费a v| 一本一道人妻久久一区二区三区 | 国产乱伦性爱区| av在线人气| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 色诱avtt| 亚洲无码精品AV久久久| 欧美激情总合网| 久草新在线| 嗯啊不要在线| 欧美精品庄| 久久久久元码视频| 高潮毛片无遮挡高清免费| 中文字幕制服欧美久久一区| 日本一区二区亚洲综合| 色女网日韩| 日本成人免费一区二区三区| 欧美另类色| 久久国产在线一区二区| 久久精品欧美一区蜜桃| 啊啊啊啊网站| 国产精品久久久久久夜夜夜| 亚洲日韩在线a不卡99精品| 九九九久千久久激情蜜桃在线看 | 久久加勒比| 天天综合AV| 欧美爆乳精品一区二区| 综合网亚| 91成人久久| 女人香蕉久久毛毛片精品| 久草五月| 69视频入口| 亚州中文字幕超碰97| 3d成人精品一区二区| 激情婷婷丁香网| 视频二区美腿丝袜制服人妻欧美| 97亚洲精品| 久久久久久中文版| 日美免费黄片| 久久久啊啊啊| 大香蕉手机在线视频| 国产精品网址| 欧美 日韩第一性色| 99亚洲精品| 亚洲电影中字一区二区| av东京热男人的天堂| 天堂种子在线www网资源| 亚洲自拍97| 97超碰亚洲| 柠檬AV导航| 中文字幕天堂在线| 国产AV人人夜夜澡人人爽麻豆| 日日夜夜狠狠| 国产亚洲日韩欧| 婷婷五月天色网| 91黑丝少妇| 国人欧美精品一区二区| 午夜αv| 偷拍色图| www鬼畜国产男人的天堂| 日韩色欲久久一二三四区| 精品少妇99| 欧美白嫩女HD| 熟妇在线视频一区二区| www.yeyecao| 日韩欧美中文字幕搭讪巨乳美人妻视频| 国产精品久久久久久夜夜夜| 岛国黄色大片网站| 国产精品不卡高清在线观看| 国产女主播视频在线观看| 欧美日不卡| 高跟丝袜AV专区国产| 日韩三级伊人| 青青草AV色| 天天干天天中出av| 日韩偷拍色图| 日本肉体xxxx裸交| 狠狠操官网| 91久久青青草原精品| 福利大香蕉| 干b在线性社区| 久久五月份| 欧美极度丰满熟妇hd| 国产三级在线现体验区| 99热销国产这里有精品| 日韩78m视频| 国产久久一区二区三区野外在线| 成人片在线播放| 国产黄片在线免费观看| 国产在线观看一区二区三区| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美在线啊啊啊 | 中文一区在线视频| 亚洲成人精品在线一区| 亚洲成人在线乱码色午夜| 久噜噜| 亚州色站 日韩电影| 2011国产精品| 99热精品在线| 欧美特大黄一级片片免费| 欧美91视频| 亚洲国产成人7777| 91操熟女| 火箭成精品视频884必出精品| 日本一二三免费久久| 天天天堂影视日韩亚洲91| 久久伊人青青草| 极品少妇99| 九九成人精品| 色老汉色| 狠狠热这里都是精品| 色呦呦、国产精品| 九九天堂| 青青青国产| 国产视频一区二区三区久久亚洲天堂| 精品久久久无码| 韩日精品四区| 日韩AV电影网站| 欧美黑人XXXⅩ高潮交| 国产丝袜视频| 91neishe| 欧美最婬乱婬爆婬性视频 | 国产性刺激| 国产精品久久久久久夜夜夜| 欧美色图亚洲特色| 欧美白嫩女HD| 亚洲 另类 丝袜 自拍 动漫| 色眯眯av| 亚洲操操操无码| 国产精品播放| 青娱乐999|