wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7577|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

MATLAB實現(xiàn)串口調(diào)試助手源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:519257 發(fā)表于 2019-4-23 12:44 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
程序在壓縮包內(nèi)


MATLAB源程序如下:
  1. function varargout = serial_communication(varargin)
  2. %   作者:羅
  3. %   功能;串口收發(fā)
  4. %   版本:20101103 V2.0
  5. gui_Singleton = 1;
  6. gui_State = struct('gui_Name',       mfilename, ...
  7.                    'gui_Singleton',  gui_Singleton, ...
  8.                    'gui_OpeningFcn', @serial_communication_OpeningFcn, ...
  9.                    'gui_OutputFcn',  @serial_communication_OutputFcn, ...
  10.                    'gui_LayoutFcn',  [] , ...
  11.                    'gui_Callback',   []);
  12. if nargin && ischar(varargin{1})
  13.     gui_State.gui_Callback = str2func(varargin{1});
  14. end

  15. if nargout
  16.     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
  17. else
  18.     gui_mainfcn(gui_State, varargin{:});
  19. end

  20. function serial_communication_OpeningFcn(hObject, eventdata, handles, varargin)
  21. handles.output = hObject;
  22. warning off all;
  23. %% 改變窗口左上角的圖標為icon.jpg
  24. javaFrame = get(hObject, 'JavaFrame');
  25. javaFrame.setFigureIcon(javax.swing.ImageIcon('icon.jpg'));
  26. %% 初始化參數(shù)
  27. hasData = false;         %表征串口是否接收到數(shù)據(jù)
  28. isShow = false;          %表征是否正在進行數(shù)據(jù)顯示,即是否正在執(zhí)行函數(shù)dataDisp
  29. isStopDisp = false;          %表征是否按下了【停止顯示】按鈕
  30. isHexDisp = false;           %表征是否勾選了【十六進制顯示】
  31. isHexSend = false;        %表征是否勾選了【十六進制發(fā)送】
  32. numRec = 0;            %接收字符計數(shù)
  33. numSend = 0;           %發(fā)送字符計數(shù)
  34. strRec = '';                   %已接收的字符串
  35. %讀取圖片數(shù)據(jù),只在第一次運行時讀取
  36. pathstr = fileparts(which(mfilename));
  37. if exist([pathstr '\lamb.mat'], 'file') == 2
  38.     load([pathstr '\lamb.mat']);
  39. else
  40.     openData = imread('green.jpg');
  41.     closedData = imread('red.jpg');
  42.     save lamb.mat openData closedData;
  43. end
  44. %% 將上述參數(shù)作為應(yīng)用數(shù)據(jù),存入窗口對象內(nèi)
  45. setappdata(hObject, 'hasData', hasData);
  46. setappdata(hObject, 'strRec', strRec);
  47. setappdata(hObject, 'numRec', numRec);
  48. setappdata(hObject, 'numSend', numSend);
  49. setappdata(hObject, 'isShow', isShow);
  50. setappdata(hObject, 'isStopDisp', isStopDisp);
  51. setappdata(hObject, 'isHexDisp', isHexDisp);
  52. setappdata(hObject, 'isHexSend', isHexSend);
  53. setappdata(hObject, 'openData', openData);
  54. setappdata(hObject, 'closedData', closedData);
  55. %初始化串口狀態(tài)指示燈,串口燈默認為關(guān)閉狀態(tài)
  56. set(handles.lamb, 'cdata', closedData);

  57. guidata(hObject, handles);

  58. function varargout = serial_communication_OutputFcn(hObject, eventdata, handles)
  59. varargout{1} = handles.output;

  60. function com_Callback(hObject, ~, handles)

  61. function com_CreateFcn(hObject, eventdata, handles)
  62. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
  63.     set(hObject,'BackgroundColor','white');
  64. end

  65. function rate_Callback(hObject, eventdata, handles)

  66. function rate_CreateFcn(hObject, eventdata, handles)
  67. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
  68.     set(hObject,'BackgroundColor','white');
  69. end

  70. function jiaoyan_Callback(hObject, eventdata, handles)

  71. function jiaoyan_CreateFcn(hObject, eventdata, handles)
  72. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
  73.     set(hObject,'BackgroundColor','white');
  74. end

  75. function data_bits_Callback(hObject, eventdata, handles)

  76. function data_bits_CreateFcn(hObject, eventdata, handles)
  77. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
  78.     set(hObject,'BackgroundColor','white');
  79. end

  80. function stop_bits_Callback(hObject, eventdata, handles)

  81. function stop_bits_CreateFcn(hObject, eventdata, handles)
  82. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
  83.     set(hObject,'BackgroundColor','white');
  84. end

  85. function start_serial_Callback(hObject, eventdata, handles)
  86. %   【打開/關(guān)閉串口】按鈕的回調(diào)函數(shù)
  87. %    打開串口,并初始化相關(guān)參數(shù)
  88. %% 若按下【打開串口】按鈕,打開串口
  89. if get(hObject, 'value')
  90.     %% 獲取串口的端口名
  91.     com_n = sprintf('com%d', get(handles.com, 'value'));
  92.     %% 獲取波特率
  93.     rates = [300 600 1200 2400 4800 9600 19200 38400 43000 56000 57600 115200];
  94.     baud_rate = rates(get(handles.rate, 'value'));
  95.     %% 獲取校驗位設(shè)置
  96.     switch get(handles.jiaoyan, 'value')
  97.         case 1
  98.             jiaoyan = 'none';
  99.         case 2
  100.             jiaoyan = 'odd';
  101.         case 3
  102.             jiaoyan = 'even';
  103.     end
  104.     %% 獲取數(shù)據(jù)位個數(shù)
  105.     data_bits = 5 + get(handles.data_bits, 'value');
  106.     %% 獲取停止位個數(shù)
  107.     stop_bits = get(handles.stop_bits, 'value');
  108.     %% 創(chuàng)建串口對象
  109.     scom = serial(com_n);
  110.     %% 配置串口屬性,指定其回調(diào)函數(shù)
  111.     set(scom, 'BaudRate', baud_rate, 'Parity', jiaoyan, 'DataBits',...
  112.         data_bits, 'StopBits', stop_bits, 'BytesAvailableFcnCount', 10,...
  113.         'BytesAvailableFcnMode', 'byte', 'BytesAvailableFcn', {@bytes, handles},...
  114.         'TimerPeriod', 0.05, 'timerfcn', {@dataDisp, handles});
  115.     %% 將串口對象的句柄作為用戶數(shù)據(jù),存入窗口對象
  116.     set(handles.figure1, 'UserData', scom);
  117.     %% 嘗試打開串口
  118.     try
  119.         fopen(scom);  %打開串口
  120.     catch   % 若串口打開失敗,提示“串口不可獲得!”
  121.         msgbox('串口不可獲得!');
  122.         set(hObject, 'value', 0);  %彈起本按鈕
  123.         return;
  124.     end
  125.     %% 打開串口后,允許串口發(fā)送數(shù)據(jù),清空接收顯示區(qū),點亮串口狀態(tài)指示燈,
  126.     %% 并更改本按鈕文本為“關(guān)閉串口”
  127.     set(handles.period_send, 'Enable', 'on');          %啟用【自動發(fā)送】按鈕
  128.     set(handles.manual_send, 'Enable', 'on');  %啟用【手動發(fā)送】按鈕
  129.     set(handles.xianshi, 'string', '');                         %清空接收顯示區(qū)
  130.     set(handles.lamb, 'cdata', getappdata('openData')); %點亮串口狀態(tài)指示燈
  131.     set(hObject, 'String', '關(guān)閉串口');                  %設(shè)置本按鈕文本為“關(guān)閉串口”
  132. else  %若關(guān)閉串口
  133.     %% 停止并刪除定時器
  134.     t = timerfind;
  135.     if ~isempty(t)
  136.         stop(t);
  137.         delete(t);
  138.     end
  139.     %% 停止并刪除串口對象
  140.     scoms = instrfind;
  141.     stopasync(scoms);
  142.     fclose(scoms);
  143.     delete(scoms);
  144.     %% 禁用【自動發(fā)送】和【手動發(fā)送】按鈕,熄滅串口狀態(tài)指示燈
  145.     set(handles.period_send, 'Enable', 'off', 'value', 0); %禁用【自動發(fā)送】按鈕
  146.     set(handles.manual_send, 'Enable', 'off');  %禁用【手動發(fā)送】按鈕
  147.     set(handles.lamb, 'cdata', getappdata('closedData')); %熄滅串口狀態(tài)指示燈
  148.     set(hObject, 'String', '打開串口');                  %設(shè)置本按鈕文本為“打開串口”
  149. end

  150. function dataDisp(obj, event, handles)
  151. %        串口的TimerFcn回調(diào)函數(shù)
  152. %   串口數(shù)據(jù)顯示
  153. %% 獲取參數(shù)
  154. hasData = getappdata(handles.figure1, 'hasData'); %串口是否收到數(shù)據(jù)
  155. strRec = getappdata(handles.figure1, 'strRec');   %串口數(shù)據(jù)的字符串形式,定時顯示該數(shù)據(jù)
  156. numRec = getappdata(handles.figure1, 'numRec');   %串口接收到的數(shù)據(jù)個數(shù)
  157. %% 若串口沒有接收到數(shù)據(jù),先嘗試接收串口數(shù)據(jù)
  158. if ~hasData
  159.     bytes(obj, event, handles);
  160. end
  161. %% 若串口有數(shù)據(jù),顯示串口數(shù)據(jù)
  162. if hasData
  163.     %% 給數(shù)據(jù)顯示模塊加互斥鎖
  164.     %% 在執(zhí)行顯示數(shù)據(jù)模塊時,不接受串口數(shù)據(jù),即不執(zhí)行BytesAvailableFcn回調(diào)函數(shù)
  165.     setappdata(handles.figure1, 'isShow', true);
  166.     %% 若要顯示的字符串長度超過10000,清空顯示區(qū)
  167.     if length(strRec) > 10000
  168.         strRec = '';
  169.         setappdata(handles.figure1, 'strRec', strRec);
  170.     end
  171.     %% 顯示數(shù)據(jù)
  172.     set(handles.xianshi, 'string', strRec);
  173.     %% 更新接收計數(shù)
  174.     set(handles.rec,'string', numRec);
  175.     %% 更新hasData標志,表明串口數(shù)據(jù)已經(jīng)顯示
  176.     setappdata(handles.figure1, 'hasData', false);
  177.     %% 給數(shù)據(jù)顯示模塊解鎖
  178.     setappdata(handles.figure1, 'isShow', false);
  179. end

  180. function bytes(obj, ~, handles)
  181. %   串口的BytesAvailableFcn回調(diào)函數(shù)
  182. %   串口接收數(shù)據(jù)
  183. %% 獲取參數(shù)
  184. strRec = getappdata(handles.figure1, 'strRec'); %獲取串口要顯示的數(shù)據(jù)
  185. numRec = getappdata(handles.figure1, 'numRec'); %獲取串口已接收數(shù)據(jù)的個數(shù)
  186. isStopDisp = getappdata(handles.figure1, 'isStopDisp'); %是否按下了【停止顯示】按鈕
  187. isHexDisp = getappdata(handles.figure1, 'isHexDisp'); %是否十六進制顯示
  188. isShow = getappdata(handles.figure1, 'isShow');  %是否正在執(zhí)行顯示數(shù)據(jù)操作
  189. %% 若正在執(zhí)行數(shù)據(jù)顯示操作,暫不接收串口數(shù)據(jù)
  190. if isShow
  191.     return;
  192. end
  193. %% 獲取串口可獲取的數(shù)據(jù)個數(shù)
  194. n = get(obj, 'BytesAvailable');
  195. %% 若串口有數(shù)據(jù),接收所有數(shù)據(jù)
  196. if n
  197.     %% 更新hasData參數(shù),表明串口有數(shù)據(jù)需要顯示
  198.     setappdata(handles.figure1, 'hasData', true);
  199.     %% 讀取串口數(shù)據(jù)
  200.     a = fread(obj, n, 'uchar');
  201.     %% 若沒有停止顯示,將接收到的數(shù)據(jù)解算出來,準備顯示
  202.     if ~isStopDisp
  203.         %% 根據(jù)進制顯示的狀態(tài),解析數(shù)據(jù)為要顯示的字符串
  204.         if ~isHexDisp
  205.             c = char(a');
  206.         else
  207.             strHex = dec2hex(a')';
  208.             strHex2 = [strHex; blanks(size(a, 1))];
  209.             c = strHex2(:)';
  210.         end
  211.         %% 更新已接收的數(shù)據(jù)個數(shù)
  212.         numRec = numRec + size(a, 1);
  213.         %% 更新要顯示的字符串
  214.         strRec = [strRec c];
  215.     end
  216.     %% 更新參數(shù)
  217.     setappdata(handles.figure1, 'numRec', numRec); %更新已接收的數(shù)據(jù)個數(shù)
  218.     setappdata(handles.figure1, 'strRec', strRec); %更新要顯示的字符串
  219. end


  220. function qingkong_Callback(hObject, eventdata, handles)
  221. %% 清空要顯示的字符串
  222. setappdata(handles.figure1, 'strRec', '');
  223. %% 清空顯示
  224. set(handles.xianshi, 'String', '');

  225. function stop_disp_Callback(hObject, eventdata, handles)
  226. %% 根據(jù)【停止顯示】按鈕的狀態(tài),更新isStopDisp參數(shù)
  227. if get(hObject, 'Value')
  228.     isStopDisp = true;
  229. else
  230.     isStopDisp = false;
  231. end
  232. setappdata(handles.figure1, 'isStopDisp', isStopDisp);

  233. function radiobutton1_Callback(hObject, eventdata, handles)

  234. function radiobutton2_Callback(hObject, eventdata, handles)

  235. function togglebutton4_Callback(hObject, eventdata, handles)

  236. function hex_disp_Callback(hObject, eventdata, handles)
  237. %% 根據(jù)【十六進制顯示】復(fù)選框的狀態(tài),更新isHexDisp參數(shù)
  238. if get(hObject, 'Value')
  239.     isHexDisp = true;
  240. else
  241.     isHexDisp = false;
  242. end
  243. setappdata(handles.figure1, 'isHexDisp', isHexDisp);

  244. function manual_send_Callback(hObject, eventdata, handles)
  245. scom = get(handles.figure1, 'UserData');
  246. numSend = getappdata(handles.figure1, 'numSend');
  247. val = get(handles.sends, 'UserData');
  248. numSend = numSend + length(val);
  249. set(handles.trans, 'string', num2str(numSend));
  250. setappdata(handles.figure1, 'numSend', numSend);
  251. %% 若要發(fā)送的數(shù)據(jù)不為空,發(fā)送數(shù)據(jù)
  252. if ~isempty(val)
  253.     %% 設(shè)置倒計數(shù)的初值
  254.     n = 1000;
  255.     while n
  256.         %% 獲取串口的傳輸狀態(tài),若串口沒有正在寫數(shù)據(jù),寫入數(shù)據(jù)
  257.         str = get(scom, 'TransferStatus');
  258.         if ~(strcmp(str, 'write') || strcmp(str, 'read&write'))
  259.             fwrite(scom, val, 'uint8', 'async'); %數(shù)據(jù)寫入串口
  260.             break;
  261.         end
  262.         n = n - 1; %倒計數(shù)
  263.     end
  264. end


  265. function clear_send_Callback(hObject, eventdata, handles)
  266. %% 清空發(fā)送區(qū)
  267. set(handles.sends, 'string', '')
  268. %% 更新要發(fā)送的數(shù)據(jù)
  269. set(handles.sends, 'UserData', []);

  270. function checkbox2_Callback(hObject, eventdata, handles)


  271. function period_send_Callback(hObject, eventdata, handles)
  272. %   【自動發(fā)送】按鈕的Callback回調(diào)函數(shù)
  273. %% 若按下【自動發(fā)送】按鈕,啟動定時器;否則,停止并刪除定時器
  274. if get(hObject, 'value')
  275.     t1 = 0.001 * str2double(get(handles.period1, 'string'));%獲取定時器周期
  276.     t = timer('ExecutionMode','fixedrate', 'Period', t1, 'TimerFcn',...
  277.         {@manual_send_Callback, handles}); %創(chuàng)建定時器
  278.     set(handles.period1, 'Enable', 'off'); %禁用設(shè)置定時器周期的Edit Text對象
  279.     set(handles.sends, 'Enable', 'inactive'); %禁用數(shù)據(jù)發(fā)送編輯區(qū)
  280.     start(t);  %啟動定時器
  281. else
  282.     set(handles.period1, 'Enable', 'on'); %啟用設(shè)置定時器周期的Edit Text對象
  283.     set(handles.sends, 'Enable', 'on');   %啟用數(shù)據(jù)發(fā)送編輯區(qū)
  284.     t = timerfind; %查找定時器
  285.     stop(t); %停止定時器
  286.     delete(t); %刪除定時器
  287. end

  288. function period1_Callback(hObject, eventdata, handles)

  289. function period1_CreateFcn(hObject, eventdata, handles)
  290. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
  291.     set(hObject,'BackgroundColor','white');
  292. end

  293. function clear_count_Callback(hObject, eventdata, handles)
  294. %% 計數(shù)清零,并更新參數(shù)numRec和numSend
  295. set([handles.rec, handles.trans], 'string', '0')
  296. setappdata(handles.figure1, 'numRec', 0);
  297. setappdata(handles.figure1, 'numSend', 0);

  298. function copy_data_Callback(hObject, eventdata, handles)
  299. %% 設(shè)置是否允許復(fù)制接收數(shù)據(jù)顯示區(qū)內(nèi)的數(shù)據(jù)
  300. if get(hObject,'value')
  301.     set(handles.xianshi, 'enable', 'on');
  302. else
  303.     set(handles.xianshi, 'enable', 'inactive');
  304. end

  305. function figure1_CloseRequestFcn(hObject, eventdata, handles)
  306. %   關(guān)閉窗口時,檢查定時器和串口是否已關(guān)閉
  307. %   若沒有關(guān)閉,則先關(guān)閉
  308. %% 查找定時器
  309. t = timerfind;
  310. %% 若存在定時器對象,停止并關(guān)閉
  311. if ~isempty(t)
  312.     stop(t);  %若定時器沒有停止,則停止定時器
  313.     delete(t);
  314. end
  315. %% 查找串口對象
  316. scoms = instrfind;
  317. %% 嘗試停止、關(guān)閉刪除串口對象
  318. try
  319.     stopasync(scoms);
  320.     fclose(scoms);
  321.     delete(scoms);
  322. end
  323. %% 關(guān)閉窗口
  324. delete(hObject);

  325. function hex_send_Callback(hObject, eventdata, handles)
  326. %% 根據(jù)【十六進制發(fā)送】復(fù)選框的狀態(tài),更新isHexSend參數(shù)
  327. if get(hObject,'value')
  328.     isHexSend = true;
  329. else
  330.     isHexSend = false;
  331. end
  332. setappdata(handles.figure1, 'isHexSend', isHexSend);
  333. %% 更新要發(fā)送的數(shù)據(jù)
  334. sends_Callback(handles.sends, eventdata, handles);


  335. function sends_Callback(hObject, eventdata, handles)
  336. %   數(shù)據(jù)發(fā)送編輯區(qū)的Callback回調(diào)函數(shù)
  337. %   更新要發(fā)送的數(shù)據(jù)
  338. %% 獲取數(shù)據(jù)發(fā)送編輯區(qū)的字符串
  339. str = get(hObject, 'string');
  340. %% 獲取參數(shù)isHexSend的值
  341. isHexSend = getappdata(handles.figure1, 'isHexSend');
  342. if ~isHexSend %若為ASCII值形式發(fā)送,直接將字符串轉(zhuǎn)化為對應(yīng)的數(shù)值
  343.     val = double(str);
  344. else  %若為十六進制發(fā)送,獲取要發(fā)送的數(shù)據(jù)
  345.     n = find(str == ' ');   %查找空格
  346.     n =[0 n length(str)+1]; %空格的索引值
  347.     %% 每兩個相鄰空格之間的字符串為數(shù)值的十六進制形式,將其轉(zhuǎn)化為數(shù)值
  348.     for i = 1 : length(n)-1
  349.         temp = str(n(i)+1 : n(i+1)-1);  %獲得每段數(shù)據(jù)的長度,為數(shù)據(jù)轉(zhuǎn)換為十進制做準備
  350.         if ~rem(length(temp), 2)
  351.             b{i} = reshape(temp, 2, [])'; %將每段十六進制字符串轉(zhuǎn)化為單元數(shù)組
  352.         else
  353.             break;
  354.         end
  355.     end
  356.     val = hex2dec(b)';     %將十六進制字符串轉(zhuǎn)化為十進制數(shù),等待寫入串口
  357. end
  358. %% 更新要顯示的數(shù)據(jù)
  359. set(hObject, 'UserData', val);


  360. function lamb_Callback(hObject, eventdata, handles)
復(fù)制代碼

所有資料51hei提供下載:
serial_communication.rar (34.92 KB, 下載次數(shù): 214)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:469086 發(fā)表于 2020-1-6 21:52 | 只看該作者
非常給力!
回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
地板
ID:848550 發(fā)表于 2020-11-24 18:13 | 只看該作者
請問野人串口調(diào)試助手的數(shù)據(jù)指定文件存儲是怎么實現(xiàn)呢?
回復(fù)

使用道具 舉報

5#
無效樓層,該帖已經(jīng)被刪除
6#
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
亚洲精品乱码久久久久久| 美女网站视频在线观看| 亚洲茄子视频| 亚洲av无码乱码国产麻豆| 中文字幕av日韩精品| 日韩欧美电影在线| 视频一区国产视频| v天堂福利视频在线观看| 大又大又粗又硬又爽少妇毛片| 国产精选久久久久久| 亚洲欧美一区二区视频| 亚洲国产合集| 在线午夜视频| 国产一区二区波多野结衣 | 婷婷中文字幕综合| 欧美1区2区视频| 成年在线观看免费人视频| 久久综合福利| 日韩精品免费视频| 91亚洲精品久久久蜜桃| 日本一区二区中文字幕| 天天摸在线视频| 国产高清久久久| 午夜视频在线播放| 欧美熟妇另类久久久久久多毛| 2019中文字幕在线观看| 亚洲成人av福利| 欧美一区=区| 免费在线观看一区| 狠狠搞狠狠干| 中文字幕在线观看视频网站| 熟妇人妻va精品中文字幕| 91爱爱小视频k| 亚洲九九九在线观看| 久久久久久免费网| 成人影院在线| 老司机精品影院| 欧美白人最猛性xxxxx| 国产精品麻豆一区| 8x8ⅹ国产精品一区二区二区| 欧美大片在线影院| 精品免费在线观看| 欧美国产日产图区| 在线日本高清免费不卡| 欧美人与性动交xxⅹxx| 国产三级av在线| 亚洲成在人线免费视频| av不卡中文字幕| 久久婷婷五月综合色国产香蕉| 欧美中文字幕在线观看| 日韩一区二区在线看| 久久先锋影音av鲁色资源网| 欧美1区2区| 日韩精品午夜| 久久男人天堂| 四色永久网址| 亚洲成人偷拍自拍| 人人妻人人澡人人爽精品日本| 免费黄色在线网址| 欧美精品第三页| av在线播放天堂| 精品剧情v国产在线观看在线| www.日本不卡| 在线成人av| 午夜精品久久| 欧美日韩亚洲一区三区| 久久av网站| 国产激情在线视频| 成本人h片动漫网站在线观看| 亚洲视频在线观看不卡| 人妻妺妺窝人体色www聚色窝| av免费观看在线| 放荡的美妇在线播放| 国产精品自拍视频在线| 91制片厂免费观看| 91天堂在线视频| 色噜噜亚洲精品中文字幕| 色综合天天做天天爱| 久久午夜电影网| 久久精品夜色噜噜亚洲aⅴ| 精品无人乱码一区二区三区| 精品日韩av| 日本一二区视频| xxxxxx国产精品视频| 国内精品久久久久久久久久久| 国产男女裸体做爰爽爽| 日本在线免费观看| 五月激情四射婷婷| 欧美色图亚洲天堂| 国产毛片久久久久久久| 国产免费嫩草影院| 成年人网站免费在线观看| 亚洲第一色av| 男人亚洲天堂网| 老司机激情视频| 久久成人免费观看| 成年人三级视频| 午夜精品短视频| 国产中文一区二区| 国产精品1234| 久久久亚洲天堂| 中文字幕一区二区三区电影| 91精品在线一区二区| 黄色成人在线播放| 欧美美女一区二区三区| 欧美日韩在线视频一区| 亚洲男同性视频| 国产亚洲福利社区一区| 成人精品视频网站| 国产一区二区三区黄视频 | 678在线观看视频| 成人在线观看黄色| 免费在线看污片| 亚洲精品成人一区| 亚洲成人午夜在线| 麻豆乱码国产一区二区三区| 亚洲精品美女免费| 欧美日韩久久不卡| 在线视频国内一区二区| 婷婷一区二区三区| 国产高清不卡一区二区| 久久精品日产第一区二区三区高清版| 一区二区三区免费观看| 欧美一区二区三区免费观看视频 | eeuss一区二区三区| 91九色在线免费视频| 91香蕉视频在线下载| 正在播放精油久久| 激情黄色小视频| 亚洲精品第三页| 女人十八毛片嫩草av| 人人妻人人爽人人澡人人精品| 日韩乱码一区二区| 好吊视频一区二区三区| 在线天堂中文www官网| 亚洲天堂在线播放| eeuss在线播放| 视频在线国产| 成年人在线观看| 特级xxxxx欧美| 香蕉久久一区二区三区| 99热免费在线| 国产第一页在线| 欧美亚洲黄色| www国产精品| 北条麻妃一区二区三区在线观看 | 少妇的滋味中文字幕bd| 国产毛片一区二区三区va在线| 91tv在线观看| 日美av在线| 在线观看av片| 美女黄视频在线观看| 美女精品国产| 欧美日韩激情四射| zjzjzjzjzj亚洲女人| 国产又黄又猛又粗又爽| 日韩av女优在线观看| 日本综合一区二区三区| 亚洲美女在线免费观看| 亚洲精品国产嫩草在线观看| 日韩精品免费视频一区二区三区| 欧美挤奶吃奶水xxxxx| 久久99国产精一区二区三区| 午夜精品免费| 久久久不卡影院| 国产精品国精产品一二| 亚洲精品大片| 日韩影院免费视频| 9色porny自拍视频一区二区| 欧美综合在线视频| 91国产视频在线播放| japanese在线播放| 色片在线免费观看| 日本二区在线观看| 久久精品国产亚洲av无码娇色 | 日本桃色视频| 久久99国产精品二区高清软件| 国产亚洲高清视频| 不卡欧美aaaaa| 国产一区二区高清| 久久69国产一区二区蜜臀| 久热av在线| av小片在线| 日韩极品在线| 老鸭窝毛片一区二区三区| 国产传媒日韩欧美成人| 在线影视一区二区三区| 91成人在线播放| 日本网站免费在线观看| 亚洲精品视频在线观看免费视频| 亚州av在线播放| 久久经典视频| 不卡一区2区| 国产精品青草综合久久久久99| 色狠狠色噜噜噜综合网| 在线观看欧美视频| 国产精品免费小视频| 在线视频精品一区| 青青青视频在线播放| 国产精品伦一区二区三区视频| 欧美另类极限扩张| 欧美理伦片在线播放| 久久久久久夜精品精品免费| 在线电影中文日韩| 久久www视频| 成人毛片在线播放| 动漫黄在线观看| 欧美精选视频在线观看| 粉嫩久久99精品久久久久久夜| 亚洲不卡av一区二区三区| 精品亚洲一区二区三区在线观看| 欧美激情第六页| 一级片免费在线观看视频| 国产一级生活片| 迷人的保姆韩国| 成人在线二区| 在线亚洲精品| 午夜久久久久久久久| 国产精品久久国产精品99gif| 国产美女在线一区| 乱h高h女3p含苞待放| 丁香激情五月婷婷| 精品成人自拍视频| 国产69精品久久777的优势| 亚洲色无码播放| 国产自产在线视频一区| 中国1级黄色片| http://嫩草影院| 国内精品视频在线观看| 2023国产精品视频| 亚洲精品国产综合久久| 免费成人深夜夜行网站视频| 日韩av免费播放| 美女羞羞视频在线观看| 美女性感视频久久| 欧美人伦禁忌dvd放荡欲情| 欧美日韩一级片网站| 久久一本综合| 97精品久久久午夜一区二区三区| 亚洲欧美中文日韩在线| 国内自拍中文字幕| 中文字幕在线播放日韩| 啊啊啊好爽视频| 精品免费av| 91福利在线看| 亚洲欧洲精品一区二区| 一区二区三区黄| 国产啊啊啊视频在线观看| 国产福利一区二区三区在线视频| 久久久91精品国产一区不卡| 国产精品久久成人免费观看| 中文字幕视频免费观看| 无码中文字幕色专区| 午夜激情福利电影| 成人做爰高清视频网站| 亚洲欧美一区在线| 欧美r级电影在线观看| 毛片在线视频播放| 久色视频在线观看| 日本电影在线观看| 性8sex亚洲区入口| 亚洲天堂av网| www.国产福利| av美女网站| 午夜欧美精品久久久久久久| 亚洲大胆人体视频| 26uuu成人| www.激情五月| 欧美激情二区| 国产成人免费高清| 57pao国产成人免费| 亚洲午夜激情影院| 被弄出白浆喷水了视频| 高潮久久久久久久久久久久久久| av不卡一区二区三区| 国产精品嫩草影院一区二区| 丰满少妇高潮久久三区| а√中文在线8| 久久久国产综合精品女国产盗摄| 成人福利网站在线观看| 中文字幕成人动漫| 韩国福利在线| 性高湖久久久久久久久| 久久伊人精品视频| 精品无人区无码乱码毛片国产| 伊人影院在线播放| 成人午夜精品一区二区三区| 国产精品午夜视频| 精品乱码一区内射人妻无码| 91高清在线| 日韩精品一二区| 午夜免费在线观看精品视频| 国产免费无码一区二区| 一级美女在线| 亚洲第一黄色| 久久福利视频网| 欧美爱爱小视频| 欧美日韩在线观看首页| 天天色综合天天| 91九色在线观看视频| av第一福利大全导航| 青青国产91久久久久久| 日韩亚洲精品视频| 在线观看免费视频污| 成人精品第一区二区三区| 综合天堂av久久久久久久| 精品国产一区二区三区四区四 | 日韩av片子| 久久亚洲精品中文字幕冲田杏梨| 国产馆在线观看| av资源在线播放| 色婷婷精品大在线视频| 伊人国产在线视频| 欧美成人免费| 国产精品视频免费看| www.成人三级视频| 人妻少妇精品无码专区久久| 精品国产视频| 免费成人高清视频| 欧美 日韩 成人| 在线看国产视频| 国产欧美精品一区aⅴ影院| 一区二区精品免费视频| 欧美一级性视频| 成人免费电影网址| 美女少妇精品视频| 中文字幕免费视频观看| 性欧美lx╳lx╳| 久久精品国产亚洲一区二区| 日韩成人免费在线视频| 一区中文字幕电影| 91精品国产一区二区三区| 国产二级一片内射视频播放| 男女激情片在线观看| 国产午夜精品一区二区| 人妻互换免费中文字幕| 99成人国产精品视频| 麻豆成人av在线| 国产精品第10页| 蜜臀久久99精品久久久| 99精品热6080yy久久| 亚洲一区二区在线播放| 国产精品国产av| 最新精品在线| 精品国模在线视频| 国产情侣小视频| 色婷婷综合网| 国产精品亚洲一区二区三区| 综合区小说区图片区在线一区| 久久九九电影| 欧美大陆一区二区| 插菊花综合1| 国产精品毛片a∨一区二区三区| 极品美女扒开粉嫩小泬| 国产高清一区在线观看| 国产精品天美传媒| 免费观看成人在线视频| 国产美女免费观看| 国产成人精品1024| 亚洲精品无人区| 国产对白在线正在播放| 精品国产乱码久久久久久婷婷| 青青草视频网站| 欧美视频精品| 欧美黑人一级爽快片淫片高清| www.国产三级| 日韩国产精品久久| dy888午夜| 最新真实国产在线视频| 日韩一级片在线播放| 国产91av视频| 国产精品久久久久久影院8一贰佰| 欧美激情国产精品| 婷婷伊人综合中文字幕| 在线观看不卡| 欧美久久久久久久| 免费看成年人视频在线观看| 色哟哟一区二区三区| caoporn91| 亚洲国产一区二区在线观看 | 国产精品久久久免费观看| 大片免费在线观看| 亚洲第一av在线| 中文字幕在线播放av| 性xx色xx综合久久久xx| 亚洲啊啊啊啊啊| 超碰在线免费公开| 国产一区二区三区丝袜| 日韩成人av毛片| 国产在线不卡| 国产在线观看91精品一区| 日本精品一二区| 成人午夜视频在线| 麻豆一区二区三区视频| 久久天堂av| 欧美影院在线播放| 九九热在线视频免费观看| 成人毛片老司机大片| 九色91popny| 性网站在线观看|