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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7556|回復: 2
收起左側

MATLAB實現串口調試助手源程序

[復制鏈接]
ID:519257 發表于 2019-4-23 12:44 | 顯示全部樓層 |閱讀模式
程序在壓縮包內
0.png

MATLAB源程序如下:
  1. function varargout = serial_communication(varargin)
  2. %   作者:羅
  3. %   功能;串口收發
  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. %% 初始化參數
  27. hasData = false;         %表征串口是否接收到數據
  28. isShow = false;          %表征是否正在進行數據顯示,即是否正在執行函數dataDisp
  29. isStopDisp = false;          %表征是否按下了【停止顯示】按鈕
  30. isHexDisp = false;           %表征是否勾選了【十六進制顯示】
  31. isHexSend = false;        %表征是否勾選了【十六進制發送】
  32. numRec = 0;            %接收字符計數
  33. numSend = 0;           %發送字符計數
  34. strRec = '';                   %已接收的字符串
  35. %讀取圖片數據,只在第一次運行時讀取
  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. %% 將上述參數作為應用數據,存入窗口對象內
  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. %初始化串口狀態指示燈,串口燈默認為關閉狀態
  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. %   【打開/關閉串口】按鈕的回調函數
  87. %    打開串口,并初始化相關參數
  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.     %% 獲取校驗位設置
  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.     %% 獲取數據位個數
  105.     data_bits = 5 + get(handles.data_bits, 'value');
  106.     %% 獲取停止位個數
  107.     stop_bits = get(handles.stop_bits, 'value');
  108.     %% 創建串口對象
  109.     scom = serial(com_n);
  110.     %% 配置串口屬性,指定其回調函數
  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.     %% 將串口對象的句柄作為用戶數據,存入窗口對象
  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.     %% 打開串口后,允許串口發送數據,清空接收顯示區,點亮串口狀態指示燈,
  126.     %% 并更改本按鈕文本為“關閉串口”
  127.     set(handles.period_send, 'Enable', 'on');          %啟用【自動發送】按鈕
  128.     set(handles.manual_send, 'Enable', 'on');  %啟用【手動發送】按鈕
  129.     set(handles.xianshi, 'string', '');                         %清空接收顯示區
  130.     set(handles.lamb, 'cdata', getappdata('openData')); %點亮串口狀態指示燈
  131.     set(hObject, 'String', '關閉串口');                  %設置本按鈕文本為“關閉串口”
  132. else  %若關閉串口
  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.     %% 禁用【自動發送】和【手動發送】按鈕,熄滅串口狀態指示燈
  145.     set(handles.period_send, 'Enable', 'off', 'value', 0); %禁用【自動發送】按鈕
  146.     set(handles.manual_send, 'Enable', 'off');  %禁用【手動發送】按鈕
  147.     set(handles.lamb, 'cdata', getappdata('closedData')); %熄滅串口狀態指示燈
  148.     set(hObject, 'String', '打開串口');                  %設置本按鈕文本為“打開串口”
  149. end

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

  180. function bytes(obj, ~, handles)
  181. %   串口的BytesAvailableFcn回調函數
  182. %   串口接收數據
  183. %% 獲取參數
  184. strRec = getappdata(handles.figure1, 'strRec'); %獲取串口要顯示的數據
  185. numRec = getappdata(handles.figure1, 'numRec'); %獲取串口已接收數據的個數
  186. isStopDisp = getappdata(handles.figure1, 'isStopDisp'); %是否按下了【停止顯示】按鈕
  187. isHexDisp = getappdata(handles.figure1, 'isHexDisp'); %是否十六進制顯示
  188. isShow = getappdata(handles.figure1, 'isShow');  %是否正在執行顯示數據操作
  189. %% 若正在執行數據顯示操作,暫不接收串口數據
  190. if isShow
  191.     return;
  192. end
  193. %% 獲取串口可獲取的數據個數
  194. n = get(obj, 'BytesAvailable');
  195. %% 若串口有數據,接收所有數據
  196. if n
  197.     %% 更新hasData參數,表明串口有數據需要顯示
  198.     setappdata(handles.figure1, 'hasData', true);
  199.     %% 讀取串口數據
  200.     a = fread(obj, n, 'uchar');
  201.     %% 若沒有停止顯示,將接收到的數據解算出來,準備顯示
  202.     if ~isStopDisp
  203.         %% 根據進制顯示的狀態,解析數據為要顯示的字符串
  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.         %% 更新已接收的數據個數
  212.         numRec = numRec + size(a, 1);
  213.         %% 更新要顯示的字符串
  214.         strRec = [strRec c];
  215.     end
  216.     %% 更新參數
  217.     setappdata(handles.figure1, 'numRec', numRec); %更新已接收的數據個數
  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. %% 根據【停止顯示】按鈕的狀態,更新isStopDisp參數
  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. %% 根據【十六進制顯示】復選框的狀態,更新isHexDisp參數
  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. %% 若要發送的數據不為空,發送數據
  252. if ~isempty(val)
  253.     %% 設置倒計數的初值
  254.     n = 1000;
  255.     while n
  256.         %% 獲取串口的傳輸狀態,若串口沒有正在寫數據,寫入數據
  257.         str = get(scom, 'TransferStatus');
  258.         if ~(strcmp(str, 'write') || strcmp(str, 'read&write'))
  259.             fwrite(scom, val, 'uint8', 'async'); %數據寫入串口
  260.             break;
  261.         end
  262.         n = n - 1; %倒計數
  263.     end
  264. end


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

  270. function checkbox2_Callback(hObject, eventdata, handles)


  271. function period_send_Callback(hObject, eventdata, handles)
  272. %   【自動發送】按鈕的Callback回調函數
  273. %% 若按下【自動發送】按鈕,啟動定時器;否則,停止并刪除定時器
  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}); %創建定時器
  278.     set(handles.period1, 'Enable', 'off'); %禁用設置定時器周期的Edit Text對象
  279.     set(handles.sends, 'Enable', 'inactive'); %禁用數據發送編輯區
  280.     start(t);  %啟動定時器
  281. else
  282.     set(handles.period1, 'Enable', 'on'); %啟用設置定時器周期的Edit Text對象
  283.     set(handles.sends, 'Enable', 'on');   %啟用數據發送編輯區
  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. %% 計數清零,并更新參數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. %% 設置是否允許復制接收數據顯示區內的數據
  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. %   關閉窗口時,檢查定時器和串口是否已關閉
  307. %   若沒有關閉,則先關閉
  308. %% 查找定時器
  309. t = timerfind;
  310. %% 若存在定時器對象,停止并關閉
  311. if ~isempty(t)
  312.     stop(t);  %若定時器沒有停止,則停止定時器
  313.     delete(t);
  314. end
  315. %% 查找串口對象
  316. scoms = instrfind;
  317. %% 嘗試停止、關閉刪除串口對象
  318. try
  319.     stopasync(scoms);
  320.     fclose(scoms);
  321.     delete(scoms);
  322. end
  323. %% 關閉窗口
  324. delete(hObject);

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


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


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

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


