免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

MFC上位機(jī)RS485串口通信完整實(shí)戰(zhàn):從API到踩坑全解析

MFC上位機(jī)RS485串口通信完整實(shí)戰(zhàn):從API到踩坑全解析 簡介一個(gè)基于C MFC類庫的RS485串口通信完整演示工程面向工業(yè)自動(dòng)化、物聯(lián)網(wǎng)設(shè)備調(diào)試以及串口通信初學(xué)者適合在Visual Studio 2015下直接編譯學(xué)習(xí)。壓縮包共22個(gè)文件以頭文件.h、C源文件.cpp和VS工程文件.sln/.vcxproj為主另含對話框界面資源、圖標(biāo)和說明文檔整體僅52KB結(jié)構(gòu)清晰便于按模塊查閱。已有3197人學(xué)習(xí)下載。工程實(shí)現(xiàn)了串口打開、波特率/數(shù)據(jù)位/停止位/校驗(yàn)位配置、數(shù)據(jù)讀寫與關(guān)閉等核心流程并展示MFC對話框程序如何響應(yīng)串口事件幫助理解RS485半雙工通信和MFC消息映射機(jī)制代碼注釋完整解壓后導(dǎo)入Visual Studio 2015即可運(yùn)行可動(dòng)手修改參數(shù)觀察效果也可作為二次開發(fā)的基礎(chǔ)框架。 最近在做一個(gè)老設(shè)備的改造項(xiàng)目工控機(jī)用的是Windows MFC老框架下位機(jī)是好幾臺(tái)分布在現(xiàn)場不同位置的儀表距離遠(yuǎn)、干擾大串口通信這塊最后定下來走RS485總線。網(wǎng)上翻了一圈關(guān)于C MFC做RS485串口通信的demo要么年頭太久、要么只有片段真正能直接拿來改的不多。所以我把自己最后落地的完整版代碼和踩坑過程整理出來給后面接類似活兒的兄弟一個(gè)參考。這篇文章適合兩類人一是剛接觸MFC串口開發(fā)、需要快速做出一個(gè)能收發(fā)數(shù)據(jù)的上位機(jī)demo的學(xué)生或轉(zhuǎn)行開發(fā)者二是已經(jīng)寫了幾年代碼、但總在485通信的邊角問題上反復(fù)折騰的工程師。內(nèi)容會(huì)覆蓋RS485的物理層要點(diǎn)、MFC里串口通信的方案取舍、完整代碼拆解以及我在調(diào)試中遇到的一堆真實(shí)問題。1. 三類串口的本質(zhì)區(qū)別為什么項(xiàng)目必須用RS485很多人上來就寫代碼結(jié)果連硬件選型都搞錯(cuò)了。RS232、RS422、RS485雖然長得像但電氣特性完全不同直接決定了你的通信距離、節(jié)點(diǎn)數(shù)量和抗干擾能力。1.1 從RS232到RS485核心變化在物理層RS232是單端信號傳輸信號地共用電壓差只有±3V到±15V抗干擾能力弱理論傳輸距離也就15米左右。RS485用的是差分信號A、B兩根線之間的電壓差來表示邏輯1和0共模干擾被抵消掉傳輸距離能到1200米而且同一總線上可以掛32個(gè)節(jié)點(diǎn)標(biāo)準(zhǔn)負(fù)載下。表RS232和RS485關(guān)鍵參數(shù)對比項(xiàng)目RS232RS485信號方式單端差分A、B兩線傳輸距離≤15米≤1200米節(jié)點(diǎn)數(shù)1對1最多32個(gè)標(biāo)準(zhǔn)負(fù)載抗干擾弱強(qiáng)通信模式全雙工半雙工常見那現(xiàn)場為什么不用以太網(wǎng)或者CAN設(shè)備是老儀表只有485接口換總線等于換設(shè)備成本完全不可接受。在工業(yè)改造場景里RS485依然是存量設(shè)備的絕對主力上位機(jī)這邊做適配是最省事的路徑。1.2 半雙工和方向控制485項(xiàng)目最容易翻車的地方RS485最BT的點(diǎn)在于它是半雙工同一時(shí)刻只能收或者只能發(fā)。普通RS232串口的TX、RX是獨(dú)立物理通道收發(fā)同時(shí)進(jìn)行沒問題但485的A、B線就一對發(fā)數(shù)據(jù)的時(shí)候必須把驅(qū)動(dòng)器使能拉高發(fā)完再拉低切回接收模式。這個(gè)方向切換如果時(shí)序不對就會(huì)出現(xiàn)一種很詭異的現(xiàn)象發(fā)出去的命令對端能收到但收不到對方的回包或者回包收了一半突然斷了。因?yàn)榉较蚯袚Q太快最后一個(gè)字節(jié)還沒從移位寄存器里完全發(fā)出去就把驅(qū)動(dòng)器關(guān)掉了。實(shí)踐里的處理方式發(fā)送完數(shù)據(jù)后必須等發(fā)送緩沖區(qū)徹底清空再切換方向。串口API里頭需要檢查發(fā)送隊(duì)列是否為空或者延時(shí)一個(gè)字節(jié)的時(shí)間再切。// 發(fā)送方向控制示例根據(jù)485轉(zhuǎn)換器的控制引腳翻轉(zhuǎn)電平 // 假設(shè)使用RTS作為方向控制常見的RS485轉(zhuǎn)接器方案 void SetRS485Mode(BOOL bSend) { // bSend TRUE: 發(fā)送模式拉高RTS // bSend FALSE: 接收模式拉低RTS EscapeCommFunction(m_hCom, bSend ? SETRTS : CLRRTS); }1.3 組網(wǎng)拓?fù)渚栈ㄦ溈偩€不是星型連接485組網(wǎng)是手拉手的菊花鏈每臺(tái)設(shè)備的A接A、B接B在總線兩端各接一個(gè)120Ω終端電阻。星型連接或者漏接終端電阻會(huì)在高速波特率下出現(xiàn)信號反射表現(xiàn)就是偶發(fā)亂碼。很多人在實(shí)驗(yàn)室調(diào)試沒問題一到現(xiàn)場就出亂碼80%是這兩件事沒做對終端電阻沒接全、或者線接成了星型。如果你要接的設(shè)備數(shù)量多比如超過10臺(tái)還要注意總線上每個(gè)節(jié)點(diǎn)的地址規(guī)劃協(xié)議層得做從站地址區(qū)分。2. MFC串口通信方案取舍MSComm控件還是Windows APIMFC做串口通信方案其實(shí)就兩大派ActiveX控件MSComm和直接用Win32通信API。網(wǎng)上demo一半以上用的是MSComm因?yàn)樗庋b好拖個(gè)控件、設(shè)幾個(gè)屬性、綁定事件就完事。但我最終選擇了純API方案原因后面細(xì)說。2.1 MSComm控件的問題打包分發(fā)和回調(diào)線程坑MSComm是ActiveX控件依賴mscomm.ocx文件注冊到系統(tǒng)。做工程的人都知道控件注冊這步在開發(fā)機(jī)上沒事?lián)Q個(gè)部署機(jī)器就各種報(bào)錯(cuò)未注冊、組件未找到、x64與x86位數(shù)不匹配。MFC項(xiàng)目本身帶系統(tǒng)庫都很麻煩再拖個(gè)OCX就是給自己找事。另外MSComm的OnComm事件其實(shí)是在工作線程里回調(diào)的你在事件處理函數(shù)里直接去更新界面控件十有八九要閃退或者死鎖。網(wǎng)上教程根本沒提這茬新手就卡在這里。2.2 純API方案的優(yōu)勢可控性強(qiáng)、部署簡單、資料透明CreateFile打開串口、GetCommState/SetCommState配置DCB、ReadFile/WriteFile收發(fā)、WaitCommEvent等事件——這套東西不依賴任何第三方組件msvcrt和kernel32搞定部署到哪臺(tái)機(jī)器都不會(huì)因?yàn)槿苯M件掛掉。我在實(shí)際項(xiàng)目里還因?yàn)橐粋€(gè)需求不得不放棄MSComm需要精確控制485的方向引腳時(shí)序要能直接操作串口的RTS/DTR線。如果用MSComm這個(gè)操作要繞一大圈才能實(shí)現(xiàn)而API方案一個(gè)EscapeCommFunction函數(shù)就搞定了。// 打開串口注意dwShareMode必須為0 HANDLE hCom CreateFileA(COM3, GENERIC_READ | GENERIC_WRITE, 0, // 獨(dú)占模式不允許共享 NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hCom INVALID_HANDLE_VALUE) { AfxMessageBox(_T(串口打開失敗請檢查設(shè)備是否被占用)); return FALSE; }這里有個(gè)細(xì)節(jié)dwShareMode必須傳0表示獨(dú)占串口。如果不獨(dú)占同一個(gè)COM口被另一個(gè)進(jìn)程打開之后讀寫行為會(huì)變得不可預(yù)期。之前有人圖方便用了FILE_SHARE_READ | FILE_SHARE_WRITE結(jié)果兩個(gè)程序同時(shí)打開同一串口數(shù)據(jù)直接亂掉。2.3 工作線程與超時(shí)機(jī)制界面不卡頓的保證MFC界面程序里絕對不能把ReadFile放在按鈕點(diǎn)擊事件里同步等待。串口讀數(shù)據(jù)如果沒設(shè)置超時(shí)ReadFile會(huì)一直阻塞界面直接假死。正確的姿勢是搞一個(gè)后臺(tái)通信線程死循環(huán)讀數(shù)據(jù)解析完成之后通過PostMessage把數(shù)據(jù)丟回主界面線程。線程的核心邏輯是串口的事件驅(qū)動(dòng) 超時(shí)控制。開發(fā)中最常用的是在監(jiān)聽線程中WaitCommEvent等待數(shù)據(jù)到達(dá)結(jié)合等待超時(shí)防止線程卡死線程退出時(shí)用事件信號通知。這里超時(shí)機(jī)制的配置很多人忽略了COMMTIMEOUTS結(jié)構(gòu)體設(shè)置不當(dāng)會(huì)導(dǎo)致讀取阻塞。// 配置串口參數(shù)9600, 8, N, 1 DCB dcb { 0 }; dcb.DCBlength sizeof(DCB); GetCommState(hCom, dcb); dcb.BaudRate CBR_9600; dcb.ByteSize 8; dcb.Parity NOPARITY; dcb.StopBits ONESTOPBIT; SetCommState(hCom, dcb); // 設(shè)置超時(shí)讀操作最多等待200ms COMMTIMEOUTS timeouts { 0 }; timeouts.ReadIntervalTimeout 50; timeouts.ReadTotalTimeoutMultiplier 10; timeouts.ReadTotalTimeoutConstant 200; SetCommTimeouts(hCom, timeouts);3. 完整代碼拆解從打開串口到CRC校驗(yàn)一條龍這一節(jié)把demo的核心模塊一個(gè)個(gè)拆開講。完整的工程文件結(jié)構(gòu)大概是CComPort類串口底層封裝、CMy485Dlg類界面交互、通信協(xié)議解析庫幀格式封裝。我這里挑了最核心的幾個(gè)代碼段貼出來的都是能直接編譯的部分。3.1 通信幀協(xié)議設(shè)計(jì)不能靠裸字節(jié)混日子RS485總線上多設(shè)備共享線路如果在協(xié)議層不把消息幀邊界定清楚接收端根本不知道一幀數(shù)據(jù)從哪開始、到哪結(jié)束。最常用的幀設(shè)計(jì)是幀頭地址功能碼數(shù)據(jù)長度數(shù)據(jù)域校驗(yàn)0xAA1字節(jié)1字節(jié)1字節(jié)N字節(jié)1字節(jié)異或校驗(yàn)幀頭0xAA、地址01代表主機(jī)本身、功能碼0x03是讀寄存器、0x06是寫寄存器這些都是照搬Modbus-RTU的思路只不過我做了一個(gè)輕量簡化版。校驗(yàn)我用的BCC異或校驗(yàn)數(shù)據(jù)量大的項(xiàng)目建議直接上CRC16。3.2 接收緩沖區(qū)的環(huán)形隊(duì)列設(shè)計(jì)串口數(shù)據(jù)是字節(jié)流一幀數(shù)據(jù)可能分好幾次到達(dá)。寫接收代碼時(shí)最忌諱的做法是讀一個(gè)字節(jié)處理一個(gè)字節(jié)因?yàn)榈诙巫x到的可能是上一幀的尾巴。正確方式是把讀到的字節(jié)先丟進(jìn)一個(gè)環(huán)形接收緩沖區(qū)再從緩沖區(qū)里按幀頭、地址、長度、校驗(yàn)依次解析。// 環(huán)形緩沖區(qū)定義 #define RX_BUF_SIZE 4096 BYTE g_RxBuf[RX_BUF_SIZE]; int g_nRxHead 0; // 寫入位置 int g_nRxTail 0; // 讀取位置 // 往緩沖區(qū)寫入一字節(jié)滿了則丟棄 void PushRxByte(BYTE bData) { int nNext (g_nRxHead 1) % RX_BUF_SIZE; if (nNext ! g_nRxTail) { g_RxBuf[g_nRxHead] bData; g_nRxHead nNext; } } // 從緩沖區(qū)讀取一字節(jié) BOOL PopRxByte(BYTE* pData) { if (g_nRxTail g_nRxHead) return FALSE; *pData g_RxBuf[g_nRxTail]; g_nRxTail (g_nRxTail 1) % RX_BUF_SIZE; return TRUE; }環(huán)形隊(duì)列的好處是不用頻繁搬移內(nèi)存讀寫雙方只用維護(hù)各自的游標(biāo)。這個(gè)結(jié)構(gòu)你要用得很熟因?yàn)槿魏我粋€(gè)工業(yè)串口項(xiàng)目基本都跑不掉這套東西。3.3 接收線程事件驅(qū)動(dòng)防止CPU空轉(zhuǎn)接收線程用WaitCommEvent加超時(shí)等待而不是死循環(huán)ReadFile。死循環(huán)讀串口是惡搞CPU占用率直接給你干到30%電腦風(fēng)扇呼呼轉(zhuǎn)。UINT CComPort::ReceiveThread(LPVOID pParam) { CComPort* pPort (CComPort*)pParam; OVERLAPPED ov { 0 }; ov.hEvent CreateEvent(NULL, TRUE, FALSE, NULL); DWORD dwMask 0; while (pPort-m_bThreadRunning) { // 等待數(shù)據(jù)到達(dá)事件超時(shí)500ms用于檢查線程退出標(biāo)記 if (!WaitCommEvent(pPort-m_hCom, dwMask, ov)) { if (GetLastError() ERROR_IO_PENDING) { WaitForSingleObject(ov.hEvent, 500); // 等待500ms } } if (!pPort-m_bThreadRunning) break; if (dwMask EV_RXCHAR) { // 有數(shù)據(jù)到達(dá)讀取 BYTE buf[512] { 0 }; DWORD dwRead 0; ReadFile(pPort-m_hCom, buf, sizeof(buf), dwRead, NULL); for (DWORD i 0; i dwRead; i) { PushRxByte(buf[i]); } // 通知主界面處理接收數(shù)據(jù) ::PostMessage(pPort-m_hWnd, WM_RX_DATA, 0, 0); } } CloseHandle(ov.hEvent); return 0; }注意這個(gè)設(shè)計(jì)接收線程只負(fù)責(zé)把字節(jié)塞進(jìn)環(huán)形隊(duì)列、通知界面線程有新數(shù)據(jù)了真正的解析幀、更新界面全部在主線程完成。這樣不會(huì)出現(xiàn)界面假死也避免線程不同步導(dǎo)致的內(nèi)存競爭。3.4 數(shù)據(jù)發(fā)送和485方向切換精確到字節(jié)的操作發(fā)送部分要結(jié)合RS485半雙工特性。發(fā)送流程是置發(fā)送模式拉高RTS- 寫數(shù)據(jù) - 等待發(fā)送緩沖區(qū)清空 - 切回接收模式。切換的時(shí)機(jī)控制不對通信就一抽一抽的。BOOL CComPort::SendData(BYTE* pData, int nLen) { if (!m_hCom || !pData || nLen 0) return FALSE; // 485方向切換為發(fā)送模式 SetRS485Mode(TRUE); DWORD dwWritten 0; BOOL bRet WriteFile(m_hCom, pData, nLen, dwWritten, NULL); // 等待數(shù)據(jù)完全發(fā)出 FlushFileBuffers(m_hCom); // 切回接收模式注意這里不能太快 Sleep(10); SetRS485Mode(FALSE); return bRet (dwWritten (DWORD)nLen); }有個(gè)細(xì)節(jié)要提WriteFile返回只說明數(shù)據(jù)進(jìn)了系統(tǒng)發(fā)送緩沖區(qū)不代表已經(jīng)發(fā)出去了。所以必須FlushFileBuffers等待物理發(fā)送完成再切方向。加的那個(gè)Sleep(10)是為了兜底波特率9600下一字節(jié)大約是1.04ms10ms足夠發(fā)完幾十個(gè)字節(jié)。3.5 發(fā)送數(shù)據(jù)的協(xié)議打包按幀格式組裝發(fā)送時(shí)要把原始命令按協(xié)議格式封裝。Modbus風(fēng)格的讀寫指令核心就是把地址、功能碼、寄存器地址、數(shù)據(jù)長度、校驗(yàn)值算好拼接。我封裝了一個(gè)BuildWriteCommand函數(shù)輸入?yún)?shù)是設(shè)備地址、寄存器地址和值輸出一個(gè)標(biāo)準(zhǔn)報(bào)文// 計(jì)算BCC異或校驗(yàn) BYTE CalcBCC(BYTE* pData, int nLen) { BYTE bBCC 0; for (int i 0; i nLen; i) bBCC ^ pData[i]; return bBCC; } // 組裝讀命令 int BuildReadCommand(BYTE bAddr, WORD wRegAddr, WORD wRegCount, BYTE* pOut) { int nIndex 0; pOut[nIndex] 0xAA; // 幀頭 pOut[nIndex] bAddr; // 設(shè)備地址 pOut[nIndex] 0x03; // 功能碼讀 pOut[nIndex] HIBYTE(wRegAddr); // 寄存器地址高字節(jié) pOut[nIndex] LOBYTE(wRegAddr); // 寄存器地址低字節(jié) pOut[nIndex] HIBYTE(wRegCount); // 寄存器數(shù)量高字節(jié) pOut[nIndex] LOBYTE(wRegCount); // 寄存器數(shù)量低字節(jié) pOut[nIndex] CalcBCC(pOut, nIndex); // 校驗(yàn) nIndex; return nIndex; }4. 實(shí)測中的大坑亂碼、丟幀、USB轉(zhuǎn)485的隱形問題代碼寫完之后調(diào)試才是真正大戰(zhàn)。我在這個(gè)項(xiàng)目里踩了一連串坑有些坑如果沒人提前講自己排查估計(jì)要耗掉一整天。4.1 數(shù)據(jù)位校驗(yàn)和停止位不匹配從設(shè)備參數(shù)不統(tǒng)一查起第一個(gè)坑就出在串口參數(shù)上?,F(xiàn)場有一臺(tái)設(shè)備是9位數(shù)據(jù)位8位數(shù)據(jù)校驗(yàn)位當(dāng)數(shù)據(jù)用另外幾臺(tái)是標(biāo)準(zhǔn)8N1。我用統(tǒng)一參數(shù)打開串口結(jié)果其中一臺(tái)設(shè)備回的數(shù)據(jù)全亂。查了半天發(fā)現(xiàn)是設(shè)備廠家出廠設(shè)置的校驗(yàn)位是Even偶校驗(yàn)串口配置不匹配讀上來的數(shù)據(jù)自然不對。這個(gè)問題的處理方式比較直接先把所有設(shè)備的串口參數(shù)摸清統(tǒng)一配置。485總線上所有設(shè)備的波特率、校驗(yàn)位、數(shù)據(jù)位、停止位必須完全一致否則整個(gè)總線都不能正常通信。所以做項(xiàng)目第一步不是寫代碼而是找設(shè)備廠家要參數(shù)表。4.2 USB轉(zhuǎn)RS485模塊的隱患自動(dòng)收發(fā)電路導(dǎo)致第一個(gè)字節(jié)丟實(shí)驗(yàn)室測試用的是USB轉(zhuǎn)485模塊代碼調(diào)通了拿到現(xiàn)場接工控機(jī)原本的COM口主板原生串口就出問題。第一條命令發(fā)出去設(shè)備不響應(yīng)第二條開始正常。后來查資料才明白很多USB轉(zhuǎn)485模塊用的是自動(dòng)收發(fā)切換電路靠檢測數(shù)據(jù)線上的電平變化來切換收發(fā)方向這沒問題。但工控機(jī)原生串口沒有這個(gè)電路我代碼里用手動(dòng)RTS控制方向時(shí)序上第一個(gè)字節(jié)還沒穩(wěn)定就發(fā)出去了設(shè)備沒收到。手動(dòng)切向發(fā)送模式時(shí)在置位RTS之后加一點(diǎn)延時(shí)再WriteFile。別小看這幾毫秒對RS485這種電平型信號來說方向刀閘沒打開就放信號等于把數(shù)據(jù)扔進(jìn)了空氣里。// 置位RTS之后留出方向切換穩(wěn)定時(shí)間 SetRS485Mode(TRUE); Sleep(5); // 根據(jù)實(shí)際模塊調(diào)整5-20ms都試過 WriteFile(m_hCom, pData, nLen, dwWritten, NULL);4.3 120Ω終端電阻不在現(xiàn)場你根本想不到的坑設(shè)備端A、B線之間短路或者總線兩端沒接終端電阻高速率下數(shù)據(jù)會(huì)因信號反射而亂碼。現(xiàn)場設(shè)備已經(jīng)預(yù)埋了10年不可能拆開去接終端電阻只能在主機(jī)端想辦法。在主機(jī)接線端子上直接并聯(lián)了一個(gè)特制的信號適配板它內(nèi)含120Ω終端電阻和TVS保護(hù)。信號質(zhì)量肉眼可見地改善原來偶發(fā)的亂碼徹底消失。如果你碰到遠(yuǎn)端和主機(jī)端通信不穩(wěn)定先檢查兩端的終端電阻這個(gè)最容易被忽略但影響卻是致命的。4.4 丟幀和粘幀問題協(xié)議解析必須要有狀態(tài)機(jī)在調(diào)試中發(fā)現(xiàn)一個(gè)典型的丟幀場景主機(jī)發(fā)送讀取指令后設(shè)備回包長度50字節(jié)但接收線程只收到了30字節(jié)剩下的20字節(jié)晚了幾十毫秒才到。這種拆包情況如果用一次ReadFile去讀整幀必然丟數(shù)據(jù)。解決方案就在前面的環(huán)形隊(duì)列設(shè)計(jì)上。接收線程無腦讀、無腦塞隊(duì)列解析層按狀態(tài)機(jī)從隊(duì)列里一節(jié)一節(jié)啃出幀頭、地址、長度、數(shù)據(jù)、校驗(yàn)。每個(gè)字節(jié)都走一遍這個(gè)狀態(tài)機(jī)直到校驗(yàn)通過才認(rèn)為一幀完整。狀態(tài)機(jī)這一步必須做扎實(shí)上電第一位不是幀頭就跳過收到幀頭后下一個(gè)字節(jié)不是本機(jī)地址就重置長度字段超出數(shù)據(jù)域上限直接丟棄重置。這些都是防御性處理在總線上有其他噪聲干擾時(shí)能擋住99%的無效數(shù)據(jù)。幀解析狀態(tài)機(jī)流轉(zhuǎn) IDLE → 收到0xAA → 已接收幀頭 → 接收地址 → 匹配則繼續(xù) → 接收功能碼 → 接收長度 → 接收數(shù)據(jù)域 → 接收校驗(yàn) → 校驗(yàn)通過則一幀完成 任意一步不匹配 → 回到IDLE丟棄當(dāng)前累積5. 工程化細(xì)節(jié)從demo到能交付的代碼還差什么網(wǎng)上很多demo能跑通但拿到現(xiàn)場一用就露餡。因?yàn)閐emo停留在讀取串口數(shù)據(jù)打印到文本框這個(gè)層面而真正的工程代碼要解決日志、異?;謴?fù)、設(shè)備斷線重連等一堆破事。5.1 串口異常斷開后的自動(dòng)重連機(jī)制現(xiàn)場調(diào)試會(huì)頻繁拔插USB轉(zhuǎn)485線或者設(shè)備斷電重啟。這時(shí)串口句柄可能已經(jīng)失效任何讀寫操作都會(huì)失敗。一個(gè)健壯的通信模塊必須做異常檢測和重連。我的方案是在工作線程里每次讀寫操作檢查返回值連續(xù)失敗超過3次就關(guān)閉串口句柄并通知界面串口異常斷開界面彈提示并啟動(dòng)一個(gè)定時(shí)器嘗試重連直到重新打開成功。定時(shí)器重連邏輯void CMy485Dlg::OnTimerReconnect() { // 嘗試重新打開串口 if (m_pComPort-Open(m_nComPort)) { KillTimer(m_nReconnectTimerId); SetStatusText(_T(串口重連成功)); m_pComPort-StartReceiveThread(); } else { SetStatusText(_T(等待重連...)); } }5.2 通信日志排障的照妖鏡項(xiàng)目上線后的第一訴求基本是出問題時(shí)能查日志。尤其是485這種總線上掛著多臺(tái)設(shè)備的場景沒有日志你根本不知道哪臺(tái)設(shè)備沒回包、哪個(gè)字節(jié)是錯(cuò)的。我在demo里加了一個(gè)日志模塊所有發(fā)送和接收的字節(jié)都按十六進(jìn)制寫進(jìn)文本文件帶時(shí)間戳。這玩意成本極低但價(jià)值極高現(xiàn)場排障全靠它。void LogData(const CString strDir, BYTE* pData, int nLen) { CString strLine; strLine.Format(_T([%s] %s: ), CTime::GetCurrentTime().Format(_T(%H:%M:%S)), strDir); for (int i 0; i nLen; i) { CString strByte; strByte.Format(_T(%02X ), pData[i]); strLine strByte; } // 寫入文件 CStdioFile file; if (file.Open(_T(comm_log.txt), CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite)) { file.SeekToEnd(); file.WriteString(strLine _T(\n)); file.Close(); } }5.3 打包部署MFC運(yùn)行庫和驅(qū)動(dòng)要一起帶走最后交付時(shí)跑demo的機(jī)器要裝MFC運(yùn)行庫才能運(yùn)行。Debug版本還得帶一堆調(diào)試動(dòng)態(tài)庫Release版本的運(yùn)行庫文件要一并帶上。用VS2013以上版本做的MFC程序目標(biāo)機(jī)器大概率裝了更新版的VC運(yùn)行庫但保險(xiǎn)起見還是把對應(yīng)版本的vcredist_x86安裝包隨程序一起交付。另外如果是USB轉(zhuǎn)485模塊USB驅(qū)動(dòng)也要一起打包?,F(xiàn)場經(jīng)常有人插上新機(jī)器發(fā)現(xiàn)沒驅(qū)動(dòng)臨時(shí)找驅(qū)動(dòng)盤找不到這個(gè)坑屬于高頻。把驅(qū)動(dòng)的exe安裝文件放進(jìn)部署包的驅(qū)動(dòng)目錄下能省去售后一堆電話。寫代碼容易調(diào)通現(xiàn)場才是本事做這類項(xiàng)目到最后你會(huì)發(fā)現(xiàn)寫代碼其實(shí)是最快的一步真正花時(shí)間的全在現(xiàn)場排查設(shè)備接地不良導(dǎo)致的共模電壓、A/B線接線反了、總線上兩臺(tái)設(shè)備地址沖突……每一個(gè)都是文檔里不會(huì)寫、但實(shí)際必然遇到的坑。給你們留一個(gè)實(shí)際檢驗(yàn)過的經(jīng)驗(yàn)如果新接到一個(gè)485通信的需求先別急著寫代碼花半天把現(xiàn)場設(shè)備的電氣參數(shù)、通信協(xié)議、接線拓?fù)涿宄@個(gè)時(shí)間花得絕對值。協(xié)議文檔拿到手之后按上面這套代碼骨架去改最多一天能把基礎(chǔ)通信跑通。后面就算遇到玄學(xué)問題只要協(xié)議解析和方向時(shí)序這兩塊做扎實(shí)基本都能在日志里浮出水面。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰色色综合| 亚洲中文字幕在线观看| 色五月成人婷婷| 激情综合五月| 婷婷成人五月天一区| 97超碰婷婷五月天| 伊人玖玖婷婷| 婷婷另类开心| 先锋男人91资源| 91九色视频在线观看| 色色五月天丁香婷婷| 婷婷伊人| 丁香五月天天高清在线| 婷婷九九| 色www99| 狠狠xx| 九九人人看| 天天日夜夜拍| 婷婷五月花西瓜| 色欧美影院| 五月丁香婷婷色色| 嫩草AV久久伊人妇女超级a| 久久婷婷五| 久久久久久久久99精品| 97婷婷丁香五月| 97色碰碰公开视频| 无码色色色| 久久在线人妻| 永久无码色| 欧美搡BBBBB摔BBBBB| 婷婷五月天激情丁香| 欧洲不卡视频| 色都都狠狠色都都色综合色| 丁香五月偷拍| 亚洲第一成人无码A片| 色婷婷基地在线| BBWCUCKOLD精品熟妇| 狠狠狠狠狠狠狠狠| 在线VA视频| 99久高清视频| 610018岁成人视频| 思思re99视频在线观看| 久久婷婷五月| 五月婷婷乱| 日本专区久久| 97搞在线| 国产成人精品一区二三区熟女在线| 久热视频这里只有精品| 丁六月激情| 久婷视频| 色综合色香蕉网| 99在线视频播放| 伊人狠狠综合| 丁香五月婷婷综合视频| 大香蕉婷婷久久| 国产成人精品一区二三区熟女在线 | 五月丁香六月停停| 天天爽在线视频| 中文字幕不卡网站| 色五月激情五月| 日韩精品一区二区亚洲AV观看 | 色婷婷综合网| 97人妻碰碰碰久久香蕉| 26uuu最新地址| 成人五月天婷婷| 97色视频网| 极品少妇XXXX精品少妇偷拍| 日本99视频| 很很干天天干| 五月天社区狠狠| 亚洲午夜精品久久久久久人妖| 亚洲婷婷丁香五月| yirenjiqingshiping| 五月婷婷激情五月| 色五月天在线观看| 激情九月综合| 99自拍视频网站| 综合五月天完整| 亚洲激情淫网| 激情五月综合视频| 色婷婷六月性 | 九九色影视| 五月开心激情| 狠狠做深爱婷婷久久综合一区| 99色看这里只有精品| 久99视频在线观看| 大香蕉五月天婷婷| 日本熟妇精品99| 色婷婷影视99| 99热在线网站| 五月丁香中文婷婷中文| 欧美婷婷九月| 超碰在线网站| 久久九九中文字幕| 六月婷婷综合激情| 日韩综合网络男女香蕉a片| 中文字幕成| 91VIP在线观看| 日本黄色三级片内射| 亚洲无码99| 天天干天干| 超碰色综合| 婷婷五月天国产| 婷婷王月天影院| 99视频这里只有久久精品 | 亚洲成人综合在线| 五月色视频| 色9999日韩国产| 毛片新网地| 亚洲天堂无码| 人妻久久婷婷| 成人五月天综合网| 免费精品66| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 微拍92| 97一区二区| 国产一级片色色| 精品夜夜澡人妻无码AV| 一本色道久久综合狠狠躁一二三| 六月婷婷日| 久久综合55| 精品国婬伦V无码久久久| 综合久久激情久久| 激情综合婷婷久久| 大香蕉久久久久| 激情AV| 91婷婷在线| 丁香婷婷大香蕉| 玖玖国产视频一区| 丰满人妻一区三区三区| 激情深爱五月| 91婷色| 亚洲无码播放| 五月天社区| 99国产精品久久久久久久久久久 | wuyuedingxiang99| 久久99这里只有精品视频 | 丁香五月www| 日韩在线一级| 婷婷四月 成人 狠狠干| 亭亭五月天成人| 这里只有精品1| 99精品一二三四视频| 久久婷婷五月天懂色| 久久婷婷五月综合| 色伊人91在线视频| 婷婷丁香成人五月天| 玖玖在线视| www.婷婷| 五月丁香婷婷三级| 色综合com| 99在线观看| 超碰在线观看三级片| 亚洲日本三级片| 亚洲天堂无码| 五月香蕉综合| 天天操婷婷| 激情综合九月| 91性交在线播放| 久re在线| 丁香月五月天婷婷久久| 五月丁香婷婷视频| 少妇人妻丰满做爰XXX| 91在线97视频| 天天情天天狠天天透| 欧美激情xxxXX| 五月激情婷婷开心| 九九99久久| 亚洲色图欧美色图日本视频| 欧洲不卡视频| 亚洲第一精品成人999久久精品| 99riAv1国产在线观看| 日韩成人免费电影| 婷婷五月色影视先锋| xxxx五月| 婷婷激情在线| 五月天婷婷色综合| 另类色网| 9999三级片| 无码免费人妻A片AAA毛片西瓜| 婷婷五月综合免费在线| 这里只有精品,日韩视频| 免费视频99| 可以看的av网站| 91免费啪视频| 99热在线99| 人妻久久久久久久 | 综合精品99| 婷婷在线观看五月天在线视频| 狠狠色婷婷六月激情网| 思思热在线| 丁香9月婷婷| 婷婷综合另类小说| 99热久草| 亚洲 欧洲 国产 伦综合| 久思思久视频| 五月丁香久久网| 狠狠插.com| 五月婷久久| 五月停停激情网| 久久99综合| 天堂网啪啪| 久久机热这里只有 | 99热9| 人人叉久| 啪到高潮激情丁香五月| 成人片黄网站色大片免费毛片| 丁香五月天黄色片| 久久婷婷五月天激情| 嫩草AV久久伊人妇女超级A| 啪啪99| 五月婷婷人妻| 婷婷婷婷午夜| 另类小说婷婷色| 99热日本| 97人人操在线| 色域五月婷婷丁香| 综合一区二区三区| 大香蕉久久婷婷精品综合| 国产高清av黄色看片| 久久天天天| 99热资源在线| 中文字幕五月久久婷| 久久久久人妻精选| 大香蕉婷婷婷| 俺去也在线视频| 色婷婷久久| 99re热在线视频| 79精品视频在线观看,| 欧美三9久九观看| 五月天另类小说亚洲| 色婷婷888| 国产色视频网站2| 狠狠激情五月天| 2025神马午夜福利| 久久这里只有国产精品视频| 五月天激情美女久久| 色婷婷视频| 丁香五月婷婷在线| 蜜桃婷婷五月| 国产国产乱老熟女视频网站97| 五月婷婷大香蕉| 综合网啪啪| 99在线视频免费| 99精品免费视频| 婷婷六月久久| 人人爱人人草| 色丁香五月| 五月丁香亭亭| 国产激情AV| 91色五月| 欧美欧盟性爱网| 热99在线| 伊人婷婷激情| 婷婷九九色| 操你av| 婷婷中文字幕网站| 夜夜操夜夜操| 五月天激情久久| 另类A片| 色综合久久99色| 性视频久久| 成人视频在线免费播放| 亚洲综合99| 97中文在线| 337p大胆噜噜噜噜噜91Av| 久久婷婷五月天蜜桃| 中文AV在线播放| 日本三久久| 色婷婷大香蕉| 五月亚洲激情| 大大香蕉综合在线| 色婷婷9| 丝袜大香蕉| 99热色精品| 婷婷五月蜜桃成人桃色丁香| www九九免费视频| 99视频热| 99在线视频播放| 九九热视频精品| 五月色婷婷在线观看| 五月丁香色婷婷| 99亚洲大片精品永久在线观看| 久久婷婷五月丁香蜜桃网| 五月天,激情四射,婷婷频道| 97在线刺激| 成人日韩欧美| 六月婷婷亚洲| 九九亚洲综合| 99久久国产宗和精品1上映| 丁香五月综合亚洲| 久久99网址| 深爱五月激情| 日本激情综合| 亚洲激情在线| 久久九九热re6这里有精品| 五月天激情丁香| 色情五月婷婷| 91女人18毛片水多国产| 色婷婷久久综合| 国产阿姨日皮艹逼内射视频| 五月亭亭欧美女人| 激情五月综合网| 狠狠操性爱av| 五月婷成人| 丁香五月花| 色五月天成人| 亚洲 精品 综合 精品| 视频一区二区在线| 激情久久久| 五月天综合区| 激情综合啪啪| 97超碰99热99| 嫩草AV久久伊人妇女超级A| 亚洲色亚洲精品| 92久久| 亚洲亚洲人成综合网络| 久久久99视频| 丁香婷在线| w婷婷五月婷婷w| 成人无码髙潮喷水A片| 99热这里有精力| aaaaa黄色| 91国产精品视频播放| 超碰色综合| 五月天婷婷丁香蜜桃91| 六月99天天婷婷激情综合| 久久五月婷6 9| 五月天丁香久久| 深爱开心五月天| 五月丁香综合成人社区| 激情六月婷婷啪啪| 99热色精品| 五月丁香六月婷婷无码| 婷婷五月丁香高清无码| 久久人人超| 久久婷婷原创视频| 色婷婷小说| 婷婷五月天亚洲综合| 春色激情第四色| 猫咪伊人久久| 看逼中文字幕| 丁香五月天大香蕉啪啪| 99精品网| 久久久久这里只有精品| 久99久精品视频| 99er久久| 五月婷婷免费在线观看| 影音先锋女人av鲁色资源网小说免费 | 欧洲激情五月天| 久久 婷婷 五月天| 色色色色区| 色天堂婷婷| 99热色精品| 欧美成人va| 五月丁香色婷婷综合| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 欧美美女国产日韩一区二区久| 日韩AV在线免费观看| 超碰人人插| 婷婷中文字幕| 狠狠综合网| 亚洲AV日韩无码| 九九99精品视频在线观看| 色国产五月| 成人电影一区| 国产成人网站在线观看| 日韩精品超碰在线观看| 影音先锋男人资源站一区二区| 婷婷五月天99综合网站| 九九99九九精品免费| 久久99视频| 久久九九综合| 亚洲五月婷| 色婷婷88| 伊人久久大香线蕉av最新| 99国产视频网| 无码人妻一区| 九九精品免费| www.色婷婷| 深爱五月激情| 夜夜爽天天爽| 99热这里只有精| 人妻精品一区二区三区| 丁香六月综合| 五月丁香六月婷婷久久肏| AV性爱在线| 亚洲成人黄色网| 色欲资源网| 这里只有精品在线播放| 成人九九视频| 婷婷五月天中文字幕| 激情五月色综合| 婷婷深爱五月丁香网| 丁香五月骚喷水视频| 亚色网站小视频| 99热精品在线播放观看| 初夜av| 99热骚货| 九九这里都是精品| 天天干天天拍| 丁香五月综合| 日韩一级片| 婷婷五月天综合网| 五月天综合在线网| 色五月色情| 五月天丁香欧美激情| 玖色色综合| 欧美性猛交99久久久99| 婷婷综合激情| 丁香婷婷人妻综合网| 激情五月婷婷在线区| 亚洲十月婷婷综合| 五月丁香婷婷五月| 91人人操人人| 五月天开心网| 黄色激情网站在线观看| 97五月天婷婷综合激情网| 伊人玖玖婷婷| 久热这里只有精品3| 色必久悠悠影院| 丁香婷婷久久老熟女综合网| 激情五月婷婷开心网| 操逼巨乳91| 日韩成人免费电影| 国产精品久久久久久喷浆| 婷婷不卡基地| AV操逼网| 亚洲热综合网在线观看| av人人干| 丁香五月婷婷色| 五月综合激情啪啪啪啪啪| 狠狠色噜噜狠狠亚洲A∨| 五月天激情四射网站| 99精品视频在线观看免费| 五月婷婷视频啪啪美女| 这里只有精品在线视频在线观看| 97精品综合久久| 欧美大片| 婷婷丁香花五月天| 色五月天成人在线| 久久狠狠干| 婷婷五月丁香五月| 成人人操| 色99亚洲| 免费视频无码| 亚洲无AV在线中文字幕| 色综合狠狠色| 久久五月网| 亚洲操B| 丁香五月天之婷婷影院| 狠狠色噜噜狠狠亚洲A∨| 婷婷中文无码| 久热精品视频| 成人av免费观看| 色9999综合久久| 一逼色综合| 婷婷五月天免费| 99资源在线视频| 亚洲成人综合在线| 色www.con| 青青热久精品视频在线观看| www.婷婷,com| 婷婷五月激情黄色| 丁香五月婷婷狠狠色| 思思久热| 激情五月综合| 操九色| 五月丁香 啪啪啪| 五月婷婷激情性爱| 婷婷六月综合基地| 九九99男女视频在线观看| 丁香蜜臀黄色婷婷五月天| 色五月婷婷激情| 亚洲成人免费在线| 台湾无码A片一区二区| 色五月婷婷大| 六月丁香网| 中文字幕婷婷在线| 久热中文字幕在线线观看| 特黄三级片| 99久久婷婷国产综合亚洲| 久久这里这里有精品免费视频| 婷婷淫淫狠狠六月| 性爱激情综合网| 五月色综合| 五月丁香六月婷婷啪啪| 欧美三级视频| 欧美毛片www| 99爱这里只有精品免费视频| 久久丁香婷婷五月| 亚洲性爱区无码区| 99ER热精品视频| 久久综合性| 婷香五月激情视频| 五月天婷婷Av| 婷婷六月色情| 青草青草视频2免费观看| 色婷婷导航| 丁香五月成人婷婷| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 日产精品一线二线三线芒果| 99热在这里只有免费精品| 日本色99| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 日本WWW九九九| www.9色色色| 逼逼AV| 久久婷婷视频| 99色视频| 色五月天在线观看| AV电影在线播放| 久久综合中文字幕| 五月丁香婷婷成人版| 亚洲色模骚货| 日本道久久91| www,色色色网站| 日本色啪| 午夜电影网VA内射| 国内自拍97在线| 第四色婷婷色五月| 久久久av久av久片一区二区| AV 3P| 人人操AV| 色五月丁香激情视频| 开心婷婷五月| 丁香五月婷婷呀| 99久热| 九九热只有这里是精品| 亚洲精品字幕在线观看| 六月婷婷色五月| 欧美成人精品三区综合A片| 一区二区中文字幕| BBWCUCKOLD精品熟妇| 色久婷婷网| 无码人妻少妇色欲AV一区二区| 婷婷四月 成人 狠狠干| 伊人五月天| 男人天堂亚洲综合| 这里只有精品96| 五区毛片七区毛片| 婷婷影院欧美| 性爱网五月天| 久久久思思热| 操操操97| 六月丁香VA| 久久综合网桃花| 国产精品爽爽久久久久久| www.婷婷,com| 婷婷五月色播放| 欧美成人Va| 青草视频在线观看视频| 天天干com| 久久婷婷综合拍| AV色婷婷| 激情五月伊人婷婷| 五月天激情美女久久| 欧美激情综合色丁香婷婷五月天| 91pornav在线| 婷婷六月久久综合导航| VA国产在线综合网站| 亚洲成人无码专区| 久热这里只有| 久久五月婷婷电影| av中文字幕免费观看| 丁香五月激情啪啪| 91精品婷婷国产综合久久| 九月婷婷久久| 成人视频婷婷| 网色99| 高清一区二区三区日本久| 色情一区二区播放| 日本天堂爱爱| 国产古装妇女野外A片| 国产色99| 色情综合| 99久久超级| 182TV大香蕉| 激情五月天在线观看色婷婷| 99九九这里有免费视频| 99久久婷婷五月综合| 国产日批视频| 久久机热探花| 亚洲免费看片| 26uuu精品一区二区| 大香蕉av在线| 九色视频入口91| 亚洲成人在线免费| 五月丁香六月婷婷在线播放| 操逼视频一区| 色色欧美。| 婷婷五月色色| 婷婷色色播五月天| 五月婷婷天堂| 激情五月四色| 777色色色| 婷婷开心六月| 少妇丁香婷婷 | 超碰人人摸人人操| 久久九色| 婷婷丁香色情五月天| 亭亭色色五月天| 精品久久久91久久影视网| 99九九玖玖| 四色女婷婷| 五月丁香啪综合| 久久一级AV| 丁香五月婷婷啪| 小视频一区| 91久久久久久久| 日本wwww在线| 天天色粽合合合合合合合| 五月婷婷在线观看黄| 久久五月激情网| 欧美视频五区| 超碰A V在线| 日日爽夜夜爽| 91九色视频| 视频色色色色色色| 狠狠五月丁香色婷| 99精品在线播放| 91精品丝袜久久久久久久久粉嫩| 国产又爽又猛又粗的视频A片| 8区视频在线| 99综合激情久久精品久久| 五月天激情综合首页| 久99久视频免费观看| 色狠狠婷婷| 国产激情综合五月久久| 久婷| 日本欧美成人片AAAA| 激情小说之五月| 色婷婷色五月另类综合| 久热中文字幕| 婷婷五月色惰| 激情丁香五月综合| 亚洲AV成人无码精品| 亚洲色啪| 九九热在线99| 久久久www| 久久人妻视频| 五月天六月婷婷| 狠狠狠五月婷婷六月丁香| 亚洲五月天综合色| 激情av| 久久免费操| 狠狠色婷婷7777久综合| 婷婷激情97| 99爱操| 激情内射人妻1区2区3区| 婷婷九月色| 思思热视频在线观看| 情色婷婷五月天| 亚洲人人操| www.激情五月| 狠狠干婷婷| 情久久综合五月天| 激情深爱综合网| 激情五月天色婷婷| 五月香六月婷| 亚洲婷婷激情五月天| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 天天做天天摸| 色五月婷婷激情| 99r这里只有精品在线观看| 日日做夜夜爱| 激情五月天激情综合网| 婷婷综合精品视频97| 久久激情五月网| 玖玖资源站视频| 2025年最新亚洲在线欧美| 好激情在线综合网| 国产成人99久久亚洲综合精品| www.开心激情| 99热在线只有精品| 婷婷久月| 男人的天堂五月丁香| 人妻视频在线| 久久综合丁香激情五月| www.激情| 亚洲情综合五月天| 九九热9| av人人操| 99久精品视频| 婷婷激情四射| 欧美美女国产日韩一区二区久| 成人久久天天x资源站| 先锋男人99资源| 伊人婷婷五月天av| av色色国产| AV色婷婷| 日韩婷婷| 99热午夜精品| 午夜丁香综合婷婷| 九九热在线观看6| 五月天另类小说亚洲| 五月婷婷和六月| 婷婷五月综合视频| 五月激情综合网| 综合色播| 亚洲中文字幕在线观看| 婷婷新网址| 九九热啪啪| 色婷婷丁香六月| 99色看| 综合在线色婷婷| 人人操AV| 国产99久久久国产精品免费看| WWW色色色COM| 色婷婷亚洲| 婷丁香五月天| 天天摸天天做天天爱天天爽| 91操人视频| 国产精品激情AV久久久青桔| 色原狠狠综合| 久久99热这里只有| 激情五月色综合| 色热久| 国自产拍偷拍精品啪啪一区二区| 婷婷五月天大香蕉在线视频观看| 色婷婷www| 激情综合网激情五月网| 日本丁香五月| 激情六月天| 玖色色综合| 都市激情久久| 丁香婷婷视频| 天天草天天爽| 久久婷婷五月综合一| 五月婷婷六月丁香免费| 天天做天天爱天天做| 91九色精品熟女内射| 精品二区| 色婷婷久久综合| 日本成人小说婷婷六月| caop在线视频| 国产av网| 婷婷成人网五月天| 色播激情五月天| 九九aV| 97人妻碰碰碰碰碰久久久久久| www.激情五月天。com| 99热在线成人网站| 99久久综合| 五月婷久久草| 中文字幕 久久9999| www.婷婷六月天| 色播jjjj| 九九激情网| 伊人五月综合网| 色五月亚洲| 久久综合九九| 五月激情婷婷国产精品久久久久久| 超碰在线成人| 欧美日韩国产一区| 色性五月天| 囯产精品久久欠久久久久久九大| 狠狠久久婷婷| 99热这里有精品2| 五月开心激情| 99热99美国在线观看| 五月婷婷手机在线| 色婷婷狠狠| 九九亚洲综合| 综合激情视频| 激情综合网激情五月丁香五月俺也去| 天天操天天爱天天日| 日本狠狠色| 一本到不卡高清DVD| 国产色丁香| 玖玖爱综合网| 五月丁香激情啪啪网| 99九九视屏| 九九AV| 97人人干人人操| 色噜噜狠噜噜视频| 99视频啪啪| 久久久五月激| 天天做天天爱天天爽| 超碰人人操人人干| 欧美在线视频免费播放| 99久久高清视频| 91精品国产综合久久密臀 | 婷婷九月激情| 开心激情网在线| 91ncm视频| 五月婷婷激情综合av| 久久男人网婷婷| 五月丁香婷婷激情| 日本狠狠干| 五月网激情| 99热.com| 婷婷天堂站| 热久久91| 午夜激情婷婷| 九色91国产| 欧美啪啪9| 涩婷婷五月天在线精品视频| 日本在线wwww| 洗浴中心操B视频| 黄色录像网点| 激情二色月| 免费看欧美成人A片无码| 99免费成人网| 久9视频| 综合激情啪啪| 99热综合| 中文字幕丁香五月| 屁股翘好撅高迎合跪趴| 亚洲丁香五月深爱五月| 五月婷婷丁香| 色五月婷婷五月久久| 亚洲亚洲人成综合网络| 久久伊人日日夜夜| 一区二区成人电影免费播放| 五月丁香久久激情网| 久久婷婷五月天大香蕉| 都市激情小说婷婷| 亚洲韩国日产综合AV| 天天做好综合色| 狠干综合| 色婷久| 五月综合丁香婷婷| 9999久久久久| 涩涩五月天综合| 另类少妇人与禽zOZZ0性伦| 色另类五月天| 五月婷A V在线| 91久久婷婷人人澡草| 99在线爽| 欧美乱码国产一级A片| 九九这里是免费的视频5| www狠狠| 丁香五月六月久久综合 | 精品成人无码A片观看香草视频| 激情久久天天| 91av色色乱视频| 激情五月综合婷婷| 国产精品久久..4399| a久久| 日本噜噜色网| 免费看片在线观看| 六月丁香综合| 99久热这里有精品| 大香蕉AV电影在线| 五月丁香六月激情视频| 天天搡日日搡aaaaⅩ| 精品色色| 狠狠干五码| 九九九九九九毛片| 五月丁香啪啪啪| www.五月天性.com| www.99热精品99.com| 99在线视频免费| 大功率国产在线| 激情文学综合婷婷五月天丁香花| 色色色色色色色色网站| 五月婷婷欧美| 成人做爰黄A片免费看直播室男男| 久久久久思思热| 国产操B视频| AA丁香综合激情| www.色五月.com| 六月丁香av| 免费无码毛片一区二区A片| 99精品在这里| 色婷婷五月影视| 99热热热天天人人人超超碰| AV成人在线播放| 久久黄色网扯| 婷婷自拍| 欧美精品99久久久| 99精吕视频在线观看了| 91色婷婷综合久久中文字幕二区| 九九九九精品精| XX久久| 五月丁香六月婷婷在线小说视频| 青青999| 日本狠狠干| 婷婷五月天免费视频| 青草青草久热这里只有精品| 内射 无码 伊人| 99自拍视频在线观看| 五月天婷爱综合| 国产ava| 五月天婷婷综合色| 色婷婷丁香| 久草xx性爱视频| 91久久久久久| 91VIP在线观看| 久久色情| 色激情五月| 国产精品色色色色| 婷婷午夜激情| 嫩草视频| 99精品在线观看| 青青草原伊人网| 婷婷五月免费在线| 九九99免费视频| 成人无码中文| 久久精品99国产精品日本 | 丁香五月婷婷深爱综合激情| 日本少妇AA一级特黄大片| 日本久久99| 国产日韩欧美性爱| 米奇影视资源777狠狠色婷婷五月天激情网 | 久久玖玖综合| 色婷婷六月| 婷婷性爱| 99在线免费观看| 丁香五月天啪啪激情综合网| 久久久网站| 五月天婷婷激情网| 九月丁香久久网| 99视频只有精品| 久久精品系列| 久久久人妻门| 激情伍月 欧美| 亚洲成人免费电影| 天天干天天曰天天射| 丁香五月天AV在线| 丁香六月婷婷| 九久9精品| 色屌丝中文字幕| 狠狠狠狠狠操| 99高级会所久久| 丁香五月天堂网| WWW免费视频碰碰碰碰| 91免费试看| 成人做爰黄A片免费看直播室男男| 日韩成人精品中文字幕| 亚洲人成色A777777在线观看| 成人丁香婷婷五月天| www.99热最新视频8| 五月婷婷大香蕉| aaa久久| www.刺激色网站www.| 久久激情四射| 美女婷婷激情亚洲| 国产精品99久久久久久久女警| 69精品人人人人| 影音先锋一区| 在线成人视频免费| 人妻啪啪啪| 婷婷五月深爱五月| 99热这里只是精品| 天天模,夜夜模夜夜爽| 综合激情网五月激情| 操人91| 九九综合九九| 婷婷午夜丁香| 亚洲综合无码| 婷婷射图五月天| 久综合九| 婷婷五月天黄色网址| 日本久久99久久| www.无码com| 色婷婷文字幕| 另类丁香综合| 色久99| 一区二区三区XXXXXX| 丁香五月婷婷亚洲天堂| 婷综合六月| 99久高清视频| 99啪在线| 三级毛片7979| 欧美日韩成人一区二区| 五月丁香黄色| 日韩啪| 丁香九月激情| 人妻性爱av网站| 婷香五月网在线| 99这里只有免费的精品| 国产精品噜噜在线视频| 色丁香在线视频| 99色热综合| 丁香五月婷婷激情蜜桃| 婷婷开心激情| 激情丁香九九五月综合网| 在线看片av| 99热精品在线播放| 97人人草| 91在线操逼视频| 99久久人人| 丁香五月综合首页| 婷婷丁香花五月天| 日韩中文欧美| 91热er| 久久久久久丁香五月| 情久久综合五月天| 激情五月婷黄版| 色人久久| 26uuu国产| 丁香色婷婷色手机免费在线| 婷婷天天五月天| 色婷婷影| 天天色播| 婷婷丁香久久五月综合| 1010日日无码| 天天影院色| 久99热| 国产乱妇无乱码大黄AA片| 久久九九思思| 1024婷婷综合久久五月天| 狠狠综合| www.五月天。com| 色色色色色色网站| 五月天啪啪视频| 少妇高潮呻吟A片免费看软件 | 国产精品国产| 夜夜躁爽日日| 91se精品国产| 第四色五月婷婷| 久久这里这里有精品免费视频| 亚洲综合色丁香五月天| 婷婷色五月在线视频| 91成人品| 亚洲愉拍99热成人精品| 婷婷之玖玖| 热九九精品| 综合色色婷婷| 成人免费在线电影| 久久激情视频| 五月激情久久| 久久99网站| 亭亭五月天黑人2014| 九九热re99re6在线精品| 五月天大香蕉| 九月婷婷人人操人人舔人人爱| 狼人狠狠操| 婷婷一本和五月丁香| 丁香美女五月天婷婷| 日本丁香五月| 天天久久婷婷| WWW,五月天| 五月丁香淫淫婷婷婷| 狠狠草狠狠草| 国产精品 的国产| 一区色色色色网| 精品无码99| 色婷婷五月综合| 日韩人妻在线播放| 久久久人妻不卡| 五月婷婷丁香狠狠撸久久| 亚洲成人网站在线观看| H亚洲| 99re6热在线精品视频播放速度| 日韩av网址大全| 99精品久久| 香蕉五月婷婷| 秋霞午夜理论| 大天天伊人| 国产毛片精品一区二区色欲黄A片 99国产在线精品视频 | www.五月天婷婷姐姐| 91九色中文字幕女在线观看| 丁香五月五月婷婷欧美大香蕉 | 国产综合色婷婷精品久久| 欧州婷婷五月天综合| 色综合激情| 激情丁香六月| 中文人妻AV久久人妻18| 99热1| 丁香五月婷婷色| www.久久久久| 97超碰在线免费观看| 丁香婷婷色五月合集| 日韩色色视频| 91色吧网| 99热中国| 国产真人做爰视频免费| AV在线观看网站| 综合色五月| 538在线精品| 97人人射| 婷婷五月天激情网| 亚洲AV无码成人电影| WWW夜夜| 九热...av| 亚洲AV电影美洲AV电影| 九九热在线视频,| 丁香五月婷婷影院| 《久久综合九色综合97婷婷| 五月丁香六月婷婷a v| 五月婷婷影院| 九九色人| 99性爱视频| 精品自拍97| 操逼123网| 国产激情综合五月久久| 中文字幕AV在线播放| 丁香五月六月综合激情| 五月久久丁香| 五月婷婷天天色| 丁香色婷婷| 精品牛仔裤超碰| 五月天啪啪啪| 亚州成人综合在线| 色天天综合色| 五月丁香激情啪啪| 亚洲AV免费在线| 国产成人综合在线| 日本精品干| 婷婷免费视频| 色婷婷久久9.com| 婷婷免费无视频| 伊人无码高清| 99热6这里只有精品6| 99免费在线视频| 九九精品在线视频观看| 女同激情久久av久久| www一起操| 女人天堂AV| 狠狠综合区| www婷婷| 久久思思99| 色色亚洲视频| 色色色天堂网| 99乱视频| 一区二区传媒视频| 国产五月天欧美色| 国产AV网页| 99精品小视频| 色站9/| 色婷婷五月在线| 中文字幕无码成人电影| 六月激情婷婷| 婷婷色偷拍| 这里只有精品视频| 久久9久久| www.五月天色色.com| 色五月婷婷影院| 五月婷婷色播| 97干免费视频| 色五月大香蕉| 99这里是99在线视频| 二色av| 婷婷五月免费观看| 国产午夜伦鲁鲁| 台湾佬天天日丁香婷婷五月天| 97色 五月天丁香| 思思热国产| 婷婷香蕉视频| 婷婷 色 丁香 夜| 大香蕉婷婷丁香| 在线看片av| 婷婷丁香人妻天久久| 亚洲丁香花色| 伊人五月久久| 中文AV网站| 激情五月丁香亭亭| 99久久www| 伊人久久婷婷| 亚洲人人96@| 不卡在线中文字幕无| 久 久9 9 热 视 频| 国产午夜精品一区二区三区四区| www超碰com| 另类激情五月天| 亚洲激情五月| 久久大香蕉同僚| 久久婷婷五月天| 免费视频无码| 午夜国产精品AV在线播放| 国产中文字幕在线视频免费观看| 99热丁香| 久久网站免费亚洲| 九八Av| 亚洲99热| 无码区婷婷五月花开| 91九色在线| 99re这里只有精品在线观看| 色婷婷丁香社综合| 久热伊人| 色狠狠综合网| 成人一区在线观看| 国产精品久久..4399| 丁香六月 婷婷六月| 90色免费视频| 成人网在线视频| 婷婷五月天伊人在线| 色吧网91| 青青草轻轻操| 思思99精品视频在线观看| 高清a片基地| 99热国内精品| 婷五月天在线草| 狠狠狠狠青草| 大香蕉AV在线| 亚洲综合在线丁香五月| 爆乳熟女一区二区三区爆乳| 五月婷婷六月色| 婷婷色成人| 婷婷的久久网站| 牛牛热这里只有jingpin| 五月婷婷亚洲色视频| 六月99天天婷婷激情综合| 狠狠操狠狠色| 天堂久久精品| www.日韩艹| 大香蕉久久婷婷精品综合| 精品久久99| 熟女激情五月天 | 啪啪九九色| 91丨九色丨东北熟女| 天天插天天| 成人一级片| 桃色五月婷婷| 91九色国产| 五月丁香AV在线| 色综合久久久久| 五月丁香六月停停停| 99视频在线精品免费观看2| 另类图片婷婷五月天| 91九色在线| 婷婷九月丁香中文| 偷拍五月丁香| 激情五月天激情五月天| 久久久久久久久久久久久久人妻视频| 久久99免费视屏| 九九色热| 色婷婷综合影院| 色狠狠图片| 五月婷婷AV| 激情五月婷色| 国产亚洲精品AAAAAAA片| 久久久人妻| 色久五月| 99热九九这里只有精品| 亚洲人人艹| 强辱丰满人妻HD中文字幕| 五月婷婷色综图片| 婷婷五月天综合色| 亚洲精品色色| 99啪啪网| 日韩五月婷婷久久| 国产超碰在线| 色婷婷亚洲| 99精在线| 襙逼网| 激情五月天噢美| 九九99热久久精品66中文字幕| se色婷婷视频| 亚洲五月婷| 99九九精品视频| 五月婷婷第四色| 视频这里只有精品16| 66精品国产成人| 国产精品电影网| 婷婷五月欧美AA片免费| 国产XXXX搡XXXXX搡麻豆| 婷婷五月天成人网| 五月丁香激情综合| 五月丁香婷婷三级| 五月婷婷久久爱| 色五月婷婷 成人| 婷婷99中文字幕| 丁香五月婷婷亚洲另类| 国产操B| 成人做爰高潮A片免费视频| 欧美一级色| 中文资源在线a| 色五月婷婷小说亚洲中文字幕组| 狠狠五月天激情| 国产一级婬片毛片| 日本狠狠爽|