久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

C#串口調(diào)試工具實(shí)戰(zhàn):從SerialPort配置到多設(shè)備并發(fā)與協(xié)議解析

C#串口調(diào)試工具實(shí)戰(zhàn):從SerialPort配置到多設(shè)備并發(fā)與協(xié)議解析 簡(jiǎn)介這份C#串口工具資源面向嵌入式、工業(yè)自動(dòng)化與物聯(lián)網(wǎng)方向的開發(fā)者以及需要快速搭建串口通信程序的學(xué)習(xí)者幫助解決串口連接、數(shù)據(jù)收發(fā)與參數(shù)配置等常見開發(fā)問題。壓縮包共26個(gè)文件約80KB以cs源碼為主輔以exe可執(zhí)行文件、resx與resources資源文件、csproj工程文件及sln解決方案另含README說明與ini配置文件結(jié)構(gòu)完整便于直接編譯運(yùn)行與二次修改。資源圍繞System.IO.Ports命名空間下的SerialPort類展開涵蓋波特率、校驗(yàn)位、數(shù)據(jù)位、停止位設(shè)置DataReceived事件監(jiān)聽、Write發(fā)送數(shù)據(jù)以及Open與Close資源釋放等核心環(huán)節(jié)并涉及錯(cuò)誤處理與狀態(tài)監(jiān)控思路。目前已有231人學(xué)習(xí)下載適合作為串口通信入門與項(xiàng)目實(shí)踐的參考范例讀者可借此理解事件驅(qū)動(dòng)編程模式掌握構(gòu)建穩(wěn)定串口工具的關(guān)鍵方法。1. 串口調(diào)試這件事為什么老工程師最后都自己寫了一個(gè) C# 工具做過嵌入式、工控、儀器儀表的人電腦里大概率躺著一個(gè)自己寫的串口工具。市面上的調(diào)試助手不是不能用而是用著用著就卡在某個(gè)點(diǎn)上協(xié)議幀要手動(dòng)拼、十六進(jìn)制和 ASCII 來回切、多設(shè)備同時(shí)接就手忙腳亂、想加個(gè)自動(dòng)應(yīng)答還得求人改源碼。C# 串口工具之所以成為很多人的最終選擇是因?yàn)?.NET 把SerialPort封裝得足夠順手WinForm 或 WPF 拖幾個(gè)控件就能跑而真要深挖底層又能直接摸到字節(jié)流、超時(shí)、緩沖區(qū)這些關(guān)鍵參數(shù)。它解決的不是「能不能收發(fā)」這種入門問題而是「怎么把收發(fā)變成一套可復(fù)用、可擴(kuò)展、能扛住現(xiàn)場(chǎng)折騰的調(diào)試鏈路」。這篇文章面向的是已經(jīng)會(huì)點(diǎn) C#、但被串口現(xiàn)場(chǎng)問題反復(fù)折磨的從業(yè)者從最小可跑程序一路講到多設(shè)備并發(fā)和協(xié)議解析的落地寫法。2. 把 SerialPort 用對(duì)從最小可跑程序到參數(shù)配置2.1 先搞清楚串口通信里那幾個(gè)繞不開的參數(shù)很多人寫串口工具翻車不是代碼寫錯(cuò)而是參數(shù)沒對(duì)齊。串口通信的核心參數(shù)就那么幾個(gè)波特率、數(shù)據(jù)位、停止位、校驗(yàn)位外加一個(gè)流控。它們必須和對(duì)面設(shè)備完全一致差一位就是一堆亂碼或者干脆收不到數(shù)據(jù)。波特率是最容易出問題的。常見值有 9600、19200、38400、57600、115200工業(yè)現(xiàn)場(chǎng)還有 4800 甚至更低的。這里有個(gè)血淚經(jīng)驗(yàn)波特率不匹配時(shí)收到的往往不是「什么都沒有」而是一堆看似有規(guī)律的亂碼新手容易誤以為是編碼問題其實(shí)是時(shí)鐘對(duì)不上。數(shù)據(jù)位一般是 8 位少數(shù)老設(shè)備用 7 位停止位通常是 1 位也有 1.5 和 2 位的校驗(yàn)位常見 None、Even、Odd 三種。流控分硬件流控RTS/CTS和軟件流控XON/XOFF大部分調(diào)試場(chǎng)景直接設(shè) None但有些儀器必須開硬件流控才肯吐數(shù)據(jù)。在 C# 里這些參數(shù)對(duì)應(yīng)SerialPort類的屬性。我一般會(huì)先寫一個(gè)配置結(jié)構(gòu)體把參數(shù)集中管理而不是散落在各個(gè)控件的事件里。這樣換設(shè)備時(shí)只改一處不用滿代碼找。// 串口配置參數(shù)集中管理避免散落在各處 public class SerialConfig { public string PortName { get; set; } COM1; // 端口號(hào)現(xiàn)場(chǎng)按設(shè)備管理器實(shí)際值填 public int BaudRate { get; set; } 115200; // 波特率必須與設(shè)備一致 public int DataBits { get; set; } 8; // 數(shù)據(jù)位老設(shè)備可能是 7 public StopBits StopBits { get; set; } StopBits.One; // 停止位 public Parity Parity { get; set; } Parity.None; // 校驗(yàn)位 public Handshake Handshake { get; set; } Handshake.None; // 流控 }這段代碼本身不復(fù)雜關(guān)鍵在于把參數(shù)收攏。PortName在 Windows 上是COMx超過 COM9 的端口在有些老 API 里要寫成\\.\COM10這種形式雖然SerialPort類一般能直接識(shí)別但現(xiàn)場(chǎng)遇到打不開的情況先懷疑端口號(hào)格式。BaudRate設(shè)錯(cuò)是最常見的低級(jí)錯(cuò)誤建議在界面上做成下拉框而不是自由輸入減少手抖。2.2 打開、收發(fā)、關(guān)閉一個(gè)能跑起來的最小閉環(huán)參數(shù)配好之后最小閉環(huán)就是打開端口、發(fā)數(shù)據(jù)、收數(shù)據(jù)、關(guān)端口。聽起來簡(jiǎn)單但SerialPort有幾個(gè)坑必須提前知道。第一DataReceived事件是在后臺(tái)線程觸發(fā)的直接在里面更新 UI 控件會(huì)拋跨線程異常。第二ReadExisting返回的是字符串遇到非文本協(xié)議會(huì)丟字節(jié)二進(jìn)制協(xié)議必須用Read讀字節(jié)數(shù)組。第三關(guān)閉端口時(shí)如果還有未處理的數(shù)據(jù)可能卡住得先取消事件訂閱再Close。下面是一個(gè)最小可跑的控制臺(tái)示例把打開、發(fā)送、接收、關(guān)閉串起來using System; using System.IO.Ports; using System.Text; using System.Threading; class MinimalSerial { static void Main() { var config new SerialConfig { PortName COM3, BaudRate 115200 }; using (var port new SerialPort(config.PortName, config.BaudRate, config.Parity, config.DataBits, config.StopBits)) { port.Handshake config.Handshake; port.ReadTimeout 500; // 讀超時(shí)避免 Read 永久阻塞 port.WriteTimeout 500; // 寫超時(shí)避免緩沖區(qū)滿時(shí)卡死 // 訂閱接收事件注意這是在后臺(tái)線程執(zhí)行 port.DataReceived (s, e) { var sp (SerialPort)s; int count sp.BytesToRead; byte[] buffer new byte[count]; sp.Read(buffer, 0, count); // 二進(jìn)制安全不用 ReadExisting Console.WriteLine($收到 {count} 字節(jié): {BitConverter.ToString(buffer)}); }; port.Open(); Console.WriteLine($已打開 {config.PortName}); // 發(fā)送一段十六進(jìn)制指令這里以 01 03 00 00 00 01 為例 byte[] cmd new byte[] { 0x01, 0x03, 0x00, 0x00, 0x00, 0x01 }; port.Write(cmd, 0, cmd.Length); Console.WriteLine(已發(fā)送指令); Thread.Sleep(1000); // 留時(shí)間收數(shù)據(jù)實(shí)際項(xiàng)目用事件或輪詢 port.Close(); } } }邏輯上這段代碼做了四件事構(gòu)造SerialPort、設(shè)超時(shí)、訂閱接收、打開并收發(fā)。參數(shù)說明上ReadTimeout和WriteTimeout一定要設(shè)默認(rèn)是InfiniteTimeout一旦對(duì)面不發(fā)數(shù)據(jù)Read就永久掛起界面直接假死。BytesToRead拿到當(dāng)前緩沖區(qū)可讀字節(jié)數(shù)再Read到字節(jié)數(shù)組這是二進(jìn)制協(xié)議的標(biāo)準(zhǔn)讀法。發(fā)送用Write(byte[], int, int)而不是Write(string)避免編碼轉(zhuǎn)換引入額外字節(jié)。提示DataReceived事件不保證每收到一個(gè)字節(jié)就觸發(fā)一次它可能在緩沖區(qū)積累到一定量才觸發(fā)。所以解析協(xié)議時(shí)不能假設(shè)「一次事件等于一幀」必須自己做粘包和拆包處理。2.3 用 WinForm 搭一個(gè)能用的界面線程與刷新的處理控制臺(tái)跑通之后實(shí)際交付一般要個(gè)界面。WinForm 是最省事的拖一個(gè)ComboBox選端口、幾個(gè)ComboBox選波特率等參數(shù)、一個(gè)RichTextBox顯示收發(fā)、一個(gè)TextBox輸入指令、兩個(gè)Button做打開和發(fā)送。界面本身不難難的是線程安全。DataReceived在后臺(tái)線程觸發(fā)要更新RichTextBox必須切回 UI 線程。常見做法是Invoke或BeginInvoke。我一般封裝一個(gè)追加日志的方法內(nèi)部判斷InvokeRequired// 線程安全地向界面追加日志 private void AppendLog(string text) { if (richTextBox1.InvokeRequired) { // 切回 UI 線程執(zhí)行避免跨線程異常 richTextBox1.BeginInvoke(new Actionstring(AppendLog), text); return; } richTextBox1.AppendText(text Environment.NewLine); richTextBox1.ScrollToCaret(); // 自動(dòng)滾到底部 }這里用BeginInvoke而不是Invoke是因?yàn)镮nvoke是同步等待如果 UI 線程正忙后臺(tái)線程會(huì)被阻塞嚴(yán)重時(shí)導(dǎo)致接收丟數(shù)據(jù)。ScrollToCaret保證新數(shù)據(jù)可見但數(shù)據(jù)量大時(shí)頻繁調(diào)用會(huì)拖慢界面可以加個(gè)節(jié)流比如每 100 毫秒才滾一次。端口掃描用SerialPort.GetPortNames()返回當(dāng)前可用端口數(shù)組。注意這個(gè)數(shù)組順序不保證而且拔插設(shè)備后要重新掃描。我一般加個(gè)「刷新」按鈕而不是啟動(dòng)時(shí)掃一次就完事。發(fā)送區(qū)要支持十六進(jìn)制和 ASCII 兩種模式十六進(jìn)制模式下把用戶輸入的01 03 00這種字符串按空格拆開轉(zhuǎn)成字節(jié)ASCII 模式直接按編碼轉(zhuǎn)字節(jié)。這個(gè)切換邏輯看著小但現(xiàn)場(chǎng)用起來差別很大純文本設(shè)備用 ASCIIModbus 這類用十六進(jìn)制。3. 協(xié)議解析與多設(shè)備并發(fā)讓工具從能用到好用3.1 粘包拆包為什么你的解析總是差一幀串口是字節(jié)流沒有消息邊界。設(shè)備可能一次發(fā)半幀也可能兩幀連在一起發(fā)過來。如果你的解析代碼假設(shè)「一次DataReceived就是一幀」那現(xiàn)場(chǎng)一定會(huì)翻車。解決粘包拆包的標(biāo)準(zhǔn)思路是維護(hù)一個(gè)接收緩沖區(qū)每次收到數(shù)據(jù)就追加進(jìn)去然后循環(huán)嘗試從緩沖區(qū)頭部提取完整幀。提取完整幀的前提是知道幀結(jié)構(gòu)。常見的有兩種定長(zhǎng)幀和帶長(zhǎng)度字段的變長(zhǎng)幀。定長(zhǎng)幀好辦緩沖區(qū)長(zhǎng)度夠一幀就取走。變長(zhǎng)幀一般有幀頭、長(zhǎng)度字段、數(shù)據(jù)、校驗(yàn)。下面是一個(gè)帶幀頭和長(zhǎng)度字段的解析示例// 接收緩沖區(qū)跨事件累積字節(jié) private Listbyte _rxBuffer new Listbyte(); // 假設(shè)協(xié)議幀頭 0xAA 0x55第 3 字節(jié)為數(shù)據(jù)長(zhǎng)度最后 1 字節(jié)為校驗(yàn)和 private void OnDataReceived(object sender, SerialDataReceivedEventArgs e) { var sp (SerialPort)sender; int count sp.BytesToRead; byte[] temp new byte[count]; sp.Read(temp, 0, count); _rxBuffer.AddRange(temp); // 追加到累積緩沖區(qū) // 循環(huán)提取完整幀可能一次收到多幀 while (true) { // 找?guī)^ int headIndex FindHeader(_rxBuffer); if (headIndex 0) { _rxBuffer.Clear(); break; } // 沒有幀頭丟棄 if (headIndex 0) _rxBuffer.RemoveRange(0, headIndex); // 丟掉幀頭前的雜數(shù)據(jù) if (_rxBuffer.Count 4) break; // 連長(zhǎng)度字段都不夠等下次 int dataLen _rxBuffer[2]; int frameLen 2 1 dataLen 1; // 幀頭2 長(zhǎng)度1 數(shù)據(jù) 校驗(yàn)1 if (_rxBuffer.Count frameLen) break; // 幀不完整等下次 byte[] frame _rxBuffer.GetRange(0, frameLen).ToArray(); _rxBuffer.RemoveRange(0, frameLen); ProcessFrame(frame); // 校驗(yàn)并處理 } } // 查找?guī)^ 0xAA 0x55 的位置 private int FindHeader(Listbyte buf) { for (int i 0; i buf.Count - 1; i) if (buf[i] 0xAA buf[i 1] 0x55) return i; return -1; }這段代碼的關(guān)鍵點(diǎn)有三個(gè)。第一_rxBuffer是跨事件累積的不能每次事件清空。第二while(true)循環(huán)保證一次收到多幀時(shí)全部提取。第三找不到幀頭時(shí)清空緩沖區(qū)避免垃圾數(shù)據(jù)越積越多。參數(shù)上frameLen的計(jì)算必須和協(xié)議定義嚴(yán)格一致差一個(gè)字節(jié)就會(huì)永遠(yuǎn)解析不出完整幀。校驗(yàn)和一般在ProcessFrame里算不通過就丟棄并記日志不要直接拋異常。注意_rxBuffer如果只增不減長(zhǎng)時(shí)間運(yùn)行會(huì)吃滿內(nèi)存。上面的代碼在提取幀后會(huì)RemoveRange找不到幀頭會(huì)Clear這是必須的?,F(xiàn)場(chǎng)見過有人忘了清理跑一晚上內(nèi)存爆掉。3.2 多設(shè)備并發(fā)一個(gè)工具同時(shí)管四路串口現(xiàn)場(chǎng)經(jīng)常要同時(shí)接好幾個(gè)設(shè)備比如一個(gè)采集板、一個(gè)顯示屏、一個(gè)傳感器。如果開四個(gè)調(diào)試助手切來切去很痛苦。用 C# 做多設(shè)備并發(fā)核心是每個(gè)串口一個(gè)獨(dú)立的SerialPort實(shí)例和獨(dú)立的接收緩沖區(qū)界面用TabControl或者列表分區(qū)顯示。我一般會(huì)封裝一個(gè)SerialDevice類把端口、配置、緩沖區(qū)、解析邏輯都裝進(jìn)去主界面只管理一個(gè)SerialDevice列表。這樣增刪設(shè)備就是操作列表不用改界面邏輯。// 單個(gè)串口設(shè)備的封裝每個(gè)實(shí)例獨(dú)立管理自己的端口和緩沖區(qū) public class SerialDevice { private SerialPort _port; private Listbyte _buffer new Listbyte(); public string Name { get; set; } // 設(shè)備別名界面上顯示 public event Actionstring, byte[] OnFrameReceived; // 幀回調(diào)帶設(shè)備名 public void Open(SerialConfig config) { _port new SerialPort(config.PortName, config.BaudRate, config.Parity, config.DataBits, config.StopBits); _port.Handshake config.Handshake; _port.ReadTimeout 500; _port.DataReceived (s, e) { int count _port.BytesToRead; byte[] temp new byte[count]; _port.Read(temp, 0, count); _buffer.AddRange(temp); ParseBuffer(); // 復(fù)用上一節(jié)的拆包邏輯 }; _port.Open(); } private void ParseBuffer() { // 拆包邏輯同上解析出完整幀后觸發(fā)回調(diào) // OnFrameReceived?.Invoke(Name, frame); } public void Send(byte[] data) _port?.Write(data, 0, data.Length); public void Close() { if (_port ! null _port.IsOpen) { _port.DataReceived - null; // 實(shí)際項(xiàng)目要保存委托引用再取消 _port.Close(); } } }這個(gè)封裝的價(jià)值在于隔離。每個(gè)設(shè)備有自己的_buffer互不干擾OnFrameReceived帶上設(shè)備名界面按名字分發(fā)到對(duì)應(yīng)區(qū)域。參數(shù)上ReadTimeout每個(gè)設(shè)備獨(dú)立設(shè)因?yàn)椴煌O(shè)備響應(yīng)速度不一樣。多設(shè)備并發(fā)時(shí)要注意 USB 轉(zhuǎn)串口線的帶寬四路 115200 同時(shí)滿速跑某些廉價(jià)轉(zhuǎn)換器會(huì)丟數(shù)據(jù)這時(shí)候要么降波特率要么換帶獨(dú)立晶振的轉(zhuǎn)換器。3.3 自動(dòng)應(yīng)答與腳本化把重復(fù)勞動(dòng)交給工具調(diào)試到后期很多操作是重復(fù)的發(fā)一條查詢、等回復(fù)、再發(fā)下一條。手動(dòng)點(diǎn)太累我一般會(huì)給工具加個(gè)簡(jiǎn)單的腳本功能。不用搞得很復(fù)雜一個(gè)指令列表加延時(shí)就行。// 簡(jiǎn)單的自動(dòng)應(yīng)答腳本按順序發(fā)送指令每條之間留間隔 public async Task RunScript(SerialDevice device, List(byte[] cmd, int delayMs) steps) { foreach (var step in steps) { device.Send(step.cmd); await Task.Delay(step.delayMs); // 等待設(shè)備響應(yīng)間隔按設(shè)備手冊(cè)設(shè) } }delayMs是關(guān)鍵參數(shù)設(shè)太短設(shè)備還沒處理完就發(fā)下一條會(huì)丟響應(yīng)設(shè)太長(zhǎng)整體效率低。我一般按設(shè)備手冊(cè)的響應(yīng)時(shí)間再加 50% 余量。這個(gè)腳本功能不需要多高級(jí)能省掉重復(fù)點(diǎn)擊就值了。更進(jìn)一步的玩法是把腳本存成文本文件一行一條指令工具啟動(dòng)時(shí)加載這樣換設(shè)備只改文件不改代碼。4. 避坑與排查串口工具現(xiàn)場(chǎng)翻車的五個(gè)典型場(chǎng)景4.1 端口打不開提示被占用或拒絕訪問現(xiàn)象是Open()拋異常提示Access to the port COM3 is denied。原因通常有三個(gè)另一個(gè)程序還占著這個(gè)端口、上次關(guān)閉時(shí)沒釋放干凈、或者端口號(hào)根本不存在。解決順序是先確認(rèn)設(shè)備管理器里端口在不在再用GetPortNames()看列表里有沒有然后檢查是不是有別的調(diào)試助手開著。如果都排除了還打不開重啟一下往往能解決因?yàn)橛行?USB 轉(zhuǎn)串口驅(qū)動(dòng)釋放端口有延遲。代碼層面Open一定要包try-catch把異常信息顯示到界面而不是讓程序崩掉。4.2 收到數(shù)據(jù)全是亂碼現(xiàn)象是接收區(qū)一堆看不懂的字符。原因九成是波特率或數(shù)據(jù)位不匹配剩下一成是編碼問題。先核對(duì)波特率再核對(duì)數(shù)據(jù)位和校驗(yàn)位。如果參數(shù)確認(rèn)沒錯(cuò)檢查是不是用了ReadExisting讀二進(jìn)制數(shù)據(jù)ReadExisting會(huì)按當(dāng)前Encoding解碼非文本數(shù)據(jù)必然亂碼。解決方法是改用Read讀字節(jié)數(shù)組顯示時(shí)再?zèng)Q定按十六進(jìn)制還是 ASCII 呈現(xiàn)。另外有些設(shè)備上電后會(huì)先發(fā)一段啟動(dòng)信息那段信息可能不是標(biāo)準(zhǔn)協(xié)議幀解析時(shí)要能跳過。4.3 界面卡死點(diǎn)發(fā)送沒反應(yīng)現(xiàn)象是點(diǎn)了發(fā)送按鈕后界面無響應(yīng)過一會(huì)兒才恢復(fù)或者一直不恢復(fù)。原因通常是Write阻塞了 UI 線程。SerialPort.Write在緩沖區(qū)滿時(shí)會(huì)阻塞如果對(duì)面設(shè)備不收數(shù)據(jù)寫超時(shí)又設(shè)成了無限UI 線程就掛住了。解決辦法是把發(fā)送放到后臺(tái)線程或者至少設(shè)一個(gè)合理的WriteTimeout。我一般把發(fā)送封裝成Task.Run界面只負(fù)責(zé)觸發(fā)不負(fù)責(zé)等待。接收側(cè)同理DataReceived里不要做耗時(shí)操作解析完盡快返回。4.4 數(shù)據(jù)偶爾丟幀尤其是高速率下現(xiàn)象是大部分幀正常偶爾少一幀或者校驗(yàn)失敗。原因可能是接收緩沖區(qū)溢出。SerialPort的ReadBufferSize默認(rèn)是 4096 字節(jié)高速率下如果解析邏輯太慢緩沖區(qū)會(huì)滿滿了之后新數(shù)據(jù)就丟了。解決辦法是加大ReadBufferSize同時(shí)讓DataReceived里的處理盡量快復(fù)雜解析丟到隊(duì)列里異步做。另一個(gè)原因是 USB 轉(zhuǎn)串口線質(zhì)量差換一根帶獨(dú)立晶振的線往往立竿見影。參數(shù)上115200 以上波特率建議把ReadBufferSize設(shè)到 8192 或更大。4.5 關(guān)閉程序時(shí)端口沒釋放下次打不開現(xiàn)象是程序關(guān)了但端口還被占著任務(wù)管理器里進(jìn)程還在。原因是SerialPort沒正確Close和Dispose或者DataReceived事件沒取消訂閱導(dǎo)致對(duì)象無法回收。解決辦法是在窗體關(guān)閉事件里顯式關(guān)閉所有設(shè)備先取消事件訂閱再Close最后Dispose。我一般把SerialDevice.Close寫成冪等的多次調(diào)用不報(bào)錯(cuò)。另外using語句能保證異常時(shí)也釋放但SerialPort在using里如果DataReceived還在跑可能拋異常所以還是顯式管理更穩(wěn)。5. 進(jìn)階技巧把串口工具做成可復(fù)用的調(diào)試框架寫到這兒一個(gè)能用的 C# 串口工具已經(jīng)成型了。但如果只停在「能用」下次換個(gè)項(xiàng)目又得重寫。我的習(xí)慣是把串口通信層抽成一個(gè)獨(dú)立的類庫(kù)界面層只依賴接口這樣 WinForm 換成 WPF 或者控制臺(tái)都不用動(dòng)通信代碼。具體做法是定義ISerialTransport接口把打開、關(guān)閉、發(fā)送、接收事件暴露出去SerialPort只是其中一個(gè)實(shí)現(xiàn)。將來要加 TCP 轉(zhuǎn)串口或者虛擬串口實(shí)現(xiàn)同一個(gè)接口就行。驗(yàn)證工具有沒有做扎實(shí)我一般用三個(gè)方法。第一用虛擬串口軟件建一對(duì)互聯(lián)端口自己發(fā)自己收測(cè)粘包拆包和并發(fā)。第二拿一個(gè)已知協(xié)議的設(shè)備比如標(biāo)準(zhǔn) Modbus 從站跑一遍讀寫寄存器看解析對(duì)不對(duì)。第三長(zhǎng)時(shí)間跑掛一晚上看內(nèi)存有沒有漲、有沒有丟幀。這三個(gè)方法能覆蓋大部分現(xiàn)場(chǎng)問題。參數(shù)調(diào)優(yōu)上有幾個(gè)值值得反復(fù)試。ReadTimeout設(shè) 500 毫秒適合大多數(shù)設(shè)備但慢速設(shè)備可能要 2000ReadBufferSize在 115200 以上建議 8192DataReceived的觸發(fā)閾值ReceivedBytesThreshold默認(rèn)是 1改成幀長(zhǎng)能減少事件次數(shù)但改大了可能延遲我一般保持默認(rèn)靠緩沖區(qū)累積來拆包。這些值沒有標(biāo)準(zhǔn)答案得按設(shè)備和協(xié)議調(diào)。最后說個(gè)我自己的教訓(xùn)。早期寫串口工具我總想把所有功能塞進(jìn)一個(gè)窗體結(jié)果代碼越寫越亂改一個(gè)地方崩三個(gè)地方。后來強(qiáng)制自己分層通信層只管字節(jié)收發(fā)和拆包協(xié)議層只管幀解析界面層只管顯示和交互。分層之后加新協(xié)議就是加一個(gè)解析類加新設(shè)備就是加一個(gè)配置再也不用動(dòng)核心代碼。這個(gè)習(xí)慣讓我后面做任何串口項(xiàng)目都能半天出原型。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲欧洲综合av在线| 五月婷婷性爱| 亚洲 91 在线| 传媒在线观看一区二区三区| 久久久久国产精品喷潮免费观看臀| 成年女人一区| 伊人热综合| 欧美中出1| 久久有码视频| 久久久国产成人一区二区三区在线| 天天α片| 国产成年免费大片黄在线观看| 久久中文色图| 97人人草| 97视频在线免费观看| 99在线精品视频| 91天堂丝袜美腿| 人妻99p| 91精品国久久久久久无码| 日本熟妇浓毛hdsex| 色97| 欧洲特黄毛片免费看欧洲毛片| 免费夜夜爱黄色视频毛片| www亚洲欧美| 久久一二三四五六七八九区区区| 天天综合中文字幕 91| 99色| 国产黄色影片在线观看| 秋霞福利网| 超碰人人超在线观看| 久久久性爱| 日本少妇va7777| 绯色一区二区三区不卡少妇| 欧美91精彩| 播播亚洲小说亚洲| 韩日欧亚a级| 另类图片五月天| 九九九九热| 99热在线不卡| 久久无码电影| 欧美性暴力| 九九玖玖精品| 色久桃花影院在线观看| 另类老少妇| 这里只有精品久久| 人人玩人人添人人澡免费| 四虎在线免费视频| 人人妻人人操人人乐| 天天视频网站黄| 亚洲资源网| 开心五月深爱五月| 无码国产Av| 超碰这里有精品| 日本福利社| a级免费在线观看| 欧美视频第二页| 亚洲精品一区二区三区在线播放| 精品999一区二区| 人妻美腿丝袜制服诱惑综合天堂-| 手机在线人成免费视频| 老熟女网站| 嗯嗯啊啊好疼| 久久香蕉国产传媒一区剧情天美| 美女操逼福利视频| 欧美中文字幕日韩在线| 九九操久久国产免费视频| 午夜精品99久久久久传媒| av一区二区三区四区| 色婷婷日韩精品一区二区三区 | 台湾一区国产高清在线| 97中文字幕一区| 亚洲欧美另类少妇精品| 中文字幕av色| 亚洲高清在线| 成年人性爱日韩| 69一区二区| 51一区二区三区| 东京成人一区| 日韩在线视频1234| 亚洲老熟妇xxx| 99久久久久久久久| 日韩乱伦影音先锋| 精品久久无码午夜福利| 国产91精品在线免费| 人人操人人精品影片| 色婷婷婷五月天激情四射| 亚洲天堂综合AV| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 日韩AV一区二区三区三州三州| 日本性爱不卡视频| 岛国网址国产 | 神马麻豆福利院| 亚洲中文字幕久久无码精品| 欧美黑人168页欧美黑人167| 91碰碰| 日日夜夜草草草| 日本少妇va7777| 丰满少妇一区二区三区专区| 国产欧美第五页| www.人人cao| 久久精品高清AV| 婷婷在线视频在线观看| 91av熟女人妻| 高清国产无码av| 婷婷色综合欧美日韩| 精品夜夜澡人妻无码AV| 日1区2区3区2020| 欧美色图99| 激情情色五月天| 久久9精品网站| 欧美综合网1| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久热99999| 精品一国2| 女上位精品在线| 91黑丝操| 国产精品久久久午夜夜伦鲁鲁| 久久久九精品| 超碰综合97在线| 熟妇一区,二区,三区。| 人妖欧美一区二区| 97国产精品一区| 操人妻视频| J?P?NESEHD熟女熟妇伦| 久操操AV电影| 美國A片| 国产一级αv免费看片| 久久‘黄片视频| 久久鲁干| 久久久人体| 四虎 精品 WWW| 国产精品对白内射| 国产精品久久久九九九| 上床啊啊啊| 久久性爱视频99| 中文字幕人成乱码熟女香港| 婷婷视频在线免费观看| 男人天堂婷婷五月天校园春色| 啊啊啊啊视频免费| 97视频900| 久久机热| 欧美精品成人一区二区在线观看 | 天天操妹子| 欧美一级在线观看成人| 亚洲国产精品有声| 色色五月婷| 亚洲中文字幕有码视频一区二区三区| 蜜桃久久久久久久久久久久| 亚洲美女精品九九视频| 欧美日产国产在线成人第一区| 丁香色色网| 精品国产污一区二区三区| AV99热18这里只有精品| 亚洲图片91| 一区不卡在线观看av| 午夜男女爽爽爽在线视频| 嗯嗯嗯不要不要免费视频| 热久日综合| 日韩99999| 亚洲色系另类精品国产| 亚洲激情网一二三四区| 97国产精品一区| 先锋激情∨在线视频播放| 夜夜一区二区| 超碰久草| 国产传媒操逼视频| 富二代亚洲精品99| 乱人乱色一区二区三区免费| 国产精品久久久久久无码红治院| 亚洲另类久操网| 69丨亚洲丨精品丨入口免费播放| 国产黄色视频久久| 日韩亚洲美州欧洲综三区一品在线| 亚洲色性情三级| 9久久久久久| 国产成人手机视频激情| 中文字幕少妇色| 国产精品久久久久久久久久久久久久吹| 天天躁日日躁xxxxx| 一区二区激情国产熟女| 超碰天天去日穴| 欧日a| 97在线欧洲| 中文字幕在线免费观看 | 秋霞视频一区二区| 亚洲drav色图| 国内精品久久久久影院亚洲| 欲色啪| 国产一区二区三区久久久精品| 99久久这里只有精品| 91操熟女视频| 亚洲激情av| 久久久国产护士丝袜美腿一| 国产黄色 A 片免费看| 中文字幕乱碼在线| 亚洲第一页第二页激情| 国内黄色精品| 18禁免费视频| 国产精品视频在线播放| 日本色色色视频| A男人的天堂| 亚洲性爱电影| 麻豆国产成人精品| 啪啪AV导航| 绑缚麻绳人妻寝取完整版| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 国产精品一级毛片不卡视| 九九热视频这里只有精品| 国产免费黄色一级大片| 97色97好| 琪琪精品免费一区二区三区| 亚洲国产中文字幕| 亚洲欧洲网站免费观看| 日韩欧视频| 亚洲男人天堂2019| 思思视频免费看网站| 天天天肏屄欧美| 天天视频网站黄| 亚洲色图国产另类| 日本一区二区不卡精品| av网站在线看| 色踪合AV| 人妻激情偷乱视频一区二区三区| 婷婷av在线中文字幕| 国产25页| 99热在线观看| 国内毛片欧美香蕉精品| 久久99草| 亚洲欧洲综合视频在线| 1769成人国产精品视频| 97色色,97综合| 99色在线观看| 欧美性爱综合,免费| 男人的天堂2000| 九九热AV| 最新亚洲人成网站在线影院| 97精品一区二区视频在线观看| 综合五月天| 日韩免费三级黄片电影| 超碰在线免费一区二区三区| 欧洲与亚洲欧美精品中文字幕| 中文字幕狠狠玩| 久久久久99精品成人片蜜臀| 神马影院午夜福利久久久| 熟女突然公开看18禁影片 | 综合网亚洲1| 久jiu久神马影院| 91三级理论片播放器| 欧在线一二区| 嫩草 我啊~嗯~在线| 二色av| 欧美人人操人人插| 超碰久超碰久| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 久久久久成人网| 亚洲男人天堂网久久| 欧美一级久久久久久久大片动画 | 99国内熟女露脸视频| 色五月大香蕉| 亚洲黄网在哪免费看| 国产女同在线观看视频| 97在线亚洲| 中文字幕av久久爽Av| 日本污ww视频网站| 日韩精品一区二区日韩| 日本成人在线不卡一区二区三区| 欧美综合传媒| 综合网欧| 亚洲欧洲视频小说在线观看| 婷婷中文字幕| www…国产操逼| 日韩色欲久久一二三四区| 不卡日本一区二区| 国产97在线 | 亚洲| av草草在线电影| 先锋音影AV| 欧美精品丝袜久久久中文字幕| 超碰99在线| 操逼操网| 亚洲AV无码国产精品久久久久| 在线观看不卡一区二区三区| 在线a亚洲视频播放在线| 全国男人天堂网| 亚洲精品97中文字幕| 操学生天天| 日韩美女久久一区二区三区| 久热精品色情| 60秒试看最爽10分钟网站| 亚洲国产第一页综合视频| 亚洲高清无码AAA久久久精品| 日本成人A片网站| 视频国产成人精品日本亚洲18| 日本一二区不卡| 国产sv美女内射| 男人的天堂kva| WWW美腿丝袜香蕉中文| 亚洲999综合| 国产原创剧情在线丝袜| 久久二| 欧美性爱精品一区二区| 乱伦AVxx| 亚洲欧美成人在线| 激情99| 曰韩无码777| 无码高清专| 亚洲九月丁香| 综合久久中文字幕综合日韩精品| 欧美黄色大香蕉一区二区| 国产女性无套 免费观看| 在线人人人人人人精品超 | 91中出在线| 日韩欧美久久婷婷网站| 欧美日韩久久精品爱爱| 久操97| 成人午夜高潮av猛片| 国产一区二区二区按摩精品啪视频| 精品熟女呻吟久久91| 熟女乱3伦999| 欧美网站免费| 婷婷色网| 国产视频97| 日韩有码专区| 国产婷婷综合在线观看| 中国一级操逼视频| 大屁股xxxxx| 婷婷在线播放| 欧美精品三区| 九九九999久久久网站| 亚洲男人天堂av| 婷婷干黄色| AV无码久久久精品| 国产伊人自拍| 麻豆a'v电影| 亚州综合色| 国产乱伦性爱区| 69精品久久久久中文字幕| 91黑丝在线播放| 国产成人主播| 久久超碰com| 综合av社区| 伊人久操| 欧美第38页| 国产suv精品一区二六| 婷婷丁香激情| 欧美疯狂做爰xxxx| 久久伊人青青草| 亚洲天堂电影网99999| 性色AV网站| 国产在线视视频有精品| 久久久久久久国产| 日韩一级欧美一级国产一级台湾| 青青操狠狠撩| 区二区亚洲婷| 综合久久少妇中文字幕| 日韩中文字幕二区| 伊人久久亚洲中文字幕不卡| 欧美色图综合网| av日韩国产一区二区| 97WW精品| 九九久久国产精品怡红院| 亚洲高清无毛一区二区| 男人亚洲91首页在线| 人妻激情在线视频| 亚洲精品一区二区精品| 偷拍欧美综合| 最新AV在线| 国产亚洲日本精品在线| 久久精品视频在线观看| 欧美精品三级黄片| 9久综合网| 综合情欲网| 九九干| 亚洲瓯美色图| 美女天天干| 欧美三级不卡| 天天射夜夜操| 91 刺激在线| 熟女高潮精品一区二区| 久久亚洲AV无码专区国产精品| 不卡码视频| 色九久| 99日韩| 欧美人妻一区二区| 操逼网免费无码视频| 亚洲视频二区 | 中国操逼无码| 亚洲欧美天堂在线| A级在线视频| 偷拍欧美综合| 成人a v在线播放免费| 91精品国产综合久久久蜜臀| 久久久亚洲熟妇熟女| 日本福利社| 99中文字幕| 懂色AV一区二区三区| 一区二区三| 欧美色偷拍| 成·人免费午夜在线观看| 欧美久久九九| 成人无码在线视频网站| 欧美97视频| 欧美亚洲日本视频久久久| 四虎在线免费视频| 日本久久天堂| 日产操逼| 好看的久久不射无码影视影院| 四虎影视永久在线免费| 色香综合天天影视综合| 狠狠色婷婷7777久| 精品国产一区探花在线观看| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 精品欧美А∨无码黑人大荫蒂| 日本东京热大香蕉a片| 久久精品国产亚洲AV嘿嘿| 狠狠干妹子| 日韩人妻少妇 一区二区三区| 搡老女人老熟女91老熟女综合网| 日本精品人妻少妇一区二区| 老司机射| 校园春色综合网| 久久久久久波多野吉衣高潮| 国产版a级片直播在线| 超碰美国| 91黑丝美女| 日本一级性爱| 蜜臀一区二区三区在线| 九九九九97| 欧美夜夜狠| 亚洲图片色图欧美另类| 欧美黑人日韩少妇色情| 操人妻丝袜高跟| 中文字幕亚洲永久精品| 欧美性性性| 99热免费精品| 久热99| 熟妇xxxxx性春色| 五十路熟女,国产欧美精品区一区二区三区 | 久艹日日日| 日日日骚女人精品| 九九热精品免费视频| 成人精品一区二区91毛片不卡| 色97欧美| 裸体1区| 欧美日韩丝袜| www国产天美久久久| 超碰97护士| 欧美成人国产精品| 人妻在线臀日韩| 国模吧 一区二区三区| 日韩免费av片高清无码| 啊啊啊啊好疼| 天天操天天7| 开心六月色| 九九热最新| 欧美麻豆成人同性GⅤ在线| 一区二区三区美女超清| 992视频一区| 国产精品粉嫩福利在线| 亚洲自拍一区夜夜操| 亚洲日韩AV视色| 色小视频蜜乳| 国产午夜激片Av毛片不卡| 2025年A片视频精品| 国产传媒一区二区三区| 蜜臀Av一区二区三区| 黑人精品久久97| 国产a级精品| 99re6久热只有精品6在线直播| 伊人久久大香大香线蕉中文| 岛国黄色大片网站| 久久一区二区高清免费| 亚洲伊人a线观看视频| 黄色视频高清无码网站| 神马久久久久久| 久久国产精品m码| 9久9久| www久久精品| 日产成人久久| 伊人9| 欧美综合色综合| 欧美色图在线视频少妇| 夜夜做夜夜爽精品视频| 精品久操| 韩日欧亚a级| 久久久天堂| 男人天堂无码| 97ai亚洲| 亚洲国产精品无石码久久 | 国产精品视频在线播放| 国产青青美女玩逼视频| 风骚少妇视频中文字幕| 亚洲综合射| 综合性视频99| 91女色| 天久久久噜噜噜久久国产精品爽爽| 91亚洲网站| 偷拍盗拍亚洲色图图片| 农村女一级毛卡片| 国内毛片热久久思思热| 人人操人人插人人摸人人干| 人、人、摸,人、人、草| 自拍大香蕉乱插| 色婷婷导航| 碰碰在线视频| 日韩激情视频| 色777999综合| 欧美亚洲中文| 青草草免费网站av| 天天看,天天做| 亚洲精品一区中文字幕乱码| 天堂资源欧美| 亚洲日本天堂| 亚洲熟女av中文字幕| 小说区 图片区色 综合区| 91人妻精华帖| 在线另类| 操逼精品视频| 91欧美情色| 亚洲自拍偷拍视频在线| 男人a天堂手机在线版| 99日韩| 国产精品制服丝袜中文字幕日韩一区二区三区| 国产亚洲色婷婷99精品91| 国产熟女高潮一区二区三区| 亚洲欧洲激情卡通另类文学四射小说网站| 日本一区二区三区免费观看| 久操不卡视频| 青青草吊丝| 日韩人妻精品| 污色区网站| 日本精品高清一二区一本到| 女人天堂AV五区在线| 中文字幕AV片| 91夜色| 国产精品熟女丝袜一区二区| 亚洲中文字幕有码视频一区二区三区| 国产一| 色综合一本| 色小视频蜜乳| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 国产综合永久精品日韩鬼片| av在线人气| 亚洲做性| 欧美综合娱乐久久| 日韩精彩免费| 超碰99在线| 操逼操逼逼操操逼91| 中文字幕91综合| 深夜激情 | 久久久性| 射 色综合| 1204人成网站色www| 五十路六十路七十路熟婆| 狠狠操狠狠插| 亚洲人综合| 日本一区二区三区午夜观看| 热久久91婷婷| 性色aV一区二区三区噜噜| 国产97视频免费观看| 蜜臀AV成人精品蜜臀AV久久| 色欧洲| 99啪啪视频| 视频黄站| 亚洲二区精品在线观看| 日日夜夜模| 日本一区视频在线观看| 熟女中出视频| 亚洲无码 国产无码| 国产精品一二三区福利| 中文字幕丝袜| 99无码视频| 97ai亚洲| 五月天综合| 麻豆熟妇乱妇熟色A片在线看| 最新啪啪视频| 精品熟妇视频一区二区| 日韩人妻免费精品| 国产AV线| 日本肉体xxxx裸交| 熟妇人妻精品一区二区| 伊人久久88国产女| …亚洲黄色厕厕女女在线播…| www.色五月| 伊色久人大在线| 五月天激情网图片| 91啪啪| 久久综合18p| 88xx成人精品视频| 国产精品电影推荐| 精品在线观看视频在线| 成人夜夜| 日韩草久视频| 狠狠操,使劲操| 美欧老女人97| 成人5码视频| 97超碰影音| 色噜噜狠狠色综无码久久合欧美| 97国产超碰| 日本不卡三级网在线播放| 亚洲一区日韩精品| 另类专区加勒比| 午夜男人一级A片7777| 男人综合网| www.操| 中日亚韩免费视频| 夜夜骑日日| 青青草九九九九九| 欧美 日韩 亚洲 春色| 97欧美色| 欧洲综合视频| 精品亚洲黄色片 国产精品导航一区二区| 九九亚洲色在线观看| 国内外色色色色色成人视频| 日韩免费在线观看不卡| 91 国产丝袜在线播放-百度| 啊啊啊好爽快点啊啊啊嗯嗯| 亚欧免费| 国产日韩怡红院| 91jk色拍| 久久激情视频| 正在播放国产精品一区| 中文不卡视频| 91精品国久久久久久无码| 91色色色| 亚欧免费| 日韩少妇无码| 久草久日| 2019天天操天天爽天天拍| 国产一区二区三区精品观看啪| 亚洲91在线| 久久成人午夜狠狠| 国产天天骚| 国产精品无码AV网站| 欧州一区二区三区四区| 久热精品在线| 精品九九九九九九九九九| 激情六月天| 日本天天操| 精品国产一区探花在线观看| 亚洲色天堂九9| 口爆欧美91| 五月婷婷大香蕉| 国产操偷| 国产久久成人| 亚洲色婷婷久久91| 丝袜综合网| 亚州精品人妻一二三区| 丝袜av一区二区三区| 国产少妇与亚洲av| 99啪啪| A片 AV一级在线播放观看免费| 在线播放成人高清免费视频| 欧美啪啪色吧在线| 床戏久久久av一区二区麻豆| 97网址97| 欧美91网站| 久久97资源 网| 久久国产精品91| 99性爱| 91久久久久久久| 日本高清有码网址视频| 精品一区二区成人| 亚欧性爱无码| 亚洲无码太久| 老外又粗又长一晚做五次| 日日夜夜精品视频| 99re在线| 东京热男人的天堂| 97国产精品视频| 啊啊啊啊操死我| 亚洲欧美黄| 亚洲在线a| 天天92av| 超碰95| 翔田千里AV无码秘 三区| 97在线免费看视频| 99999精品| 亚洲欧美色图| 91操操操操| 亚洲黄片免费在线播放| 欧美综合国产精品久久丁香| 天堂69亚洲精品中文字| av在线播放国产一区| 午夜视频久久久久一区| 日韩人妻制服丝袜av| 中文字幕亚洲永久精品| 狠狠色噜噜狠狠狠狠狠色综合久久| 激情国产乱伦Av| 亚洲黄色a级片| 免费综合亚洲中文| 日本天天色| 花野真衣| 操操操操网黑人| 日日干男人的天堂| 97资源站久久| 男人的天堂久久| 射久久| 国产婷婷综合在线观看| 影视综合无码少妇| 一级A片女人高潮叫床| 青草av在线| 97色冈| 人妻 制服 日韩 中文 在线| 岛国不卡超碰护士AV在线播放| 亚洲精品久久久久久| 久久αⅴ| 国产av激情无码久久天堂| 3d成人精品一区二区| 国产亚洲国产超碰| 青青草在线成人视频| 欧美一区二区成人一卡| 欧洲一区二区| 人人弄人人摸| 8050无码八戒| 99热色这里只有精品| 男人网站婷婷| 中文字幕丝袜| 亚洲图片日本AⅤ欧美在线| 99热只有这里有精品| 蜜臀久久99精品久久久老,,| 狠狠色一区二区中文字幕| 蜜桃网熟妇| 国产精品一区二区a| 国产精品一区二区三区,亚洲综合| 人人爱操| 欧美A√综合网| 一区二区三区看视频| 1级午夜影院费免区| 婷婷五月天色色| 欧美午夜色妇色鬼| 97亚洲综合在线| 亚洲A曰本VA欧美VA视频| 思思热免费视频观看| 中文字幕亚洲欧美在线不卡| 欧美第五页| 91搞逼视频| 精品国产一区二区三区av在线资源| 成人五月天色网| 国产97在线视频| 亚洲操逼无码| 熟女中出视频| 久久超碰网| 日韩免费性爱视频在线观看| 人妻少妇三级| 国产毛片毛片4p懂色| 日本肉体xxxx裸交| 在线一区| 久久久精品中文字幕爱豆| 成人欧美一区二区三区黑人一| 天天综合网~91综合网| 大香蕉乱级| 精品妇女一区二区三区| 91美女视频直播| 凹凸久久人人| 欧美视频第二页| 老熟妇乱轮| 久久久人体| 天天操妹子| 入口操逼网站| 91成人久久| 可以在线观看的黄色网址| 9999伦理视频| 精品一区二区三区国产| 久久黄黄| 日本色日夜干| 日本三级韩三级99久久| 亚洲a色| 99热婷婷| 久久精品超碰| 中文字幕成人| AV中文字幕三四五| 色情综合| 南澳成人一级片在线播放| 欧美日韩性爱精品| 国产精品对白自产拍| 久精品无码av一区二免费国产在线观看 | 欧美在线官网| 青青草国产欧美非洲黑人| 丁香六月天| 亚洲精品九九九| 好淫网一二三视区| 人人模人人看| 五月天综合网| 精品中文字幕第一页| 久久精品中文| 国产1769在线| 人妻熟女一区二区三区视频| 大香蕉综合网| 青青在线视频日韩欧美| 69AV女优男人的天堂| 免费中文综合精品| 男人 天堂 日 亚洲| h4610国产人妻| 9九九国产| 婷婷久久五月天| 一区二区三| 欧美熟女激情| 先锋色眉乱伦资源| 天操天操夜操夜月月年年操操 | 欧美日韩日产免费网站看| 超碰538| 久久99人妖视频国产| 人人操人人操人妻人| 看日韩美女二区三区免费操逼视频| 精品黄色电影| 欧美日韩大陆黑人少妇99| 一级特级aaaa毛片免费观看| 亚州色图欧美色图| 偷窥自拍亚洲色图| 性爱视频无打码在线观看| 日本黄色XXX| 久久久一区二区三区四曲免费听 | 人人操人人操人妻人| 狠狠中文字幕| 思思热国产在线视频| www.久久超碰| 91最新综合| 无码乱人伦中文视频| 天天综合色图| 人妻爽爽啪视频| 中文字幕在线免费观看视频| 日韩综合无码一区久久92| 嗯嗯啊啊好大好爽| 黄污污污污| 18禁中文字幕| 色妺妺AⅤ| 天天摸夜夜操视频| 亚洲第一综合| 亚欧性爱无码| 天堂性色| 97精品中文字幕| 久久国产精品一级二级三级| 欧美日韩操逼动图| 91操熟女| 99热这里只有精品1| 日本不卡码黄色 | 欧美大香蕉久| 欧美春色| 亚洲综合夜色| 久久久久久久九九九九九九| www.人人cao| 国产探花日韩援交| 精品国产乱码久久久| 欧洲精品久久| 亚洲熟女乱色| 99久视频| 全免费a敌肛交毛片免费| 国产老太乱伦一区| 校园春色美腿丝袜 | 日本超碰在线国产一区| 久久精品国产亚洲AV片多多 | 玖玖无码超碰| www.男人天堂| 伊人久久亚洲中文字幕| 狠狠操狠狠爱| 亚洲一区二区三区四区视频| 亚洲成aⅴ人片不卡无码| 伊人骚琪琪亚洲天堂网站| 97超碰欧美手机在线| 干B| 色诱中文字幕| 在线有码中文字幕| 久久久久久久久久久久久久久久9| 日韩美女久久一区二区三区| 欧美成人黄网色网站| 日本爽爽爽爽爽爽免费视频| 国产精品久久久亚洲第一牛牛_在线观看| silk lablo在线观看一区二区| 精品国产一区二区久久| 3571色综合一区二区二区| 高清无码国产亚洲| 久久婷婷综合国际产色怕| 亚洲三区视频| a一区二区三区乱码在线| 亚洲影院无码在线| 国产精品ww久久| 欧美97爱| 久久日本熟妇熟色一区| 99re99| 国语少妇精| 久久99国产精品| 伊人九九九| 亚洲自拍97| 97精| 欧洲特黄毛片免费看欧洲毛片| 久久91| 亚洲丝袜诱惑| 青娱乐国产剧情av一区| 翔田千里A片一区二区| 色吧 综合| 国产精品不卡一区二区三区av| 国产午夜精品理论片a大结局| 亚洲国产美女久久久久 | 一区,二区,三区网站| 成 人 影视 一区 二区 三区 四区 | 无码137片内射在线影院| TS人妖另类精品视频系列| 日韩综合无码一区久久92| A 天堂| 国产三级在线现体验区| 国产乱伦亚洲| 午夜福利视频在线一区| 高清在线偷拍自拍视频| 日韩啪啪啪啪啪| 美女在线H91| 亚洲美女色图| 亚洲s色图| 91 综合网| 毛片久久| 人人妻人射| 国产精品成人无码av| 2020中文字幕| 无码视频一区二区| 亚洲麻豆18发?| 啊啊啊啊好疼| a片久久久久久久久久久久 | 裸模AV女优| av线电影| 91中文字幕制服丝袜免费视频| 啊啊啊好多水| 欧美日韩另类在线| 全球成人中文在线| 97香焦色区| 日韩精品人妻中文字有码在线| 自拍啪啪视频| 亚洲婷婷综合网| 欧美激情中文字幕另类小说| 香蕉在线一区二区三区| 白丝少妇一区二区| 久久亚洲一区女同性恋中文字幕 | 综合色区偷拍| 操逼日批| 婷婷五月天成人网| 99RE在线视频精品,这里只有精品| 色婷婷一区二区三区久久午夜成人不| 丰满人妻一区二区三区| 久久精品毛片免费不卡| 综合五月天| 97视频900| 外站AV在线| 国产成人手机视频激情| 天天综合~91入口| 98超碰日本| 天天射夜夜操| 性爱av在线免费观看| 日本一片一区| 超碰地址久久| 日韩av一级黄片| 国产夜夜操| 欧美日综合| 日韩中文字幕人妻视频| 精品久久久九九九孕妇| 热久久无毒不卡| 亚洲av国产av综合av卡| 色五月婷婷网| 九草九九九| 无码高清操逼网址| 日日日日日| 91精品少妇搡搡搡| 日本1区2区不卡视频| 深夜操逼网| 91模特在线观看| 亚洲91在线播放影院| 大香蕉在线视频15| 日日97| 日韩黄色一区二区三区| 国产精品视频| 精品日韩人妻视频| 亚洲丝袜二区| 91丝袜人妻| 久久久免费一级黄片| 青青草乱入乱欲视频在线观看| 无码人妻精品酒店| 伊人久久婷婷| 亚洲欧美天| 家庭乱伦网站国产| 97欧美日韩中文| 欧美18 在线观看| 素人美腿视频网站| 精品对白久久不卡| 97人人干| 天堂性色| 五月婷在线| 干B网| 婷婷色色五月天| 亚洲另类色综合网站| 天堂中文日本在线观看| 五毛骚逼极品美女怕怕| 手机在线中文字幕国产 | 精品四五区| 97免费在线| 殴美牲| 亚洲超碰97| 天天操天天射青青草| 久操视频在线观看| 天综合网| 欧差乱伦二三| 91色噜噜狠狠| 操逼无码操逼| 传媒免费一区二区三区| 日韩精品国产一区二区| 亚洲视频一二区| 欧亚性爱在线视频| 嗯嗯啊啊视频一区二区三区| 免费的黄片有限公司| 美女黑人91神马| 蜜乳AV一区二区三区四| 久热99999| 色色丁香| 日本一级真人黄色性爱视频| 看黑人AV不卡| 自怕偷自怕亚洲精品| 欧洲精品久久| 国产一区二区三区影片| 这里只有精品97| 久久欧美1卡2卡3| 日本人妻中文字幕| 1000午夜黄色| 久久久久国产无av| 高清视频一区| 日本97久久久精品| 国产精品久久久久亚洲av| 偷拍亚洲情色| 青草视频在线看看看看看看看看看| 男人天堂2017| 伊人精品视频| 亚洲精品日韩国产欧美| 91成人无码| 久久精品国产99国产精品亚洲| 亚洲九月丁香| 丰满人妻一区二区三区| 欧美色天堂网在线视频| 日韩去日本高清在| 97超碰精品| 在线亚洲丝袜视频网站| 色情五月综合婷婷| 国产一区二区三区高清视频| 欧美熟女丝袜| 五月天婷婷欧美三区| 影音先锋日本一区二区| 安微少妇操BBB| 中文字幕视频一区视频二区| 中文字幕aⅴ在线视频| 少妇久久久久久久久| 狠狠亚洲| 色欧美天天| 亚洲成人无码影院| 欧美色涩| 国产和美国毛片| 麻豆天美国美国产| 欧美日本国产日韩激情视频| 亚洲日韩电影| 吊色| 久久一二三级一一一| 色爱综合网| 人妻献身系列第54部| 日韩九九九| 亚洲色情在线影视| 高清不卡视频| 亚洲欧美中文日韩视频中国语| 综合久久久久久久久91| 99久久久| 在线小视频| 日本女厕偷拍| 丁香五月AV| a级成人毛片免费视频高清| 粉嫩av平台| 九九九九九精品视频| 国产乱青青草久久| 日少妇亚洲版| 一二三四日本视频高清| 中文字幕av亚洲在线| 久久无码一区二区二三区性色| 一本色道久久综合精品婷婷| 天天躁狠狠躁av| 国产嫩草精品A88AV在线| 99热综合| 免费一级毛片在线视频观看| 尤物网址| 精品久久无码午夜福利| 亚洲毛片基地专区| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 亚洲成人日韩小说| 97精品一区二区视频| 天天日天天看| 另类欧美综合| 亚欧美色图| 亚洲丰满很很操| 精品无码人妻一区二区免费蜜桃| 97硬碰| 九九九久千久久激情蜜桃在线看| 一区二区三区精品黑丝白丝酒店对鸡 | 天天狠| 人妻少妇精品一区二区三区| 免费黄色片子| 一区在线观看中文字幕| 精品国产一级久久| jizzjizz欧美| 欧美性爱www免费版| 国产AV色黄看到爽| 亚洲h片在线免费观看| 草莓精品视频在线免费观看| 免费αV在线视频| 男人女人18禁片免费看网站| 富女玩鸭子一级毛片| 成人免费性爱视视| 人妻色偷色噜| 青娱乐福利99| 中文字幕日韩电影人妻| 欧美性生活男人的天堂| 在线观看亚洲成人精品| 97超碰磁| 天天躁日日躁AAAAXXXX国产| 久久透逼视频| 激情抓乳插进去啪啪啪日韩| 亚洲国产精品9999在线观看| 国产精品美女在线一区| 91人妻中文| 亚洲欧美国产其他二区| 亚洲欧美日韩综合在线尤物 | 可以免费观看的av| 精品丰满人妻一区二区三区免费观| 超碰人人妻| 冬京热男人的天堂| 久久久久久久78| 综合久久99亚洲人妻中文在线| 色哟哟av网址| 欧美综合中文| 午夜精品久久99蜜桃的功能章节| 人人操欧美风骚| 黄片免费视频2019| 国产精品无码av在线| 色牛牛AV| 精品少妇后入一区二区三区四区人妻巨乳| 麻豆天美电影一区二区| 天美一二三在线观看Av| 国产性爱欧美性爱在线| 天美传媒精品久久视频| 大香蕉综合网| 2017人人操,人人摸| 国产一区在线免费播放| 男人夜色天堂ss| 91欧美成人色站| 国产偷人妻精品一区二区在线| 国产亚洲99久久精品熟| 久久精品人人做人人看| 亚洲国产精品成人无码久久久| 日本 欧美 国产一区| 亚洲综合97中文网| 日韩啪啪啪视频| 亚洲干B| 激情五月天中文字幕色| 懂色av色欲av蜜臀av| 色色婷| 鸥美插入视频| 春色综合免费| 高清有码一区二区| 亚洲第一无码播放立川理惠| 中文高清一区二区的| 青草视频人妻在线观看|