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

ARTICLE DETAIL

資訊詳情

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

MATLAB串口調(diào)試助手從零實現(xiàn):串口通信與App Designer實戰(zhàn)

MATLAB串口調(diào)試助手從零實現(xiàn):串口通信與App Designer實戰(zhàn) 簡介本資源是一套基于MATLAB開發(fā)的串口調(diào)試助手完整源碼及配套實踐教程面向嵌入式初學(xué)者、自動化專業(yè)學(xué)生及MATLAB工程實踐者旨在解決硬件設(shè)備如Arduino、樹莓派與PC端串口通信調(diào)試門檻高、GUI開發(fā)復(fù)雜等實際問題。壓縮包共8個文件7.21MB包含核心MATLAB源碼.m、GUI界面文件.fig、配置文件.ini、日志記錄.log、說明文檔.txt及可執(zhí)行程序.exe其中.m與.fig文件構(gòu)成可運行的圖形化調(diào)試界面支持波特率設(shè)置、數(shù)據(jù)收發(fā)、定時輪詢與錯誤處理等完整功能。已有1194人學(xué)習(xí)下載資源附帶詳細串口通信知識點解析涵蓋Serial對象創(chuàng)建、fopen/fwrite/fgets調(diào)用規(guī)范、GUIDE界面回調(diào)邏輯及timer定時讀取機制特別適合從零掌握MATLAB串口通信開發(fā)流程并可直接修改源碼適配不同硬件協(xié)議。1. MATLAB串口調(diào)試助手先搞清它能干什么做嵌入式、儀器控制、硬件調(diào)試的兄弟多半都有過這種經(jīng)歷手邊沒有趁手的串口工具要么打開SSCOM、XCOM這種老牌小軟件要么自己拿Python的pyserial臨時拼一個。但如果你恰好是MATLAB的重度用戶項目里已經(jīng)在用MATLAB做信號處理、數(shù)據(jù)分析和可視化那再開一個串口調(diào)試助手直接用MATLAB寫一套源代碼其實是很順理成章的事。我最初做這個項目就是為了在采集傳感器數(shù)據(jù)的同時直接在MATLAB里完成濾波、FFT分析和波形繪制省掉“串口工具導(dǎo)出文件 - 再導(dǎo)入MATLAB”這一步體驗完全不一樣。這套MATLAB串口調(diào)試助手本質(zhì)上是一個帶圖形界面的串口通信工具核心功能包括掃描可用串口、配置波特率/數(shù)據(jù)位/校驗位/停止位、打開關(guān)閉串口、實時接收數(shù)據(jù)并顯示、按幀解析數(shù)據(jù)、手動發(fā)送指令、自動發(fā)送、數(shù)據(jù)保存為文件、實時繪圖。聽起來和市面上現(xiàn)成的串口調(diào)試助手差不多但用MATLAB源碼實現(xiàn)的好處是你可以完全掌控協(xié)議解析邏輯能直接調(diào)用MATLAB強大的數(shù)值計算與繪圖工具箱還能把收到的數(shù)據(jù)立刻喂給算法模型去做處理。適合誰來參考如果你是學(xué)生、工程師正在做單片機/嵌入式項目或者需要控制程控電源、溫控器、下位機等串口設(shè)備同時對MATLAB有一定基礎(chǔ)那這篇內(nèi)容會很對胃口。即使你只是對串口通信原理感興趣也可以跟著源碼把機制弄清楚。我會從底層原理講到界面實現(xiàn)最后把調(diào)試中常見的坑翻出來逐個說明盡量讓你能照著代碼敲出一個能用的工具而不是給你一個只能看不能用的半成品。2. 串口通信核心參數(shù)與MATLAB串口對象配置2.1 串口通信的關(guān)鍵參數(shù)你到底在配什么串口通信UART/RS232/RS485之所以看起來簡單是因為它是一條“按位傳輸”的物理鏈路。發(fā)送方和接收方必須約定好“每個數(shù)據(jù)包的節(jié)奏”否則收到的就是一堆亂碼。這個節(jié)奏由四個基礎(chǔ)參數(shù)決定波特率、數(shù)據(jù)位、停止位、校驗位。波特率表示每秒傳輸多少個符號bit/s常見的有9600、115200、460800等。它決定了每一位的持續(xù)時間。發(fā)送方和接收方波特率必須一致差一點點都會導(dǎo)致采樣錯誤。比如你設(shè)9600設(shè)備設(shè)9600但兩邊晶振都有誤差長時間傳輸就會積累出幀偏移。數(shù)據(jù)位通常是8位代表一個數(shù)據(jù)字節(jié)也有7位用于ASCII通信。停止位是標識一個數(shù)據(jù)幀結(jié)束的電平持續(xù)時間常見的是1位或2位。校驗位用來做簡易差錯檢測可選None、Odd、Even?,F(xiàn)在的多數(shù)設(shè)備都是“8N1”也就是8個數(shù)據(jù)位、無校驗、1位停止位這個組合在MATLAB里配置最省事。除這四個參數(shù)之外還有一個容易被忽略的流控Flow Controlnone、hardware、software。單片機設(shè)備大多不用流控但如果你接的是老式調(diào)制解調(diào)器或某些儀器可能要用硬件流控RTS/CTS或軟件流控XON/XOFF。MATLAB的serialport對象支持配置FlowControl默認是none。在動手寫代碼前第一件事就是去查設(shè)備手冊確認這幾個參數(shù)。千萬別想當然我見過一個兄弟把儀器的停止位配錯折騰了整整一天最后發(fā)現(xiàn)就是一位之差。2.2 用serialport還是serial這是一個問題MATLAB里有兩套串口接口老版的serial屬于Instrument Control Toolbox的舊接口配合fopen/fread/fprintf使用以及新版推薦的serialport從R2019b起引入采用面向?qū)ο箫L(fēng)格配置和讀取都更簡潔。如果你還沒開始寫建議直接使用serialport不要再用serial。兩者的區(qū)別可以這樣理解serial是老式的“命令式”驅(qū)動需要先fopen打開用fread/fscanf讀數(shù)據(jù)用fwrite/fprintf寫數(shù)據(jù)用fclose關(guān)閉還要操心BufferSize、BytesAvailableFcn等屬性。而serialport則是“對象式”的創(chuàng)建對象時參數(shù)一次性寫入讀取用read寫入用write配置readAsync和callback函數(shù)也更容易還支持自動檢測設(shè)備斷開。從MATLAB R2021b開始官方已經(jīng)很少再推薦serial接口雖然它還能用但新功能都不往上面加了。如果你看到網(wǎng)上老教程還在用serial可以看但要清楚那是歷史遺留寫法。我現(xiàn)在的代碼模板是這樣創(chuàng)建serialport對象的% 創(chuàng)建串口對象 s serialport(COM3, 115200); % 配置數(shù)據(jù)位默認8可不寫 s.DataBits 8; % 校驗位可以是 none / odd / even s.Parity none; % 停止位可以是 1 / 1.5 / 2 s.StopBits 1; % 關(guān)閉流控 s.FlowControl none; % 設(shè)置讀取超時 s.Timeout 2;在創(chuàng)建對象時如果該串口已被其他程序占用MATLAB會直接報錯。這也是很多人遇到的第一個坑。后面我會專門說排查方法。2.3 數(shù)據(jù)讀取的三種方式以及回調(diào)函數(shù)怎么設(shè)計serialport對象讀取數(shù)據(jù)主要有三種方式阻塞讀取、輪詢讀取、異步回調(diào)讀取。阻塞讀取就是直接調(diào)用read或readline讀不夠指定字節(jié)數(shù)就一直等直到超時。這種方式適合在腳本里用比如測試時抓一幀數(shù)據(jù)。輪詢讀取是在循環(huán)里不斷查詢可讀字節(jié)數(shù)再手動read適合簡單的命令行腳本。異步回調(diào)讀取是最適合圖形界面GUI的方式它通過配置BytesAvailableFcnMode可以是byte或terminator和BytesAvailableFcnCount來觸發(fā)回調(diào)函數(shù)當串口緩沖區(qū)內(nèi)累積到指定字節(jié)數(shù)或收到指定結(jié)束符時MATLAB會自動調(diào)用回調(diào)函數(shù)處理數(shù)據(jù)。以接收“以換行符0x0A結(jié)尾的一幀數(shù)據(jù)”為例可以這樣配置s.BytesAvailableFcnMode terminator; s.Terminator LF; % 也可以寫成 char(10) s.BytesAvailableFcn onSerialData;回調(diào)函數(shù)onSerialData的簽名必須是兩個輸入?yún)?shù)function onSerialData(src, ~) % src是serialport對象 data readline(src); % 處理data disp(data); endreadline會一直讀到終止符包含終止符并返回文本行。如果是二進制幀則建議用byte模式設(shè)置ByteAvailableFcnCount等于一幀長度再用read讀取指定字節(jié)數(shù)。這兩種模式我在實際項目里都用過文本協(xié)議用terminator非常方便二進制協(xié)議用byte模式更穩(wěn)?;卣{(diào)函數(shù)的執(zhí)行頻率取決于數(shù)據(jù)量和數(shù)據(jù)處理速度如果處理太慢回調(diào)可能會錯過數(shù)據(jù)或者造成界面卡頓這點在繪圖時尤其明顯后面一起說。3. 源代碼實現(xiàn)從零搭建一個可用版本3.1 界面布局用App Designer快速搭一個能看的GUIMATLAB里做GUI有兩套主流方案老式GUIDE已不推薦和App Designer。App Designer從R2016a開始引入界面更現(xiàn)代代碼結(jié)構(gòu)更清晰強烈建議用它。這個串口調(diào)試助手的界面不需要花哨能實現(xiàn)功能為主。我建議這樣分區(qū)串口配置面板串口選擇下拉框、刷新按鈕、波特率下拉框、數(shù)據(jù)位/校驗位/停止位下拉框、打開/關(guān)閉串口按鈕。接收數(shù)據(jù)顯示區(qū)一個多行文本框TextArea用來顯示字符數(shù)據(jù)配合一個“清空顯示”按鈕。發(fā)送區(qū)域一個單行文本框輸入要發(fā)送的內(nèi)容一個“發(fā)送”按鈕一個發(fā)送模式選擇文本/HEX??蛇x區(qū)域一個“自動發(fā)送”復(fù)選框和間隔時間輸入框“保存數(shù)據(jù)”按鈕實時繪圖區(qū)域用UIAxes繪制。用App Designer創(chuàng)建后代碼會自動生成類的骨架。我們需要在startupFcn里掃描串口、填充下拉框。掃描串口可以直接用serialportlist函數(shù)function startupFcn(app) app.PortDropDown.Items serialportlist(available); app.BaudRateDropDown.Items [1200, 2400, 4800, 9600, 19200, 38400, 115200, 460800]; app.BaudRateDropDown.Value 115200; app.BaudRateDropDown.Items [1200,2400,4800,9600,19200,38400,115200,460800]; % 默認選擇115200 app.BaudRateDropDown.Value 115200; end注意一點serialportlist(available)返回的是當前未被占用的端口列表。如果你希望看到所有存在的端口不管是否被占用可以用serialportlist(all)。但打開時如果端口被占用還是會報錯所以用available更省心。界面布局還有個容易被忽略的點App Designer的UIAxes繪圖性能會比普通figure的axes慢一些因為底層使用了Canvas渲染。如果你對繪圖實時性要求極高可以用figureaxes的組合在回調(diào)里更新繪圖句柄。但作為串口調(diào)試助手UIAxes足夠用。后續(xù)如果發(fā)現(xiàn)繪圖卡頓再改也不遲。3.2 核心代碼打開/關(guān)閉串口與數(shù)據(jù)收發(fā)打開串口的邏輯是從下拉框讀取用戶選擇的端口號和參數(shù)創(chuàng)建serialport對象并配置回調(diào)。關(guān)閉串口則是delete對象并清空句柄同時把“關(guān)閉”按鈕狀態(tài)改回“打開”。我寫了一個類中的私有函數(shù)來處理function openSerial(app) if ~isempty(app.s) delete(app.s); app.s []; end port app.PortDropDown.Value; baud str2double(app.BaudRateDropDown.Value); dataBits str2double(app.DataBitsDropDown.Value); parity app.ParityDropDown.Value; % none/odd/even stopBits str2double(app.StopBitsDropDown.Value); try app.s serialport(port, baud); app.s.DataBits dataBits; app.s.Parity lower(parity); % 小寫 app.s.StopBits stopBits; app.s.Timeout 2; % 接收回調(diào) app.s.BytesAvailableFcnMode terminator; app.s.Terminator LF; app.s.BytesAvailableFcn app.onReceiveData; app.OpenButton.Text 關(guān)閉串口; app.StatusLabel.Text sprintf(已打開: %s %d, port, baud); catch ME app.StatusLabel.Text 打開失敗: ME.message; app.OpenButton.Text 打開串口; app.s []; end end這里我把回調(diào)綁定到app.onReceiveData意味著回調(diào)函數(shù)是App類的方法。App Designer中如果方法用“private”訪問級別就可以在屬性中用app.func語法引用。回調(diào)里需要讀取數(shù)據(jù)并追加到TextArea同時做HEX/文本顯示轉(zhuǎn)換。接收文本數(shù)據(jù)function onReceiveData(app, src, ~) % 因為設(shè)定了terminator模式可以用readline讀取一行 line readline(src); uploadTime datetime(now, Format, HH:mm:ss.SSS); % 在文本框中追加顯示 displayText sprintf([%s] %s, uploadTime, line); app.ReceiveTextArea.Value char(strcat(string(app.ReceiveTextArea.Value), ... string(newline), string(displayText))); % 把最新數(shù)據(jù)存起來供后續(xù)解析或保存 app.lastLine char(line); end如果你收到的是二進制幀則不建議用readline而是設(shè)成byte模式app.s.BytesAvailableFcnMode byte; app.s.BytesAvailableFcnCount frameLen; % 已知幀長 app.s.BytesAvailableFcn app.onReceiveBinary;然后在回調(diào)里用read固定字節(jié)數(shù)function onReceiveBinary(app, src, ~) data read(src, app.frameLen, uint8); % 處理 data end發(fā)送數(shù)據(jù)比較簡單發(fā)送文本和HEX兩種模式。文本模式直接writeHEX模式需要先把用戶輸入的十六進制字符串轉(zhuǎn)成字節(jié)數(shù)組function sendData(app, str, isHex) if isempty(app.s) return; end if isHex % 去除空格 cleanStr strrep(str, , ); if mod(length(cleanStr), 2) ~ 0 uialert(app.UIFigure, HEX字符串長度必須為偶數(shù), 輸入錯誤); return; end bytes uint8(hex2dec(reshape(cleanStr, 2, []))); write(app.s, bytes, uint8); else write(app.s, str, char); end endHEX發(fā)送有一個細節(jié)如果用戶輸入AA BB CC你應(yīng)該先去掉所有空格再判斷字符個數(shù)是否為偶數(shù)然后每兩個字符轉(zhuǎn)一個字節(jié)。使用reshape(cleanStr, 2, [])可以將長度為偶數(shù)的字符數(shù)組變成N行2列再用hex2dec轉(zhuǎn)換為十進制值最后轉(zhuǎn)uint8。注意hex2dec每行最多能轉(zhuǎn)換的位數(shù)有限但對于一幀幾十字節(jié)的數(shù)據(jù)沒問題。如果想批量發(fā)送也可以改用循環(huán)。3.3 數(shù)據(jù)解析如何應(yīng)對可變長或不規(guī)則的幀很多設(shè)備發(fā)送的并不是一行一行的文本而是一組十六進制字節(jié)比如幀頭0xAA、幀頭0x55、命令字、數(shù)據(jù)長度、數(shù)據(jù)、校驗和、幀尾0x0A。如果只按行接收就不能正確處理。這里我推薦兩個方法基于“幀長固定”的解析通過BytesAvailableFcnCount 幀長每次回調(diào)讀取固定字節(jié)數(shù)然后解析。適合所有幀長度一致的情況比如有些模塊每次返回8字節(jié)狀態(tài)幀?;趲^幀尾的緩沖解析在terminator模式下無法處理得改成“byte”模式每次讀取所有可用字節(jié)然后放入一個持久化緩沖數(shù)組中在緩沖區(qū)內(nèi)查找?guī)^幀尾并提取完整幀。這種方式更通用。我實際用的解析函數(shù)大概是這樣偽代碼邏輯function parseBinaryFrame(app, bytes) % 將新數(shù)據(jù)追加到內(nèi)部緩沖區(qū) app.buffer [app.buffer, bytes]; while true startIdx find(app.buffer app.frameHeader, 1); if isempty(startIdx) app.buffer []; % 沒有幀頭則清空 break; end if length(app.buffer) startIdx 2 break; % 長度字段還沒收全 end dataLen app.buffer(startIdx 2); frameLen 4 dataLen 1; % 假設(shè)幀頭(2)長度(1)數(shù)據(jù)(dataLen)校驗(1)幀尾(1) if length(app.buffer) startIdx frameLen - 1 break; % 等待完整幀 end frame app.buffer(startIdx:startIdx frameLen - 1); if frame(end) app.frameTail % 校驗和驗證假設(shè)校驗和為除幀尾外所有字節(jié)的和的低8位 checksum mod(sum(frame(1:end-2)), 256); if checksum frame(end-1) % 解析成功提取數(shù)據(jù)部分 parsedData frame(4:end-2); % 更新界面調(diào)用上位數(shù)據(jù)處理函數(shù) app.parseData(parsedData); else disp(校驗和錯誤); end end % 緩沖區(qū)向前移動 app.buffer app.buffer(startIdxframeLen:end); end end這里只是一個簡化版寫法真實設(shè)備可能還有“數(shù)據(jù)小端/大端”的問題需要你用typecast函數(shù)轉(zhuǎn)換。比如收到兩個字節(jié)表示一個int16如果設(shè)備是大端模式那就需要先swapbytes再typecast為int16。這些細節(jié)建議在解析函數(shù)里專門做一層“字節(jié)序轉(zhuǎn)換”不要散落在主流程里。3.4 數(shù)據(jù)保存與實時繪圖把接收到的數(shù)據(jù)記錄到文件最簡單的方式是用fopen/fprintf在回調(diào)里逐行寫入。但如果回調(diào)頻率很高建議累積到一定數(shù)量再批量寫入避免頻繁打開關(guān)閉文件。通常做法是打開串口時初始化一個文件句柄關(guān)閉串口時關(guān)閉它。function startLog(app, filename) app.logFid fopen(filename, a); if app.logFid -1 error(無法創(chuàng)建日志文件); end end function stopLog(app) if app.logFid ~ -1 fclose(app.logFid); app.logFid -1; end end在onReceiveData回調(diào)中把收到的行加上時間戳寫入文件。為了性能我一般不會每行都flush而是利用fprintf默認的緩沖機制關(guān)閉時fclose就會寫盤。實時繪圖則可以使用animatedline對象它比重復(fù)plot更新更高效。舉個例子在App類里初始化app.plotLine animatedline(app.UIAxes, Color, b, LineWidth, 1);在回調(diào)中更新x now; % 或用計數(shù)器 y str2double(line); % 假設(shè)收到的是數(shù)值 addpoints(app.plotLine, x, y); drawnow limitrate;drawnow limitrate是MATLAB提供的一種降低繪圖刷新頻率的方法它最多每秒刷新20次左右可以防止界面被繪圖拖垮。如果數(shù)據(jù)量很大比如采樣率1kHz以上建議只繪制最新N個點或者先存入數(shù)組每隔一定時間批量更新一次避免每次回調(diào)都重新繪制。4. 實操中常見的坑與排查技巧4.1 打不開串口、端口號沒顯示這是出現(xiàn)頻率最高的問題。常見原因有三個串口被其他軟件占用。比如設(shè)備廠商的配置工具、SSCOM、XCOM甚至上一個沒被正確關(guān)閉的MATLAB程序。MATLAB里如果上一次運行打開了serialport對象但沒有delete對象還留在工作區(qū)端口就仍然被占用。排查方法是執(zhí)行clear all或close或者用instrfind清理instrfindall delete(instrfindall)端口號變化。USB轉(zhuǎn)串口設(shè)備在不同電腦、不同USB口插拔后COM號會變。可以在Windows設(shè)備管理器里查看“端口(COM和LPT)”確認當前端口號?;蛘咴贛ATLAB里用serialportlist(all)看所有端口。權(quán)限不足Linux。在Linux下普通用戶可能沒有/dev/ttyUSB0的讀寫權(quán)限。需要加用戶到dialout組或用sudo運行MATLAB。不建議長期用sudo正確做法是sudo usermod -a -G dialout 你的用戶名然后重新登錄。如果MATLAB報錯“Unable to connect to the serial port: Port is not available”八成是上面三種情況之一。注意serialportlist(available)只會列出未被占用的端口當你的設(shè)備被其他軟件占用它可能完全不顯示容易誤以為驅(qū)動沒裝好。4.2 數(shù)據(jù)亂碼、顯示異常亂碼問題要區(qū)分是“顯示亂碼”還是“傳輸數(shù)據(jù)本身錯誤”。如果是顯示亂碼比如接收框里出現(xiàn)方塊或問號先檢查是不是編碼問題。很多下位機發(fā)送的是GBK編碼的中文MATLAB默認使用UTF-8解讀字符串必然亂碼。簡單的處理方式在帶字符集轉(zhuǎn)換中用native2unicode和unicode2native轉(zhuǎn)換。收到字節(jié)數(shù)組后可以嘗試line char(native2unicode(line, GBK))。如果只是簡單ASCII那就不會有亂碼。如果是“數(shù)據(jù)對不上”比如發(fā)0xAA收到0xC2 0xAA這通常是因為把二進制字節(jié)用文本方式打開了或者發(fā)送端和接收端的數(shù)據(jù)位數(shù)不一致。還有一個很隱蔽的問題串口調(diào)試助手里的“HEX顯示”與“HEX發(fā)送”需要分別設(shè)置。如果你只設(shè)置了HEX發(fā)送但接收顯示為文本打印出來的就是不可讀字符。我的建議是調(diào)試底層協(xié)議時一律用HEX顯示模式方便核對幀格式確認無誤后再切換文本模式。另外檢查一下串口線是否完整?,F(xiàn)在很多USB轉(zhuǎn)TTL模塊只有TX、RX、GND三根線有的模塊需要短接RTS/CTS才可通信。如果收發(fā)雙方共地沒接好會出現(xiàn)數(shù)據(jù)偶爾丟字節(jié)、亂碼頻率很高的情況。信號地沒接是串口通信“玄學(xué)故障”的頭號原因。4.3 回調(diào)不觸發(fā)或界面卡死回調(diào)用terminator模式不觸發(fā)常見是下位機發(fā)的換行符不是LF而是CR或者是CRLF。MATLAB中串口終止符默認為LF如果數(shù)據(jù)以回車符結(jié)尾自然讀不到一行。解決辦法是把Terminator設(shè)置為CR/LF或者設(shè)置成CR甚至設(shè)置成char(13)。如果你不確定可以在“byte”模式下read所有數(shù)據(jù)然后手動解析。界面卡死的原因多半是回調(diào)函數(shù)里做了太重的工作比如在回調(diào)里執(zhí)行plot或者在回調(diào)中用了uialert這是非常影響性能的。App Designer的回調(diào)運行在UI線程上如果數(shù)據(jù)處理耗時過長界面會像死掉一樣。避免方法回調(diào)里只做數(shù)據(jù)入隊和簡單解析復(fù)雜的處理放到timer或者后臺任務(wù)。MATLAB從R2019a開始支持parfeval和backgroundPool可以把數(shù)據(jù)處理放到后臺線程。但是要注意UIAxes和控件操作不能在非UI線程中執(zhí)行所以最終更新界面必須回到UI線程。我的方案是回調(diào)里先解析數(shù)值存到一個隊列再用uialarm或者timer定時刷新界面。4.4 保存文件失敗、數(shù)據(jù)丟失保存數(shù)據(jù)時文件如果被Excel或其他程序打開fopen會返回-1日志寫不進去。打開串口時最好先設(shè)置好日志文件路徑并給用戶明確提示。另外如果程序異常退出fclose可能未執(zhí)行數(shù)據(jù)緩沖在內(nèi)存里丟掉了。可以在App的CloseRequestFcn里統(tǒng)一清理function closeRequest(app) stopLog(app); if ~isempty(app.s) delete(app.s); end delete(app.UIFigure); end數(shù)據(jù)丟失還有一個原因是回調(diào)讀取不及時。當接收速率很高比如單片機以1Mbps往上傳數(shù)據(jù)而MATLAB回調(diào)里每處理一行就更新TextAreaTextArea的內(nèi)容會越來越大導(dǎo)致回調(diào)越來越慢最終Buffer溢出。解決思路TextArea只保留最近N行比如2000行超過就截斷。使用App.component維護一個固定大小數(shù)組?;蛘咧苯硬挥肨extArea顯示改用繪圖和表格顯示處理后的結(jié)果。我在項目里就是用循環(huán)數(shù)組保留最近5000幀界面只顯示最新一幀的幾個關(guān)鍵數(shù)值這樣即使跑幾小時也不卡。5. 擴展思路與個人經(jīng)驗5.1 從“串口調(diào)試助手”升級成“自動化測試平臺”當你有了這套源碼它就不只是一個調(diào)試工具完全可以演變成一個自動化測試平臺。我后來在這個基礎(chǔ)上加了“測試用例腳本”功能把發(fā)送指令和預(yù)期響應(yīng)的對照表放在Excel里用readtable讀進來程序自動逐條向設(shè)備發(fā)送指令比對返回值并把PASS/FAIL結(jié)果輸出到報告。本質(zhì)上就是把原來手動點按鈕的流程變成批量執(zhí)行腳本化的過程。具體做法也很簡單在App Designer里增加一個“測試模式”測試腳本可以是一個結(jié)構(gòu)體數(shù)組每個元素包含指令、等待時間、預(yù)期響應(yīng)、容差等字段。發(fā)送后啟動一個計時器去接收數(shù)據(jù)收到后通過回調(diào)里的解析邏輯與預(yù)期比對。如果設(shè)備返回的是數(shù)值可以用assert或自定義判據(jù)。最終生成報告我一般用table保存結(jié)果再用writetable輸出CSV用起來非常順手。再進一步你還能結(jié)合MATLAB的Instrument Control Toolbox支持的其他接口比如GPIB、TCP/IP、Modbus做一個統(tǒng)一的上位機平臺。串口只是其中一種通信方式。當你的設(shè)備需要切換USB轉(zhuǎn)串口和以太網(wǎng)通信時這套架構(gòu)只需要把serialport換成tcpclient上層邏輯完全復(fù)用。我建議寫代碼時盡量把底層通信封裝成獨立類暴露open、close、send、onDataReceived這幾個方法后續(xù)擴展會省很多事。5.2 個人心得什么情況下別用MATLAB做串口工具MATLAB做串口調(diào)試助手確實方便但它也有短板。啟動慢、內(nèi)存占用高、打包成獨立exe后首次運行需要安裝運行時MCR這些都是客觀存在的。如果你只是臨時抓個數(shù)據(jù)、看個波形那用MATLAB沒問題。如果你要做一個需要分發(fā)給幾十個同事、或者部署在嵌入式設(shè)備旁邊長期運行的通用小工具那還是老老實實用Pythonpyserial PyQt或者現(xiàn)有的串口助手吧。MATLAB的優(yōu)勢在于“數(shù)據(jù)處理 協(xié)議解析 可視化”的緊密集成而不是極致的輕量和響應(yīng)速度。用MATLAB做串口工具還有一個隱性問題串口通信對實時性要求高MATLAB是腳本語言回調(diào)之間還可能因為繪圖、文件I/O等操作造成延遲抖動。如果你的應(yīng)用是高速閉環(huán)控制那MATLAB并不合適。但它特別適合“數(shù)據(jù)記錄 離線分析”的場合比如你給設(shè)備發(fā)一個指令然后采集幾千幀響應(yīng)數(shù)據(jù)存下來做系統(tǒng)辨識或性能評估這種場景MATLAB就是王炸。最后再分享一個小技巧在調(diào)試過程中如果你的數(shù)據(jù)量很大又不想讓TextArea被刷爆可以在回調(diào)里加一個計數(shù)每隔50行才更新一次界面顯示。這樣既可以看到數(shù)據(jù)流動又不會拖慢程序。但重要的、需要記錄的關(guān)鍵幀一定不能丟要用日志文件存下來。說實話我剛開始做這個項目時也交過很多學(xué)費比如回調(diào)里直接繪圖導(dǎo)致UI卡死、波特率配置錯誤導(dǎo)致數(shù)據(jù)全亂、沒接GND導(dǎo)致通信不穩(wěn)定等等。后來我養(yǎng)成了一個習(xí)慣先寫一個最簡單的收發(fā)測試腳本確認串口鏈路穩(wěn)定再開始搭建界面。這個習(xí)慣建議你也保留能幫你省下大量排查時間。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
理论久久婷婷网8| 欧美熟妇精品黑人巨大91| 亚洲91射| 色官网在线| 大香蕉92| 少妇高潮对白在线观看| 欧美 日韩 婷婷 五月| 麻豆久久一区二区三区| 7月婷婷综合| 日韩AV噜噜噜一区二区三区四区| 在线观看AV片| 天天搞欧美| 丝袜美腿制服人妻二区中文字幕 | 人人干黄色| 丁香六月婷婷综合| 狠狠超| 超碰99在线| 中国和日本人色哪个不下载能放| 亚洲成A∨人影院在线欢看| 亚洲国产一级中文综合久久天堂在线免费观看| 久久国产AⅤ| 久久久久久大| www.亚洲黄色| 欧美在线视频播放| 欧美顶级黄色大片免费| 久久久久久中文| 日本日皮视频逼| 亚洲AV色图一区| 操逼网免费无码视频| 91九色丰满高潮| 日韩精品一区的| 大香蕉伊人75| 久久久精久久久| 91色综合| 天天影视网色欲色香| 亚欧Av| 国产又粗又长的视频| 色墦五月丁香| 亚洲成人一区二区精品| 欧美色图20P| 天美精品av| 亚洲欧洲中文日韩女优乱码| 夜色97| 国产麻豆福利av在线播放| 啊啊啊啊啊啊啊网址在线观看| 91c色| 天天狂操夜夜狂日| 夜夜嗨绯色| 黄片aaaaa一区| 精品久操| 啊啊啊好湿久久| 国产浮力影院第1页| 久久精品国产97欧美精品亚洲 | 亚洲精品天堂久久A∨51成人漫| 日日摸日日碰| 日本不卡三级网在线播放| 一区操逼| 久久专区| 欧美亚洲天天| 久久久久久少妇| 亚洲丝袜色| 伊人久久在线视频观看| 久久久久久人体| 久久久久久久久久久久黄色 | 日本性爱网址| 蜜臀久久99精品久久久久久-DVD原版全| 日韩精品9999| 欧美夜夜狠| 岛国免费黄色网址| 97超碰精品| 国产在线精品电影观看| 日韩精品区二区三区不卡| 免费啪啪av| 亚洲国产97| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 中国操逼无码| 精精品人妻一区二区三区| 亚熟在线| 精品久久久久9999| 欧美色色色| 久久久99久9| 欧美少妇一区二区三区| 青娱乐手机日韩在线视频| 国产综合永久精品日韩鬼片| 深夜福利黄片| 69久久| 中文字幕av久久爽Av| 色婷婷五月综合激情中文字幕| 亚洲国产丝袜熟女av| 久久精品无码不卡| 三级网站超变态精品| 屌色在线97视频| 一区二区影院| 一级毛片久久久久久久女人18| 男人的天堂va在线| 伊人国产AV| 人人妻人人色一区二区三区| 黑人与人妻| 久九九九九九九热| 国产久久视频| 日韩三级一区| 婷婷综合五月天| 秋霞蝌科网日本一区| 蜜乳AV免费观看| 日本一二区不卡| 全国男人天堂网| 五月天加勒比啪| 日韩一级二级在线| 五月天春色激情网| 黄总AV色图| 91久久久久久久久久久| 翘臀vidoes| 人妻少妇一区二区| 精品四五区| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 日韩精品人妻系列无码天堂| 91N五十路| 欧美日韩m| 96AV精品| 炮色五月| 日产中文字幕2020| 啊啊啊不要啊啊受不了了视频在线 | 日韩精品高清资源在线| 台欧久久精品视频| 高树玛利亚无码流出| 中文高清一区二区的| 屌逼麻豆| 高凊专区人人操| 91N欧美| 色色色热| 亚州综合电影| 中文欧丝袜诱惑| 国产欧美日产一区二区三区 - 国产欧美日| 99久在线精品99re8a| 91在线色| 东京热不卡视频| 搡老女人老91妇女熟女| 91久久国产精品| 欧美色蜜桃97| 国内毛片欧美香蕉精品| 性久久久| 秋霞无码av鲁丝片一区| 日韩中文字幕二区| 九九热男人天堂| 久久综合久久综合人久久夜精品| 97视频www| 夜夜福利| 国产91丝袜 在线播放| 2017天天插| 边做饭边操逼逼| 日韩美女啪啪一区| 插欧洲美女欧美精品| 女人高潮抽搐喷水视频网站| 精品人妻伦一二三区久久| 这里只有精品久久| 欧美天堂亚洲电影院一区在线播放| 加勒比海成人视频网| 欧美黑人168页欧美黑人167| 亚洲天天操| 国产丝袜美女在线一区| 不卡一区二区日本视频| 色婷婷小说| 欧美第一页性| 久久久91福利姬| 97碰久久| 国产精品自拍xxxx| 人妻一区二区三区| 加勒比少妇AV婷婷六月天超碰超碰| 99精品综合久久久久五月天| 国产亚洲精品一区二区三区| 国产 无码 一区二区| 久久久久久夜夜夜夜夜| 日夜伊人网| 国产精品岛国片在线观看| 天天干人人乐| 少妇厨房愉情理伦片bd在线观看| 免费A V在线| 大香蕉在线视频15| 亚洲女人毛茸茸91| 97色伦97色伦国产欧美| 亚洲AV永久无码一区仙野| 日韩乱码av| 任你干在线视频| 97在线视频免费| 极品白嫩美女白浆成人福利在线看| 中文字幕二区日韩天堂| 欧美情色亚洲| 国产精品探花在线| 国产极品999| 羞答答AV中文字| 1769一区| 天天日日夜夜| 天天看特黄的免费网站| 九九九九AV| 婷婷深爱五月| 成人AV在线网站| 狠狠操夜夜操蜜桃视频三区| 青青草色情网站视频| 天天日天天看| 亚洲成A∨人影院在线欢看| 天美av在线观看| 精品制服美女中文一区二区三区| 韩国手机不卡无码三级视频| 志村玲子视频一区二区| 无码人妻系列少妇| 日韩在线欧美精品一区二区| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲日产专区婷婷| 97视频网站在线观看| 91人妻熟女| 欧美日本成人一区二区| 99无码视频| 亚洲污污网站| 日本伦理一区二区| 欧美同性恋 的搜索结果 - 91n| 日本不卡二三区| 操熟女91| 一起草精品人妻| 亚洲人91| 中文字幕乱码人妻二区三区| 亚洲精品欧洲精品| 男人综合网| 无码人妻丰满熟妇区毛片| 五月天黄色av| 成 人片 黄色大片| 超碰97伊人| 亚洲激情av| 91超碰人人操| 超碰97欧美日韩| 91久久免费视频互動交流| 亚洲视频一二区| 久久国色天香香蕉| 国产精品久久久啊| 人人色97| 97干97色| 97精品国产97久久久久久免费| 久久内射| 99热精品在线| 欧美日本成人一区二区| 亚州操操穴网| 不卡中文字幕aⅴ在线| 亚洲AV乱码专区国产噜噜亚洲| 97天天摸天天爽| 熟妇人妻精品一区二区视频色欲| 黄骗免费网站| 日韩午夜国产| 天天干天天舔| 西西美女视频网| 久久久无码精品人妻二区| 亚洲免费人妻在| WWW美腿丝袜香蕉中文| 亚洲AV麻豆Aⅴ无码电影一| 欧美国产精品久久九九| 按摩中文字幕| 国产又色又粗又黄又爽| 大香网伊人久久综合网eew| 中国91AV| 国产激情在线观看| 热热色色综合| 欧美人与性动交a美精品| 久久首页| 亚洲精品三| 97天天弄| 操逼日批| 中文人妻av高清一区| 丁香九月激情啪| 日韩午夜啪啪视频| 午夜性生活av免费在线看| 超碰97在线色男人??| 天美国产三级传媒| 亚洲欧洲网站免费观看| 亚洲精品白浆高清久久久久久 | 精品人妻av在线播放| 亚洲图片 激情小说| 中文字幕人妻资源在线| 色九九综合AV| 成人资源中文字幕在线观看天天| www久久国产精品| 亚洲日韩乱码中文无码蜜桃臀网站| 午夜理论片在线观看免费| 亚州黄站| 日韩懂色网| 婷婷久久五月| 九九性爱网| 性videos欧美熟妇hdx| 中文字幕青青草| silk lablo在线观看一区二区| 天综合中文| 91色婷婷综合久久中文字幕二区| 国产精品宅男免费| 无码一区二区精品视频久久久春药| 亚洲骚逼少妇| 久久久久久九九九| 精品十八在线观看| 日本2020一区二区| 欧美香蕉视xxx| 欧美综合站| 九九精品热| 多乙久久久久久| 人人摸.人人色| 操操操五月天婷婷丁香影院| 精品国产91内射久久| 超碰97人妻| 日韩图色| 亚洲综合在线第一页| 啊啊啊水好多| 欧美熟妇人体| 把腿张开老子CAO烂你| 91人妻在线视频| 亚洲欧美91√| 久久国产对白激情浪潮 | chaopen97久久| 无码一区二区三区四区五区六区七区八区九区十区视频 | 强免费黄色网址| 麻豆AV短剧| 欧州一区二区三区四区| 6080yy午夜理论三级一区二区三区无码| 国产精品露脸在线观看| 午夜在线播放| avav青青草久久夜| 天天看高清麻豆| 色婷婷aV一区二区三区麻豆综合| 亚洲国产第一页综合视频| 国产精品一二三在线看| 污色区网站| 后入人妻无码| 97中文字幕一区| 日韩图区| 国产精品熟妇一区二区三| 99少妇精品视频| 97人人模人人爽人人| 久久久久亚洲AV无码专区少妇| 九九九只有精品| 今日头条成人一区二区三区四虎精品 | 久久久久久久久久久精| 97超碰精品成| 欧美第38页| 久久国产99精品72福利| 中文字幕奈奈美被公侵犯| 天堂v无码免费视频| 久久精品国产亚洲粉嫩| 欧美精品久久| 日韩国产在线观看av| 懂色Av| 欧美色乱| 蜜区区视频79| 欧洲视频在线| 偷拍导航视频网站| 性生活性生大爱77AV国产| 青草影院内射高潮| 激情文学 亚洲图片| 91国产大片| 97中文字幕色| 久热久| 男人的亚洲天堂| 欧美变态激情网| 午夜福利区| 清清草影| 亚洲精品蜜桃久久久久久久| 国产第二页| 人人噜夜夜操| 久久久久网站-538在线视频-欧美永久乱码| 青青草原综合久久大伊人精品| 啊啊啊操一区| 熟女自慰久久久| 女同性恋一区二区三区精品视频| 亚洲天堂第一页| 欧美亚洲激情小说| 亚洲欧洲偷拍一区| 丁香六月婷婷久久综合| 亚洲色图91欧美日韩| 日韩午夜啪啪视频| 国产精品交换一区二区| 日本免费不卡二区| 天天影视之亚洲综合网| 人人妻人人爽| 青娱乐999| 国产精品毛片?v一区二区三区| 日欧亚洲二三区大片不卡| 99久久久无码国产精品性男| 亚洲无码色| 中文字幕 一区二区 亚洲无码| 最新av在线| 97久久久久久久久久| 男人的天堂com| 婷婷五月天影院| 国产区性爱在线视频秋霞豆| 久久九九热| 国产成年免费大片黄在线观看| 91碰超| 人人插人人搞人人操| 首页亚洲国产高跟丝袜诱惑视频| 99久久久无码| 人妻天天爽夜夜爽精品2| 操婷婷逼| 玖玖97综合| 国模限制级电影| 性爱AV天堂| 亚洲综合九| 欧美色91| 久久黄色视频一区二区三区 | 女优大全 - 91n| 免费观看网黄| 91人妻Pr| 91久久堂| 欧美劲爆第一页| 五十路六十路七十路熟婆| 乳欲人妻办公室奶水| 手机在线观看不卡无码av| 久操高青| 欧美性第1页| 中国农村熟妇毛片视频| 夜夜草网站| 97久久精品亚洲中六字幕| 91综合天天看| 噜噜噜在线视频| 欧洲天天在线| 国产美女91| 亚洲一区二区三区播放在线| www.狠狠干.coom | 激情小说亚洲色图| 亚洲成a人片在线观看中文!!!| 激情五月综合网| 青青草成人视频在线观看二区 | 亚洲丝袜在线观看| 黄页大片在线观看| 日韩人妻免费精品| 欧美日韩国产人人| 老熟妇乱轮| 翔田千里av一区二区三区| 精品一区二区三区四区女| 精品人妻一区二区三区四区| 极品色www影院| 成人黄页| 一区不卡在线观看av| 偷窥自拍A片| 欧美91在线+|+欧美| 91综合在线| 婷婷色综合| 偷拍综合网| 久久九九热| 国产日逼视频| 厕所偷拍在线| 男人的天堂2019| 久久婷婷色| 天天干1区2区在线| 黄色网址在线免费观看| 1000午夜黄色| 日韩欧美tv一区二区在线观看| 99爱久久视频频| 精品一区二区三区麻豆| 蜜桃臀av在线观看| 老司机香蕉久久久久| 69精品人人人人| 美女91在线观看| 午夜福利国产欧美日韩夜夜| 久久久久久久久久久人妻| 天天肏天天干| 2020视频1区2区3区| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 久久超碰av在线| 郑州宾馆老熟女露脸啪啪| 中文字幕AV片| 在线啊v一区| 91人人| 日本ZZ高免费A级视频| 天天综和| 992这里有精品| 国产aⅴ无码片毛片一级网站| 午夜亚洲| 国产熟码AV| 韩日巨乳美女免费视频在线观看| 亚洲综合春色| 日韩三级一区| 五月天伊人| 久草免费在线一区二区| 久久精品欧美一区二区三区不卡| 美女爽到高潮91| 日韩专区久久久| 人人超碰在线观看黄| 婷婷五月天小说| 女人被男人桶爽视频网站| 992视频一区| 欧美日韩美女精品久草一区二区三区| 久久国产对白激情浪潮| 宅男91视频在线播放| 色五月婷婷麻豆在| 久久精品国产精品亚洲艾通辽熟妇 | 老鸭窝日丰县女人| 五月色综合| 91在线观看,天天综合| 少妇无码av专区线| 97在线看| 久久产精品一区二区三区电影| 国产白丝AV| 97综合激情| 99999久久精| 亚洲色性| 91岛国动作片| 97在线免费观看视频| 欧美亚洲首页| 校园春色 欧美| 天天做天天爱| 国产无码精品无码| 伊人丁香五月婷婷| 日韩,欧美,中文在线| 夜夜影视四色| 制服乱伦| 九九九九久久久| 九月丁香婷婷| 日本97久久久精品| 天天激色| 国产农村一一级特黄毛片| 91成人社区| 精品一级毛片在线观看| 欧姜老司机| 亚洲无 码A片在线观看麻豆| 六九九九| 欧美 传媒 麻豆 日韩 偷拍| 色官网色综合| 精品国产乱码久久久兰草影视| 强奸乱伦大香蕉网| 亚洲综合九| 日韩欧无码一区二区三区免费不卡| 亚洲精品九九九九九九| 天美传媒av一区二区| 日韩无码一区二区三区| 久久精品久久久久久久| 久久加勒比| 国产人伦a片信息免费片| 欧美极品少妇交| 男人的天堂久久久| 中文字幕乱妇免费视频| 激情抓乳插进去啪啪啪日韩 | 色婷婷久久综合超碰| 亚洲色五月| 欧美天堂第二区| 婷婷中文网| 大香蕉人妻久久| 88在线一区二区三区| 国产精品扒开腿做爽爽爽视频| 亚洲αv一区二区三区| 超碰97网站| 亚洲天堂久久久久久粉红视频| 欧美综合第一页| 丰满人妻一区二区三区| 婷婷中文网| 免费无码国产精品v片在线观看| 丁香五月天视频| 国产狂喷潮在线精品| 日比av无码| 超碰99在线观看| B049AV在线播放| 五月天婷婷色| 欧美三级中文字幕hd| 欧美黑人性猛交91| 中日韩欧美精品无码AⅤ一区二区| 久久久久幕乱码| 天天影视综合色| 欧美中文字幕男人天堂久久精品| 天天爽天天干| 人妻精品综合中文字幕在线 | 欧美亚洲综合色| 色综合av男人天堂| 婷婷AV一区二区三区| 国产日韩欧美三级片| 欧美亚洲日韩人妻在线观看| 国产欧美日韩女同性恋ww喷水精品| 亚洲综合97中文网| AV色天香在线| 欧美国产一区二区三区麻豆传媒| 精久久久| 无码欧美有限公司| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 亚洲欧洲精品视频发布| 黄色电影在线播放综合网站| 日本在线视频导航| 日韩AV一区二区三区三州三州| 九九九九9999| 夜夜嗨一区二区| 在线视频 亚洲精品| 中国黑人三级片网站上区| 天天激情综合站| 加勒比伊人综合| 亚欧国产无码精品在线| 校园春色亚洲色图| 九九碰九九爱97超| 怡红院久久老司机| 美女丝袜激情小说| 亚洲日产专区婷婷| 成人欧美日超碰| 日韩资源网| 成人在线视频一区| 97国产伦理| 久久精品国产99国产精品亚洲| 91丨九色丨熟女高潮| 粉嫩在线一区二区懂色| 亚洲va有码在线天堂| 懂色天天爱天天日天天射天天澡| 亚洲欧美日韩中文播放| 国产精品盗摄 偷窥盗摄| 丁香六月婷| 好一吊区二区| 久久久久久国产精品免费网站| 男女真人网18| 日韩欧无码一区二区三区免费不卡 | 色狠狠 - 百度| 日韩精品中文字幕一 | 第一高清av中文字幕| 熟女六十路| 中文字幕 一区二区 亚洲无码| 999在线电影香蕉| 亚洲另类电影| 亚洲影视综合网| 亚洲欧美另类少妇精品| 日本黄色XXX| 超碰在线第一页| 无码不卡亚洲成?人片| 免费视频97| 色色国产| 亚洲高清无毛一区二区| 超碰97久久观看| 操比国产| 97九色| 亚洲色入欧美| 丁香五月大香蕉| 亚洲色婷婷久久91| 怡红院网站在线视频| AV中文在线可看| 亚洲国产精品9999在线观看| 2019男人的天堂| 99999精品成人| 欧美强奸乱能| 美女久久久| 狠色婷婷久久一区二区三区_| 欧美黄色片AAAAA| 久久一区二区三区四区五区| 亚洲第一狼人丝袜美女另类| 2020视频1区2区3区| 91国精产品| 97色伦97色伦国产欧美| 九九99久久| 色情婷婷久久五月天| 日韩三级伦理中文字幕| 婷婷五月天av| 久肏视频字幕| 国产亚洲日韩在线三区黑人| 好吊色一区| 日韩成人无码| 久偷拍欧美日韩三区| 国产精品久久久久久久黄无码| 五月天久久婷婷亚洲 | 久久av一级av少妇av高潮| 暴力av在线| 九九毛片这里只有精品| 亚洲第一无码播放立川理惠| 欧亚第一综合网| 欧美99热| 97在线视频观看| 97九色人妻| 一级婬片120分钟试看| 区一二区日韩亚洲乱码av电影| 日韩成人私密一级精品av| 磁力99AV| 亚洲国产一级精品毛一级精品看免费视频| 超碰伊人在线| 亚洲 日韩 欧美 国产综合体| 热热色中文无码| 嫩草 人人网精品| 国产精品自在自拍视频| www欧美91| 亚州精人品大香蕉| 亚洲无线码欧洲精品区别| 日韩欧美久久婷婷网站| 成人无码专区精品视频| 国产熟女乱论| 国产精品一区二区a| 狠狠爱夜夜干| 69AV女优男人的天堂| 免费看久久久性性| 搡老女人老熟女91老熟女综合网| 青青草十区九区爱夜| 精品在线观看视频在线| 青娱乐999| 蜜臀AV一区二区三区| 亚洲 图片 综合91| 欧美A片中文字幕| 91精品人妻一品二品三品| 97色视频在线| 蜜乳性色无码专日粉嫩骚逼AV| 欧美亚洲综合高清在线| 天美传媒av在线| 午夜福利区| 啊啊啊用力在线观看| 久久久久久久9| 激情四射婷婷六月天| 天天综合网久久ww| 国产欧美精品日韩区二区麻豆天美| 午夜爽爽爽在线观看永久入口姬片| 91成人无码| 久热这里| 日韩无码人妻中字久久三区四区| 欧美色色人| 精品九九淫乱男| 一区| 久久伦理视频久久大香蕉视频| 综合久久婷婷| 婷婷丁香六月天| 强免费黄色网址| 久久综合激情| 亚洲精品久久久久久久蜜桃臀| 亚洲超碰AV| 亚洲成A∨人影院在线欢看| 国产精品视频麻豆入口| 飘花国产午夜精品不卡| 天天综合青苹果| 怡春院久久| 天天干夜夜鈤| 国产h小视频在线观看免费| 国产熟女一区二区| 精品国产Av无码久久久伦古装| 欧美在线天堂| 精品高清av中文字幕| 91免费看一区二区三区| 97超碰超碰| 国产精品福利资源在线尤物| 成人小说视频在线精品欧美| 26uuu欧美日韩| 亚洲AV无码乱码在线观看性色| 免費黃色視頻觀看一| 日韩pv中文| 四虎884a| 精品国产乱码久久久| 亚洲 无码 偷拍| av天堂5| 天天操天天射青青草| 日日嗨AV一区二区夜夜| 亚洲交性| 日本免费中文字幕在线| 精品精品精品| 九草在线大香蕉| 亚洲狠| 啊啊啊免费视频| av在线免费一区二区| 九月婷婷综合| 日本男人插女人的逼黄色| 蜜臀中文无码午夜| 久久久久人妻二区精品叶可怜| 操婷婷逼| 99热超碰| Julia Annxxxxx| 无码人妻精品一区二区三区99不卡| 亚洲电影中字一区二区| 精品性爱一区二区| 97久久精品国产| 青娱乐啪啪视频| 91天堂色男人的天堂| 亚洲日韩青青草色月| 欧美激情内射| 18禁免费视频| 综合网,亚洲,欧美| 夫妻日逼| 欧美性爱91| 国产不卡中文字幕免费avi| 青青草毛片| 久热无码| 色原狠狠天天天| 啊视频在线| 福利大香蕉| 免费看久久久性性| 校园春色综合香蕉| 少妇一级无码精品| 麻豆黄四叶草网站| 国产第12页| 操死我了嗯嗯嗯| 嗯啊啊啊轻点视频| 欧美日韩97在线| 狠狠色伊人亚洲综合网站色| 肉丝网站91| 影音先锋日本乱伦| 欧美中文狠| 亚洲中文一区二区三区| 九热超碰| 亚洲第一无码播放立川理惠| 少妇精品久久久八区九区| 久久99人妖视频国产| 最新av在线| 五月丁香六月综合缴清无码 | 欧美78P| 一二三四免费视频| 国产高清午夜成人在线观看| 欧美后进式| 一级二级三级黑人无码| 亚洲伊人久久精品影院| 强奸乱伦Av网| 99久草| 精品亚洲俞拍视频一区| 大香网站| 欧美se综合| AA丁香综合激情| 色欲av一区二区三区蜜芽| 欲色啪| 丁香五月激情综合| 欧美成年人性爱视频免费观看| 欧美黑人91| 清纯唯美激情四射| 亚洲黄网在哪免费看| 人人爱人人乐人人操| 中文字幕av一区二区三区人妻少妇 | 天天躁日日躁狠狠狠躁| 精品国产乱码久久久久久影片| 日韩猛交| 精品97精品97| 久久精品欧美一区蜜桃| 亚洲av影音先锋| 亚洲日韩在线a不卡99精品| 91熟女少妇| 91黑丝美女| 国产亚洲 中文欧美久久| 交换娇妻呻吟声不停中文字幕| 伊人欧美大香蕉视频| 欲香欲色天天天综合和网| 抽插无码高清一区| 亚洲国产一区二区入口| 狠狠久久手机视频精品| 天天拍夜夜| 久久久久96| 欧亚成人在线视频| 国产自产自拍| 成人麻豆av电影网站| 啊啊啊啊免费视频| 欧美在线色| 超碰98综合网| 丝袜熟女2P| 97综合在线观看| 亚洲老熟妇xxx| 久久大陆| 国产A v无码专区| 国产成人拍国产亚洲精品| 久久久久久9| 伊人国产成人av网站| 97亚洲欧美| 亚洲无码视频免费在线观看网址!| 伊人久大| 久久99深爱久久99精品| 日韩欧美天天爽爽爽天天爽爽| 九九九九免费高| 日产成人久久| 国产天美传媒精品| 蜜桃精品一区二区三区久在线| 天天色怡春院| 69久久| 色噜噜日韩精品| 人妻熟妇一区二区三区| 91精片| 大屁股人妻女教师撅着屁股| 欧洲亚洲国产综合在线| 免费A V在线播放| 色99视频| 一本一道人妻久久一区二区三区 | 3P乱轮视频| 午夜啪啪片| 国产成人精品日本视频| 国产精品久久久久亚洲av| 色色五月婷| 亚洲丝袜天堂| 新视频sss国产| 欧美激情在线观看视频| 精品人妻一区二区免费蜜桃视频| 日本αv| 精品-91人妻子系列| 亚洲 中文 女同| 97在线亚洲| 999久久久免费精品国产牛牛| 欧美人妻久久精品二区三区| 国产激情综合| 欧美色图亚州激情| 97鸡把在线视频| 精品偷拍13p欧美dodk视频| www.99热| 人妻无码一区二区三区久久99| 老鸭窝在线视频播放| 亚洲精品一区二区精品| 屌色在线97视频| 综合性视频99| 密乳无码| 欧美日韩丝袜 | 亚洲欧美伦综合| 国产女人91精品嗷嗷嗷嗷| 欧美综合色站| 日韩熟女三十乱伦| 加勒比无码一区二区三区| 9久9久| 国产黄色 A 片免费看| 久久久久久久久久久999| 黄片www视频免费| 一级啊性爱在线视频| 少妇人妻无码| 伊人丁香五月婷婷| 麻豆国产av网| 91啦人妻| 国产农村妇女精品1区二区| 中日韩免费看男女操逼大全| 97久久国产| 亚欧性爱无码| 67194无码不卡| 国产一区二区三区高清视频| 在线啊啊啊啊| 欧美一级A一级a爱片久久| 色情乱伦AV| 中文字幕欧美日本乱码一线二线| 日本高清_区二区三区| 十八禁电影伊人网| 丁香五月激情综合国产| 亚洲熟女乱综合一区二区三区| 蜜乳av一区二区| 精品一二三区四视频| 99性爱在线观看| 男人天堂 天天射| 蜜桃无码AV一区二区| 亚洲欧美黄| 亚洲三级网址久久最新| 操逼逼中文字幕| 激情婷婷黑人91| 九九热在线精品视频| 新版天堂中文资源8在线| 超碰人妻久久| 超碰碰激情97+久| 裸体美女免费看网站青草| 一二三区精品视频| 久久999久| 欧美性爱精品一区二区| 人妻精品一区二区三区| 免费9 1久久| 久综合网| 午夜啪| 五月天婷婷社区| 欧美日韩婷婷中文| 五月激情综合网| 精品无码一区二区三区色欲| 欧美人妻一区二区| 久草色悠悠在线视频| 99在线观看| 激情国产乱伦Av| 操逼逼一区视频| 超碰97中文| 蜜臀久久99精品久久久久久成人小说 | 极品白嫩福利在线| 国产久久av| 91亚洲欧洲| 怡红院成人视频| 色拍偷亚洲| 欧美色图成人网一区二区 | 91在线视频国产网站| 热热色色综合| 女人一区| 一级AV性爱| 大香蕉伊人网| 清纯唯美亚洲综合| 大茄子熟女AV导航| 国产伊人精品在线| 嗯嗯啊啊视频一区二区三区| 后X久久| 亚洲精品精品一区二区| 乱论91| 国人欧美精品一区二区| 沈阳熟女高潮对白视频| 日韩亚洲欧美中文字幕| 神马麻豆福利院| 欧美熟女逼久久久久久| 熟妇高潮二区三区| 中文无线日韩一区| 国产深喉| 欧美 亚洲 在线| 黑丝制服中文字幕| 日本在线一二| 在线综合 亚洲 欧美中文字幕| 丝袜狠狠草尤物 91| 加勒比少妇AV婷婷六月天超碰超碰| 久久久久9| 日本日日色视频| 亚洲色图综合网| 超碰这里只有精品| 狠狠搞 亚洲91| 亚洲熟久久| 怡红院怡春院| 好屌色综合| 久久九九精品一区二区 | 亚洲熟女中文字幕在线| 国产在线视视频有精品| 日韩综合成人免费视频| 国产激情av女片自拍| 综合久久久久久久综合网| 色情乱伦AV| 欧美人妻精品| 青青草视频导航官网| 国产精品另类一区大香蕉| 97在线视频免费| 欧美日韩 强奸乱伦| 九九热超碰| 97bbn| 搡老女人老91二区| A 在线网址| 欧美99| 亚洲色图综合网| 精品91| 丁香五月电影| 丝袜亚洲91| 午夜福利国产欧美日韩夜夜| 午夜福利国产欧美日韩夜夜| 丁香婷婷大香蕉| 欧美成人色| 牛牛AV人人夜夜澡人人爽| 成人国产精品三级A片| 91天堂视频| 国产精品999aaa| 五月天久久久| 国产精品久久久午夜夜伦鲁鲁| 成人无码在线视频网站| 少妇99成人麻豆| 亚洲综合69| 岛国黄片网站| 中文字暮97| 久久久人妻| 91N欧美| 色色97爱| 欧美国产日韩高清在线| 人人妻人人色一区二区三区| 亚洲天堂AV在线播放| 熟妇高潮一区二区免费视频| 91 综合网| 91大学精品激情戏| 精品人妻一区二区三区视频在线| 欧美激情中文字幕另类小说| 久久久久921| 色色色色网站| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 亚洲国产欧美日韩人妻日中文| 这里只有精品97| 亚洲av无线观看| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 免费又黄又裸乳的视频| 99RE在线视频精品,这里只有精品| 99e久久国产精品| m欧洲一级午老| 欧美综合区| 久久区| 9/A片| 神马久久久久久| 欧美亚洲激情小说| 欧洲性爱无码区| 偷拍五区| 99国产精品| av天堂精品久久| 99热超碰| 翔田千里爆乳巨臀无码| 麻豆一区在线| 五月天综合网| 天天躁日日躁AAAAXXXX国产| 久九9精品| 久久久久久亚洲精品不卡人乳| 国产精品久久久久久久无码AV| 毛片视频白嫩| 这里只有精品视频在线观看麻豆| 人人妻人人色一区二区三区| 欧美AB在线观看| 日韩在线观看字幕精品| 超碰到97情色| 色玖玖| 97欧美性爱| 日韩综合色网| 99操逼| A V视频日本| 91第一页| 成人一级二级| 91久久18禁| 又大又黄国产| 午夜天堂啪啪| 欧美一区二区三区蜜桃| 亚洲欧洲激情卡通另类文学四射小说网站 | 欧美性,色九九| 国产精品老师| 日韩性爱电影一区| 中国一级操逼视频| 白丝AV| 精品无av| 亚洲综合草草| 亚洲素人综合| 劲爆欧美人妖三区91| 久久久久9| 久久久久ab| 欧美曰韩国产精品| 欧美色三级片91| 色婷婷导航| 国产亚州日韩欧美看片| 丁香六月激情| 人妻献身系列第54部| 人妻一区二区三区视频| 亚洲熟妇A V黑人| 射综合网| 秋霞午夜成人福利片片| 春色综合网| 中文乱码字幕观看| 欧洲精品一级二级精品综合视频综合| 97操综合| 伊香蕉综合久久久久久久噜噜噜| 精品少妇99| 一二三区操逼国产91| 超清福利精品视频在线| 中国操逼无码| 久久青青草在线视频| 成年人黄色视频免费| 1240青青草一区二区三区视频天爱| 老熟女91视频| 色网亚洲人| 欧美性天天| 国产成年精品高清在线观看91| 久久无码成人| 国产激情视频在线观看| 激情文学网伊人| 五月婷婷hd| 91 亚洲情侣偷拍 久久| 日韩精品资源| 欧美色图亚洲色,麻豆| 久久午夜色播影院免费高清| 国产又黄又爽又刺激久久久久久| 婷婷午夜清品久久久久久久性色视频观| 狠日欧美| 国产高清无码一区三区二区| 性爱视频免费网址| 国产精品成人无码av| 9久久9综合| www.成人无码| 最新无码国产| 五月激情啪啪| 欧美亚洲涩涩| 欧美视频一| 性爱综合网| 老司机福利社视频在线观看| 美女天天干| 91碰超| 红杏大香蕉| 嫩草黄页| 中文字幕高清精品一区| 日本久操视频| 伊人991| 91在线免费精品视频| 成人看片网站| 中文字幕97色| 成年人黄色视频免费| 综合自拍| 欧美天堂亚洲电影院一区在线播放| 美女久久久久久久| 97日视频| 美女91网站| 熟妇熟女视频一区二区三区| 高清不卡 中文 人妻| 多毛小伙内射老太婆| 91nbbbbbb| 91福利网在线观看|