評分

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

查看全部評分

回復

使用道具 舉報

ID:469086 發表于 2020-1-6 21:52 | 顯示全部樓層
非常給力!
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:848550 發表于 2020-11-24 18:13 | 顯示全部樓層
請問野人串口調試助手的數據指定文件存儲是怎么實現呢?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
久久中文字幕免费| 久久在线视频| 欧美日韩经典丝袜| 飘雪影院手机免费高清版在线观看 | 日韩精品免费在线视频| 91精品免费观看| 欧美日韩国产大片| 欧美人狂配大交3d怪物一区| 欧美日韩国产在线看| 亚洲色图制服诱惑| 色一情一乱一伦一区二区三区 | 久久久香蕉视频| 青花影视在线观看免费高清| 任我爽在线视频| 黑人狂躁日本娇小| 亚洲伦理一区二区三区| 毛片aaaaaa| 小早川怜子一区二区的演员表| 成人做爰视频网站| 久操免费在线视频| 久久青青草视频| 中文字幕制服诱惑| av加勒比在线| 婷婷在线观看视频| 欧美另类色图| 日本激情五月| 国产黄色av免费看| 最近最新mv在线观看免费高清| 日韩一区av| 国产黄大片在线观看画质优化| 美女尤物在线视频| 88xx成人免费观看视频库| 久久电影天堂| 极品一区美女高清| 香蕉精品视频在线观看| 中日韩男男gay无套| 日本成人在线不卡视频| 成人免费视频视频在线观看免费 | 亚洲人被黑人高潮完整版| 亚洲18色成人| 欧美剧在线免费观看网站| 亚洲电影在线观看| 日韩在线免费高清视频| 97视频在线观看播放| 成人黄色免费在线观看| 加勒比在线一区二区三区观看| 日韩精品一线二线三线| 精品无码国产一区二区三区av| 激情网站五月天| 97人人模人人爽人人澡| 李宗瑞91在线正在播放| 日韩女优一区二区| 99re热视频| 顶级嫩模一区二区三区| 成年黄网站在线观看免费| 又黄又www的网站| av在线播放国产| 曰本一区二区| 日韩一区三区| 免费成人av在线播放| 久久亚洲精品国产精品紫薇| 亚洲电影中文字幕在线观看| 日韩美女视频一区二区在线观看| 深夜福利日韩在线看| 国产精品久久久久久久天堂| 欧美日本亚洲| 日本女优爱爱视频| 亚洲最大激情中文字幕| 农村寡妇一区二区三区| 毛片在线视频播放| 精品人妻一区二区免费| 欧美极品aaaaabbbbb| 99精品人妻无码专区在线视频区| 精品xxxxxbbbb欧美中文| av激情网站| 久久五月精品中文字幕| 黑色丝袜福利片av久久| 亚洲免费精品| 国产喂奶挤奶一区二区三区| 欧美性猛片aaaaaaa做受| 最近2019中文字幕一页二页 | 91夜夜未满十八勿入爽爽影院| 亚洲一区三区视频在线观看| 特黄特黄一级片| 激情四射综合网| 香蕉视频免费看| 男男互摸gay网站| 深夜国产在线播放| 久久久久久久久久久久久久久久久久久久| 亚洲成人直播| 欧美激情中文不卡| 欧美一区日本一区韩国一区| 97免费在线视频| 亚洲高清在线观看一区| 久久综合桃花网| 日本午夜视频在线观看| 亚洲精品天堂在线| 欧洲一区av| 亚洲一区二区三区中文字幕在线观看 | 91手机在线视频| 国产精品亚洲a| 欧美人妻一区二区| 性欧美大胆高清视频| 污网站免费在线观看| 日韩伦理一区二区| 老**午夜毛片一区二区三区| 一区二区三区在线播放| 日韩精品免费在线视频| 99热国产免费| 岛国av免费在线| 国产午夜麻豆影院在线观看| 女同性互吃奶乳免费视频| 成人免费高清| 视频在线国产| 久久sese| 夜久久久久久| 亚洲一区二区在线观看视频| 日韩一区二区三区国产| 茄子视频成人在线观看| 97人妻天天摸天天爽天天| 国产精品无码久久久久成人app| 99热播在线观看| 欧美大片高清| 久久不射网站| 色悠久久久久综合欧美99| 97色在线观看免费视频| 69精品丰满人妻无码视频a片| 免费看的黄色网| 婷婷综合久久中文字幕蜜桃三电影 | 欧美凹凸一区二区三区视频| 美女被艹视频网站| 精品久久人妻av中文字幕| 日本视频二区| 岛国成人av| 99re免费视频精品全部| 亚洲国产古装精品网站| 精品国产一区二区三区四区精华 | 久久99欧美| 黄色网址在线视频| 亚洲成人在线电影| 波多野结衣网站| www.操.com| 免费成人黄色网| 国产毛片精品国产一区二区三区| 欧美一级高清片| 91视频最新| 久久丫精品国产亚洲av不卡| 亚洲男人的天堂成人| 2021国产在线| 一区二区91| 欧美日韩精品二区第二页| 国产在线精品成人一区二区三区| 97人人模人人爽人人澡| 成人综合社区| 国产精品蜜芽在线观看| 久热re这里精品视频在线6| 欧美日韩精品欧美日韩精品一| aa成人免费视频| 亚洲最大成人综合网| 岳张嘴把我的精子吞下去| 日韩制服一区| 成人激情av网| 久久精品国产69国产精品亚洲 | 日日摸日日碰夜夜爽无码| 色一情一乱一伦| 国产污污在线观看| 日韩欧美大片| 激情久久av一区av二区av三区| 国产精品久久99久久| 亚洲少妇一区二区| 亚洲国产av一区二区三区| 国产女王在线**视频| 先锋资源久久| 欧美精品三级日韩久久| 欧美人与物videos另类| 五月天婷婷综合网| 四虎电影院在线观看| 欧美日韩久久| 欧美日韩成人在线| 四虎一区二区| 一级一片免费看| 久草免费在线| 毛片av一区二区三区| 亚洲精品资源在线| 免费高清在线观看免费| 手机av在线免费观看| 免费看男女www网站入口在线| 国产精品99久久久久久有的能看| 中文字幕欧美精品日韩中文字幕| 黄色av免费在线播放| 中文字幕色视频| 亚洲伦理一区二区| 国产精品免费观看视频| 国产精品久久久久久av福利| 久久精品视频18| 黄色一级影院| 亚洲茄子视频| 在线亚洲欧美视频| а 天堂 在线| 五月天黄色网址| 妖精视频一区二区三区| 亚洲sss视频在线视频| 国产女主播一区二区| 国产污视频在线看| 在线国产91| 国产精品资源在线看| 欧美国产日韩一区二区三区| 91精品啪在线观看国产| 免费在线播放av| 欧美日韩国产综合网| 亚洲国产精品99久久| 日本老熟妇毛茸茸| 韩国视频一区| 精品国产一区二区三区香蕉沈先生| 日本精品视频一区二区三区| 综合久久国产| 无码精品在线观看| 日韩在线精品强乱中文字幕| 午夜免费久久看| 日韩欧美www| 成人高清dvd| 久久久一区二区三区不卡| 国产精品极品在线观看| 色94色欧美sute亚洲13| 欧美日韩dvd| 色图欧美色图| 成人免费电影网址| 欧美r级在线观看| 亚洲 欧美 日韩系列| 奇米色在线视频| 极品av少妇一区二区| 视频直播国产精品| 日韩在线免费观看av| 日韩av视屏| 成人免费看视频| 成人激情在线播放| 黄色污污视频软件| 欧美日韩免费电影| 在线亚洲人成电影网站色www| 成人免费看片'免费看| 欧美色图欧美色图| 日韩电影免费网站| 亚洲日本aⅴ片在线观看香蕉| 99riav国产精品视频| 亚欧精品一区| 国产精品一区二区在线观看不卡 | 日本三区在线观看| h片在线观看免费| 亚洲免费一区二区| 91精品91久久久久久| 欧美黄片一区二区三区| av电影院在线看| 亚洲大型综合色站| 国产资源在线视频| 免费羞羞视频网站| 国产精品996| 91国产在线播放| 草草视频在线播放| 免费视频亚洲| y97精品国产97久久久久久| 亚洲一级片在线播放| 色黄网站在线观看| 疯狂蹂躏欧美一区二区精品| 日韩av资源在线| 神马午夜dy888| 久久夜色精品国产欧美乱极品| 欧美日韩日本网| 麻豆精品密在线观看| 在线播放日韩| 国产精彩精品视频| 99精品久久久久久中文字幕| 小嫩嫩12欧美| 久久久精品日本| 国产又大又黄又粗| 福利电影一区| 中文欧美在线视频| 久久精品视频国产| 麻豆精品国产| 国产视频亚洲精品| 91日韩中文字幕| 草莓视频成人appios| 欧美一二三在线| aaaaa级少妇高潮大片免费看| 色老头在线观看| 欧美日韩在线视频一区| 国产原创精品在线| 91激情在线| 午夜成人在线视频| 手机在线国产视频| 在线a人片免费观看视频| 午夜电影一区二区| 亚洲av无一区二区三区久久| 免费在线看黄色| 一本大道av一区二区在线播放| 久久精品亚洲天堂| 91国内在线| 欧美性xxxxxx少妇| 老司机福利av| 成人在线视频免费看| 亚洲女人天堂色在线7777| 免费一级特黄特色大片| 欧美sss在线视频| 欧美黄色成人网| 国产www免费观看| 亚洲午夜极品| 91免费在线观看网站| 国产麻豆精品入口在线观看| 蜜桃精品视频在线| 日韩福利影院| yy4480电影网| 一区二区三区四区中文字幕| 一区二区三区 欧美| 麻豆影视在线观看_| 欧美午夜在线一二页| 亚洲精品乱码久久久久久久久久久久| 天天综合网站| 伊是香蕉大人久久| 亚洲一级av毛片| 亚洲精品四区| 国产在线精品一区二区中文| 蜜桃视频涩涩| 亚洲国产高清aⅴ视频| 天天色综合天天色| 国产盗摄在线视频网站| 久久久人人人| 欧美日韩免费高清| 日本aⅴ写真网站免费| 亚洲综合偷拍欧美一区色| 佐山爱在线视频| 小黄鸭精品aⅴ导航网站入口| 亚洲色图激情小说| 国产一区二区视频免费观看| 极品av少妇一区二区| 久久久久se| 免费福利影院| 亚洲大型综合色站| 亚洲女优在线观看| 久久aimee| 色婷婷av一区二区三区久久| 国产男男gay网站| 日本系列欧美系列| 麻豆一区二区三区在线观看| 韩国免费在线视频| 欧美一区二区女人| 99精品人妻国产毛片| 亚洲精品观看| 国产成人av网址| 色猫视频免费观看| 亚洲精品乱码久久久久| 亚洲国产精品成人综合久久久| 国产丝袜一区| 91丨九色丨国产在线| heyzo在线观看| 色先锋资源久久综合| 久久国产精品波多野结衣av| 国产精品久久天天影视| 精品一区在线播放| 日本又骚又刺激的视频在线观看| 欧美一级午夜免费电影| 亚洲天堂男人av| 蜜桃精品在线观看| 狠狠躁狠狠躁视频专区| 青青在线精品| 国产精品久久久一区| 999www成人| 欧美日韩精品一区视频| 无码一区二区三区| 精品一区二区日韩| 手机看片一级片| 精品国产亚洲日本| 成人国产精品色哟哟| 中文字幕日产av一二三区| 在线成人午夜影院| 91午夜交换视频| 成人av在线资源网| 日本一级片在线播放| 国产欧美日韩在线观看视频| 久久久久久久久久久一区| 国产免费a∨片在线观看不卡| 精品亚洲一区二区三区四区五区| 欧美熟妇另类久久久久久不卡| 久久欧美中文字幕| 中字幕一区二区三区乱码| 亚洲精品久久久| 男人添女人下部视频免费| 成人性生交大片免费观看网站| 欧美夜福利tv在线| 91久久精品国产性色| 3atv一区二区三区| 亚洲国产www| 国产亚洲一二三区| 日本伦理一区二区三区| 亚洲精品女人| 亚洲中文字幕久久精品无码喷水| 日韩欧洲国产| 你懂的视频在线一区二区| 大片免费在线观看| 欧美激情久久久| 九九热在线观看| 精品污污网站免费看|