精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux下 QT 實現串口通訊小實例

移動開發
本文介紹的是Linux下 QT 實現串口通訊小實例,本文基本沒有介紹,基于代碼實現串口通訊。請先看代碼。

Linux QT 實現串口通訊小實例,代碼如下

  1. view plaincopy to clipboardprint?  
  2. //ui_mainwindow.h     
  3. #ifndef UI_MAINWINDOW_H     
  4. #define UI_MAINWINDOW_H     
  5. #include <QtCore/QVariant>     
  6. #include <QtGui/QAction>     
  7. #include <QtGui/QApplication>     
  8. #include <QtGui/QButtonGroup>     
  9. #include <QtGui/QHeaderView>     
  10. #include <QtGui/QLabel>     
  11. #include <QtGui/QMainWindow>     
  12. #include <QtGui/QMenuBar>     
  13. #include <QtGui/QPushButton>     
  14. #include <QtGui/QStatusBar>     
  15. #include <QtGui/QToolBar>     
  16. #include <QtGui/QWidget>     
  17. QT_BEGIN_NAMESPACE     
  18. class Ui_MainWindow     
  19. {     
  20. public:     
  21.     QWidget *centralWidget;     
  22.     QPushButton *writeButton;     
  23.     QPushButton *readButton;     
  24.     QPushButton *closeButton;     
  25.     QLabel *dis_label;     
  26.     QMenuBar *menuBar;     
  27.     QToolBar *mainToolBar;     
  28.     QStatusBar *statusBar;     
  29.     
  30.     void setupUi(QMainWindow *MainWindow)     
  31.     {     
  32.         if (MainWindow->objectName().isEmpty())     
  33.             MainWindow->setObjectName(QString::fromUtf8("MainWindow"));     
  34.         MainWindow->resize(600, 400);     
  35.         centralWidget = new QWidget(MainWindow);     
  36.         centralWidget->setObjectName(QString::fromUtf8("centralWidget"));     
  37.         writeButton = new QPushButton(centralWidget);     
  38.         writeButton->setObjectName(QString::fromUtf8("writeButton"));     
  39.         writeButton->setGeometry(QRect(100, 210, 75, 23));     
  40.         readButton = new QPushButton(centralWidget);     
  41.         readButton->setObjectName(QString::fromUtf8("readButton"));     
  42.         readButton->setGeometry(QRect(240, 210, 75, 23));     
  43.         closeButton = new QPushButton(centralWidget);     
  44.         closeButton->setObjectName(QString::fromUtf8("closeButton"));     
  45.         closeButton->setGeometry(QRect(390, 210, 75, 23));     
  46.         dis_label = new QLabel(centralWidget);     
  47.         dis_label->setObjectName(QString::fromUtf8("dis_label"));     
  48.         dis_label->setGeometry(QRect(200, 90, 191, 16));     
  49.         MainWindow->setCentralWidget(centralWidget);     
  50.         menuBar = new QMenuBar(MainWindow);     
  51.         menuBar->setObjectName(QString::fromUtf8("menuBar"));     
  52.         menuBar->setGeometry(QRect(0, 0, 600, 19));     
  53.         MainWindow->setMenuBar(menuBar);     
  54.         mainToolBar = new QToolBar(MainWindow);     
  55.         mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));     
  56.         MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);     
  57.         statusBar = new QStatusBar(MainWindow);     
  58.         statusBar->setObjectName(QString::fromUtf8("statusBar"));     
  59.         MainWindow->setStatusBar(statusBar);     
  60.     
  61.         retranslateUi(MainWindow);     
  62.     
  63.         QMetaObject::connectSlotsByName(MainWindow);     
  64.     } // setupUi     
  65.     
  66.     void retranslateUi(QMainWindow *MainWindow)     
  67.     {     
  68.         MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));     
  69.         writeButton->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));     
  70.         readButton->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));     
  71.         closeButton->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));     
  72.         dis_label->setText(QApplication::translate("MainWindow", "TextLabel", 0, QApplication::UnicodeUTF8));     
  73.     } // retranslateUi     
  74.     
  75. };     
  76. namespace Ui {     
  77.     class MainWindow: public Ui_MainWindow {};     
  78. } // namespace Ui     
  79. QT_END_NAMESPACE     
  80. #endif // UI_MAINWINDOW_H     
  81. //thread.h     
  82. #ifndef THREAD_H     
  83. #define THREAD_H     
  84. #include<QThread>     
  85. class Thread:public QThread     
  86. {     
  87.   Q_OBJECT     
  88.  public:     
  89.   Thread();     
  90.   char buf[128];     
  91.   volatile bool stopped;     
  92.   volatile bool write_rs;     
  93.   volatile bool read_rs;     
  94.  protected:     
  95.   virtual void run();     
  96. };     
  97. #endif     
  98. //thread.cpp     
  99. #include"thread.h"     
  100. #include <sys/types.h>     
  101. #include <sys/stat.h>     
  102. #include <fcntl.h>     
  103. #include <termios.h>    //串口用到的     
  104. #include <stdio.h>     
  105. #include <stdlib.h>     
  106. #include <unistd.h>     
  107. #include <strings.h>     
  108. #define BAUDRATE B9600     
  109. #define RS_DEVICE "/dev/ttyS0"       //串口0     
  110. //#define RS_DEVICE "/dev/ttySAC1"       //串口1     
  111. Thread::Thread()     
  112. {}                                                 //析構     
  113. void Thread::run()          //這就是線程的具體工作了     
  114. {     
  115.  int fd,c=0,res;     
  116. struct termios oldtio,newtio;     //termios結構是用來保存波特率、字符大小等     
  117. printf("start...\n");     
  118. fd=open(RS_DEVICE,O_RDWR|O_NOCTTY);     //以讀寫方式打開串口。不控制TTY     
  119. if(fd<0)     
  120. {     
  121. perror("error");     
  122. exit(1);                             //失敗退出     
  123. }     
  124. printf("Open...\n");     
  125. tcgetattr(fd,&oldtio);             //保存當前設置到oldtio     
  126. bzero(&newtio,sizeof(newtio));     //清除newtio結構,并重新對它的成員設置如下    
  127. newtio.c_cflag=BAUDRATE|CS8|CLOCAL|CREAD;  //9600、8位、忽略DCD信號、啟用接收裝置     
  128. newtio.c_iflag|=IGNPAR;                    //忽略奇偶     
  129. newtio.c_oflag=0;     
  130. newtio.c_lflag=0;     
  131. newtio.c_cc[VMIN]=0;     
  132. newtio.c_cc[VTIME]=100;                   //在規定時間(VTIME)內讀取(VMIN)個字符;     
  133. tcflush(fd,TCIFLUSH);                    //清除所有隊列在串口的輸入與輸出;     
  134. tcsetattr(fd,TCSANOW,&newtio);           //把我們的設置寫入termios     
  135. while(stopped)                          //stopped為0時將退出線程     
  136. {     
  137.  if(write_rs)                           //write_rs為1時把字符串從串口中輸出     
  138. {     
  139. write_rs=0;     
  140. write(fd,"QtEmbedded-4.5.1",16);  //向串口中寫入字符,通過串口調試助手可看到QtEmbedded-4.5.1這個字符     
  141. }     
  142.  if(read_rs)                           //read_rs為1時讀取,并存在buf     
  143. {     
  144. read_rs=0;     
  145. res=read(fd,buf,10);     //讀取串口的數據到buf     
  146. buf[res]=0;     
  147. emit finished();                      //讀完后發一個信號     
  148. }     
  149. }     
  150. printf("Close...\n");     
  151. tcsetattr(fd,TCSANOW,&oldtio);      //重新設置回原來的     
  152. close(fd);     
  153. quit();     
  154. }     
  155. //mainwindow.h     
  156. #ifndef MAINWINDOW_H     
  157. #define MAINWINDOW_H     
  158. #include<QtGui>     
  159. #include"ui_mainwindow.h"    //奇怪?這個頭文件從哪里來的?呵呵,剛才用designer做的mainwindow.ui文件,經過make后會生成這個頭文件,     
  160. #include"thread.h"           //把我們前面定義的線程包含進來     
  161. class MainWindow:public QMainWindow,public Ui::MainWindow  //多繼承     
  162. {     
  163.   Q_OBJECT     
  164.  public:     
  165.   MainWindow(QWidget *parent=0);     
  166.  public slots:     
  167.   void writeThread();     
  168.   void readThread();     
  169.   void closeThread();     
  170.   void display();    
  171.  private:     
  172.   Thread *yy;     
  173. };     
  174. #endif     
  175. //mainwindow.cpp     
  176. #include"mainwindow.h"    
  177. MainWindow::MainWindow(QWidget *parent)     
  178.   :QMainWindow(parent)     
  179. {     
  180.   setupUi(this);     
  181.   yy = new Thread;     
  182.   yy->start();          //啟動線程     
  183.   yy->stopped=1;        //初始化變量     
  184.   yy->write_rs=0;     
  185.   yy->read_rs=0;     
  186.   connect(writeButton,SIGNAL(clicked()),this,SLOT(writeThread()));      //信號與槽     
  187.   connect(readButton,SIGNAL(clicked()),this,SLOT(readThread()));     
  188.   connect(closeButton,SIGNAL(clicked()),this,SLOT(closeThread()));     
  189.   connect(yy,SIGNAL(finished()),this,SLOT(display()));      //前面線程讀完了不是發一個信號么,這個信號就是發到這個槽     
  190. }     
  191. void MainWindow::display()     
  192. {     
  193. dis_label->setText(yy->buf);     //讀到的在dis_label顯示,dis_label就是我們前面designer放的標簽,顯示buf中的內容     
  194. }     
  195. void MainWindow::writeThread()  //前面線程都是根據stopped、write_rs、read_rs的狀態來工作的^_^     
  196. {     
  197.   yy->write_rs=1;     
  198. }    
  199. void MainWindow::readThread()     
  200. {     
  201.   yy->read_rs=1;     
  202. }     
  203. void MainWindow::closeThread()     
  204. {     
  205. yy->stopped=0;     
  206. }     
  207. //main.cpp     
  208. #include<QApplication>     
  209. #include"mainwindow.h"     
  210. int main(int argc,char *argv[])     
  211. {     
  212.   QApplication app(argc,argv);     
  213.   MainWindow mw;     
  214.   mw.show();     
  215.   return app.exec();     
  216. }    
  217. //ui_mainwindow.h  
  218. #ifndef UI_MAINWINDOW_H  
  219. #define UI_MAINWINDOW_H  
  220. #include <QtCore/QVariant> 
  221. #include <QtGui/QAction> 
  222. #include <QtGui/QApplication> 
  223. #include <QtGui/QButtonGroup> 
  224. #include <QtGui/QHeaderView> 
  225. #include <QtGui/QLabel> 
  226. #include <QtGui/QMainWindow> 
  227. #include <QtGui/QMenuBar> 
  228. #include <QtGui/QPushButton> 
  229. #include <QtGui/QStatusBar> 
  230. #include <QtGui/QToolBar> 
  231. #include <QtGui/QWidget> 
  232. QT_BEGIN_NAMESPACE  
  233. class Ui_MainWindow  
  234. {  
  235. public:  
  236.     QWidget *centralWidget;  
  237.     QPushButton *writeButton;  
  238.     QPushButton *readButton;  
  239.     QPushButton *closeButton;  
  240.     QLabel *dis_label;  
  241.     QMenuBar *menuBar;  
  242.     QToolBar *mainToolBar;  
  243.     QStatusBar *statusBar;  
  244.  
  245.     void setupUi(QMainWindow *MainWindow)  
  246.     {  
  247.         if (MainWindow->objectName().isEmpty())  
  248.             MainWindow->setObjectName(QString::fromUtf8("MainWindow"));  
  249.         MainWindow->resize(600, 400);  
  250.         centralWidget = new QWidget(MainWindow);  
  251.         centralWidget->setObjectName(QString::fromUtf8("centralWidget"));  
  252.         writeButton = new QPushButton(centralWidget);  
  253.         writeButton->setObjectName(QString::fromUtf8("writeButton"));  
  254.         writeButton->setGeometry(QRect(100, 210, 75, 23));  
  255.         readButton = new QPushButton(centralWidget);  
  256.         readButton->setObjectName(QString::fromUtf8("readButton"));  
  257.         readButton->setGeometry(QRect(240, 210, 75, 23));  
  258.         closeButton = new QPushButton(centralWidget);  
  259.         closeButton->setObjectName(QString::fromUtf8("closeButton"));  
  260.         closeButton->setGeometry(QRect(390, 210, 75, 23));  
  261.         dis_label = new QLabel(centralWidget);  
  262.         dis_label->setObjectName(QString::fromUtf8("dis_label"));  
  263.         dis_label->setGeometry(QRect(200, 90, 191, 16));  
  264.         MainWindow->setCentralWidget(centralWidget);  
  265.         menuBar = new QMenuBar(MainWindow);  
  266.         menuBar->setObjectName(QString::fromUtf8("menuBar"));  
  267.         menuBar->setGeometry(QRect(0, 0, 600, 19));  
  268.         MainWindow->setMenuBar(menuBar);  
  269.         mainToolBar = new QToolBar(MainWindow);  
  270.         mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));  
  271.         MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);  
  272.         statusBar = new QStatusBar(MainWindow);  
  273.         statusBar->setObjectName(QString::fromUtf8("statusBar"));  
  274.         MainWindow->setStatusBar(statusBar);  
  275.         retranslateUi(MainWindow);  
  276.         QMetaObject::connectSlotsByName(MainWindow);  
  277.     } // setupUi  
  278.     void retranslateUi(QMainWindow *MainWindow)  
  279.     {  
  280.         MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));  
  281.         writeButton->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));  
  282.         readButton->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));  
  283.         closeButton->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));  
  284.         dis_label->setText(QApplication::translate("MainWindow", "TextLabel", 0, QApplication::UnicodeUTF8));  
  285.     } // retranslateUi  
  286. };  
  287. namespace Ui {  
  288.     class MainWindow: public Ui_MainWindow {};  
  289. } // namespace Ui  
  290. QT_END_NAMESPACE  
  291. #endif // UI_MAINWINDOW_H  
  292. //thread.h  
  293. #ifndef THREAD_H  
  294. #define THREAD_H  
  295. #include<QThread> 
  296. class Thread:public QThread  
  297. {  
  298.   Q_OBJECT  
  299.  public:  
  300.   Thread();  
  301.   char buf[128];  
  302.   volatile bool stopped;  
  303.   volatile bool write_rs;  
  304.   volatile bool read_rs;  
  305.  protected:  
  306.   virtual void run();  
  307. };  
  308. #endif  
  309. //thread.cpp  
  310. #include"thread.h"  
  311. #include <sys/types.h> 
  312. #include <sys/stat.h> 
  313. #include <fcntl.h> 
  314. #include <termios.h>    //串口用到的  
  315. #include <stdio.h> 
  316. #include <stdlib.h> 
  317. #include <unistd.h> 
  318. #include <strings.h> 
  319. #define BAUDRATE B9600  
  320. #define RS_DEVICE "/dev/ttyS0"       //串口0  
  321. //#define RS_DEVICE "/dev/ttySAC1"       //串口1  
  322. Thread::Thread()  
  323. {}                    //析構  
  324. void Thread::run()       //這就是線程的具體工作了  
  325. {  
  326.  int fd,c=0,res;  
  327. struct termios oldtio,newtio;     //termios結構是用來保存波特率、字符大小等  
  328. printf("start...\n");  
  329. fd=open(RS_DEVICE,O_RDWR|O_NOCTTY);     //以讀寫方式打開串口。不控制TTY  
  330. if(fd<0)  
  331. {  
  332. perror("error");  
  333. exit(1);                             //失敗退出  
  334. }  
  335. printf("Open...\n");  
  336. tcgetattr(fd,&oldtio);             //保存當前設置到oldtio  
  337. bzero(&newtio,sizeof(newtio));     //清除newtio結構,并重新對它的成員設置如下  
  338. newtio.c_cflag=BAUDRATE|CS8|CLOCAL|CREAD;  //9600、8位、忽略DCD信號、啟用接收裝置  
  339. newtio.c_iflag|=IGNPAR;                    //忽略奇偶  
  340. newtio.c_oflag=0;  
  341. newtio.c_lflag=0;  
  342. newtio.c_cc[VMIN]=0;  
  343. newtio.c_cc[VTIME]=100;                   //在規定時間(VTIME)內讀取(VMIN)個字符;  
  344. tcflush(fd,TCIFLUSH);                    //清除所有隊列在串口的輸入與輸出;  
  345. tcsetattr(fd,TCSANOW,&newtio);           //把我們的設置寫入termios  
  346. while(stopped)                          //stopped為0時將退出線程  
  347. {  
  348.  if(write_rs)                           //write_rs為1時把字符串從串口中輸出  
  349. {  
  350. write_rs=0;  
  351. write(fd,"QtEmbedded-4.5.1",16);  //向串口中寫入字符,通過串口調試助手可看到QtEmbedded-4.5.1這個字符  
  352. }  
  353.  if(read_rs)                           //read_rs為1時讀取,并存在buf  
  354. {  
  355. read_rs=0;  
  356. res=read(fd,buf,10);     //讀取串口的數據到buf  
  357. buf[res]=0;  
  358. emit finished();                      //讀完后發一個信號  
  359. }  
  360. }  
  361. printf("Close...\n");  
  362. tcsetattr(fd,TCSANOW,&oldtio);      //重新設置回原來的  
  363. close(fd);  
  364. quit();  
  365. }  
  366. //mainwindow.h  
  367. #ifndef MAINWINDOW_H  
  368. #define MAINWINDOW_H  
  369. #include<QtGui> 
  370. #include"ui_mainwindow.h"    //奇怪?這個頭文件從哪里來的?呵呵,剛才用designer做的mainwindow.ui文件,經過make后會生成這個頭文件,  
  371. #include"thread.h"        //把我們前面定義的線程包含進來  
  372. class MainWindow:public QMainWindow,public Ui::MainWindow  //多繼承  
  373. {  
  374.   Q_OBJECT  
  375.  public:  
  376.   MainWindow(QWidget *parent=0);  
  377.  public slots:  
  378.   void writeThread();  
  379.   void readThread();  
  380.   void closeThread();  
  381.   void display();  
  382.  private:  
  383.   Thread *yy;  
  384. };  
  385. #endif  
  386. //mainwindow.cpp  
  387. #include"mainwindow.h"  
  388. MainWindow::MainWindow(QWidget *parent)  
  389.   :QMainWindow(parent)  
  390. {  
  391.   setupUi(this);  
  392.   yy = new Thread;  
  393.   yy->start();          //啟動線程  
  394.   yy->stopped=1;        //初始化變量  
  395.   yy->write_rs=0;  
  396.   yy->read_rs=0;  
  397.   connect(writeButton,SIGNAL(clicked()),this,SLOT(writeThread()));      //信號與槽  
  398.   connect(readButton,SIGNAL(clicked()),this,SLOT(readThread()));  
  399.   connect(closeButton,SIGNAL(clicked()),this,SLOT(closeThread()));  
  400.   connect(yy,SIGNAL(finished()),this,SLOT(display()));      //前面線程讀完了不是發一個信號么,這個信號就是發到這個槽  
  401. }  
  402. void MainWindow::display()  
  403. {  
  404. dis_label->setText(yy->buf);     //讀到的在dis_label顯示,dis_label就是我們前面designer放的標簽,顯示buf中的內容  
  405. }  
  406. void MainWindow::writeThread()  //前面線程都是根據stopped、write_rs、read_rs的狀態來工作的^_^  
  407. {  
  408.   yy->write_rs=1;  
  409. }  
  410. void MainWindow::readThread()  
  411. {  
  412.   yy->read_rs=1;  
  413. }  
  414. void MainWindow::closeThread()  
  415. {  
  416. yy->stopped=0;  
  417. }  
  418. //main.cpp  
  419. #include<QApplication> 
  420. #include"mainwindow.h"  
  421. int main(int argc,char *argv[])  
  422. {  
  423.   QApplication app(argc,argv);  
  424.   MainWindow mw;  
  425.   mw.show();  
  426.   return app.exec();  

本例中用到了線程,線程有一個好處就是可以單獨的去掃描串行端口,當有數據發送到端口時,顯示相應的字符到顯示框中。使用時注意波特率和串口的設置,這里用的波特率是9600,串口時ttyS0。

小結:LinuxQT 實現串口通訊小實例的內容介紹完了,都是代碼實現,希望這些代碼對你有所幫助!想要更多內容,請參考編輯推薦!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-22 17:49:35

Linux Qt 串口

2011-06-21 14:12:14

Qt Linux 登錄界面

2011-06-13 17:46:07

Qt 串口通信

2011-06-30 09:46:01

QT 顯示視頻 linux

2011-06-29 11:22:06

Qt Windows 入口函數

2011-08-30 16:40:56

UbuntuVMware

2011-06-21 09:33:49

Qt 啟動 界面

2011-06-27 11:08:37

Qt 串口 通信

2011-06-08 14:06:42

linux SDK Qt

2011-07-05 11:10:23

Linux Qt 移植

2011-07-05 10:55:14

Linux Qt 移植

2011-07-22 17:48:29

IOS Socket TCP

2017-03-13 16:46:11

Linuxminicomusb串口

2011-06-28 16:40:17

Qt Widget 圖片

2011-06-24 16:09:24

Qt 動畫 狀態機

2011-06-21 17:01:44

Qt 靜態 編譯

2011-06-16 10:09:25

QT Windows DLL

2011-07-01 13:03:32

QT 線程 串口

2011-06-29 16:50:17

Qt 顯示寬字符

2011-06-21 09:19:24

Qt 界面 多國語言
點贊
收藏

51CTO技術棧公眾號

六月婷婷色综合| 91亚洲国产成人久久精品| 精品久久久一区二区| 欧美日本亚洲| 国产亲伦免费视频播放| 亚洲特色特黄| 正在播放国产一区| 亚洲区 欧美区| 欧美成a人片在线观看久| 亚洲三级视频在线观看| 黄色一区三区| 国产巨乳在线观看| 久久aⅴ国产紧身牛仔裤| y97精品国产97久久久久久| 波多野结衣先锋影音| 久久69成人| 欧美日韩性视频| 久久久久福利视频| 成人精品一区二区| 91免费视频大全| 99久久99久久精品国产片| 国产污视频网站| 激情欧美丁香| 欧美成人免费全部| 日本精品久久久久中文| 色婷婷av一区二区三区丝袜美腿| 91精品久久久久久蜜臀| 黄色片在线免费| 色戒汤唯在线| 五月天婷婷综合| 黄色一级大片免费| 日本中文在线观看| 亚洲国产精品精华液ab| 久久国产手机看片| 国产小视频免费观看| 国产在线视频精品一区| 国产精品一区二区三区久久| 久久久久女人精品毛片九一| 日韩网站在线| 国模精品视频一区二区| 久久久久久久极品内射| 夜间精品视频| 欧美猛男性生活免费| 黄色一级大片在线免费观看| 精品久久精品| 尤物tv国产一区| 亚洲色成人网站www永久四虎| 三级精品视频| 国产婷婷色综合av蜜臀av | 999福利视频| 精品黄色一级片| 亚洲日韩第一页| 国产精品扒开腿做爽爽| 一本久久青青| 亚洲人成电影在线| 亚洲最大成人综合网| 欧美丝袜一区| 深夜福利一区二区| 91免费公开视频| 亚洲色图欧美| 欧美日韩国产成人| 日本免费在线播放| 一本色道88久久加勒比精品| 8050国产精品久久久久久| 日本一区二区三区精品| 视频一区在线播放| 国产欧美 在线欧美| 国产精品一区二区人人爽| 国产伦精一区二区三区| 国产精品污www一区二区三区| 欧美 日韩 综合| 91网上在线视频| 日韩欧美第二区在线观看| av在线三区| 亚洲乱码中文字幕| 欧美亚洲黄色片| 一区二区三区四区日本视频| 欧美三级中文字幕在线观看| 久久精品视频在线观看免费| youjizz亚洲| 亚洲欧美日韩一区二区在线| 国产在视频线精品视频| 亚洲精品国产首次亮相| 久久久久久国产精品三级玉女聊斋 | 欧美成人精品免费| 在线观看网站免费入口在线观看国内| 色狠狠综合天天综合综合| 天天做天天干天天操| 丁香综合av| 色伦专区97中文字幕| 激情四射综合网| 久久久精品日韩| 成人在线观看视频网站| 三区在线观看| 亚洲欧美日韩国产综合在线| 黄色成人在线看| 欧美aaa级| 精品国产一区二区三区四区四| www.com日本| 久久av免费看| 久久久久久久久久久免费| 无码人妻熟妇av又粗又大| 国产一区二区0| 欧美午夜视频在线| 午夜小视频在线观看| 日本国产一区二区| 美女露出粉嫩尿囗让男人桶| 成人综合专区| 97在线看福利| av 一区二区三区| 日本一区二区三区久久久久久久久不 | 91在线直播亚洲| 久草在线免费福利资源| 亚洲一区影音先锋| 手机av在线免费| 牲欧美videos精品| 欧美激情视频三区| 国产内射老熟女aaaa∵| 久久久99免费| 青青草成人免费在线视频| 日日夜夜亚洲精品| 亚洲偷熟乱区亚洲香蕉av| 日韩免费视频网站| 国产精品1区2区3区在线观看| 欧美在线一二三区| 华人av在线| 欧美成va人片在线观看| www.av免费| 久久精品国产第一区二区三区| 免费av在线一区二区| 91桃色在线| 精品国产乱码久久久久久图片| 五月天免费网站| 免费精品视频最新在线| 欧美自拍资源在线| 悠悠资源网亚洲青| 日韩黄色在线免费观看| 国产精品6666| 不卡的av网站| 人妻无码久久一区二区三区免费| 亚洲一区网址| 久久99久久99精品中文字幕| av男人天堂网| 亚洲另类色综合网站| 污污视频在线免费| 亚洲成av人片乱码色午夜| 成人久久一区二区| 午夜看片在线免费| 欧美一区二区三区性视频| 搜索黄色一级片| 国产精品一二三在| 成人国产在线看| 岛国成人av| 97婷婷涩涩精品一区| 日本福利午夜视频在线| 色8久久精品久久久久久蜜| 亚洲熟妇无码av| 日本成人在线不卡视频| 在线日韩av永久免费观看| 99综合99| 久久久视频免费观看| 天堂成人在线观看| 色偷偷成人一区二区三区91| 中文字幕免费高清| 极品少妇一区二区| 女人色极品影院| 超碰成人福利| 青青a在线精品免费观看| 成人在线免费公开观看视频| 精品视频一区三区九区| 高h视频免费观看| 99久免费精品视频在线观看| 91av俱乐部| 久久久久av| 国产在线一区二区三区播放| 国产日韩电影| 久久中文字幕在线| 日韩一级片免费| 欧美私模裸体表演在线观看| 日韩女优一区二区| 92精品国产成人观看免费| 久久精品免费网站| 欧美va亚洲va日韩∨a综合色| 国产日韩欧美亚洲一区| 欧美xxxx做受欧美护士| 久久亚洲精品成人| 欧美 日韩 人妻 高清 中文| 欧美午夜精品一区| 免费三片在线播放| 国产蜜臀97一区二区三区| 中文字幕永久免费| 天堂va蜜桃一区二区三区| 国产又粗又大又爽的视频| 精品资源在线| 91精品视频播放| 欧美亚洲韩国| 欧美另类老女人| 91精品国产综合久久久久久豆腐| 日韩精品最新网址| 懂色av蜜臀av粉嫩av喷吹| 亚洲午夜久久久| www.涩涩爱| 91老师国产黑色丝袜在线| 手机在线免费毛片| 视频一区二区三区中文字幕| 韩日视频在线观看| 国产精品久久久久久麻豆一区软件 | 久久av资源网站| 精品无人乱码| 亚洲成人国产精品| 国产又粗又黄又爽视频| 色又黄又爽网站www久久| 久久久久久久久久一区二区三区| 国产精品久久久久四虎| wwwwww日本| 成人污污视频在线观看| jizz欧美性11| 国产日产高清欧美一区二区三区| 国产精品啪啪啪视频| 色婷婷亚洲mv天堂mv在影片| 欧美精品一区二区三区久久| 精品少妇3p| 国产亚洲欧美另类一区二区三区| 欧一区二区三区| 国产欧美在线看| 国产香蕉久久| 国产精品扒开腿做| 日韩在线影院| 欧美一区二区三区免费观看| 在线中文字幕视频观看| 久久精品国产清自在天天线 | 中文字幕人妻互换av久久| 日韩欧美国产视频| 久久不卡免费视频| 午夜精品福利在线| 国产无套内射又大又猛又粗又爽| 亚洲精品国产无天堂网2021| 三级av在线免费观看| 中文字幕制服丝袜成人av| 欧美性受xxxx黑人| 国产精品三级久久久久三级| 亚洲区自拍偷拍| 国产人妖乱国产精品人妖| 一区二区三区久久久久| 国产日韩成人精品| 一级黄色片网址| 中文字幕一区二区三区四区| 男人天堂资源网| 日韩一区欧美一区| 麻豆明星ai换脸视频| 亚洲精品国产视频| 国产一级特黄a高潮片| 亚洲成精国产精品女| 1级黄色大片儿| 欧美日韩中文字幕综合视频| 在线观看日本网站| 欧美伊人久久大香线蕉综合69| 最近中文字幕在线免费观看| 欧美日高清视频| 国产黄色一区二区| 亚洲精品720p| 免费一级毛片在线观看| 永久免费看mv网站入口亚洲| 日本中文字幕电影在线免费观看| 美乳少妇欧美精品| 日本在线高清| 国产精品国产亚洲伊人久久| 亚洲精品成人一区| 成人在线免费观看一区| 日本妇女一区| 三区精品视频观看| 自拍日韩欧美| 国产xxxxx在线观看| 麻豆91精品视频| 午夜剧场免费看| 亚洲国产精品成人久久综合一区| 国产真实乱在线更新| 性欧美大战久久久久久久久| 日本熟女毛茸茸| 欧美一区二区三区日韩| 欧美视频一二区| 色妞欧美日韩在线| www.8ⅹ8ⅹ羞羞漫画在线看| 国产精品高潮视频| 99国产精品久久一区二区三区| 日本一区不卡| 欧美网站在线| www.涩涩涩| 成av人片一区二区| 99久久久无码国产精品不卡| 亚洲香肠在线观看| 中文字幕一区二区三区免费看| 日韩精品最新网址| 尤物网址在线观看| 91高清视频在线免费观看| 欧美成人三级| 欧美理论一区二区| 国产精品v日韩精品v欧美精品网站 | 精品少妇一区二区三区日产乱码 | 久久久精品国产免大香伊| 日韩一级片av| 欧美日韩在线亚洲一区蜜芽| 人妻无码中文字幕免费视频蜜桃| 色偷偷av一区二区三区乱| segui88久久综合9999| 91在线免费看网站| 欧美日韩精品在线一区| www.日本在线播放| 国产精品中文字幕一区二区三区| 鲁丝一区二区三区| 精品久久久一区| 国产小视频一区| 欧美成人午夜视频| 欧美天堂一区| 日韩一区二区三区高清| 夜夜精品视频| 伊人影院在线观看视频| 中文字幕日韩av资源站| 国产一卡二卡三卡| 日韩毛片在线看| 97人人在线视频| 国产91视觉| 一区二区在线| 天堂中文av在线| 欧美韩日一区二区三区| 久久中文字幕免费| 日韩国产精品亚洲а∨天堂免| 青春草免费在线视频| 亚洲a一级视频| 国产精品成人一区二区不卡| 污片在线免费看| 国产欧美久久久精品影院| 无码人妻久久一区二区三区不卡| 亚洲国产欧美一区二区丝袜黑人| 青青草视频在线免费直播| av资源站久久亚洲| 国语自产精品视频在线看8查询8| 超碰在线资源站| 一区二区欧美在线观看| 精品人妻伦一二三区久久| 欧美成人免费一级人片100| **欧美日韩在线| 水蜜桃在线免费观看| 国产精品性做久久久久久| 欧美成欧美va| 精品免费日韩av| 欧美女同一区| 国产无套精品一区二区| 午夜亚洲福利在线老司机| 成人午夜剧场视频网站| 一本色道久久综合狠狠躁的推荐| 久久精品蜜桃| 国产精品电影网| 99久久夜色精品国产亚洲狼| 国产欧美精品一二三| 亚洲精品大片www| 黄色av网址在线| 欧美一级黑人aaaaaaa做受| 久久成人高清| 一区二区三区欧美精品| 一区二区三区欧美日韩| 欧美亚洲精品在线观看| 欧美一级成年大片在线观看| 狠狠操综合网| 亚洲一二三不卡| 亚洲综合色噜噜狠狠| 香蕉av一区二区三区| 国产精品白丝jk喷水视频一区| 色男人天堂综合再现| 亚洲精品一区二区18漫画| 欧美视频国产精品| jizz在线观看中文| 亚洲综合中文字幕在线| 亚洲伦理一区| 亚洲图片第一页| 亚洲精品一区二区三区99| 日韩电影av| av中文字幕av| 久久婷婷成人综合色| 国产一区二区三区三州| 久久久日本电影| 久久社区一区| 扒开伸进免费视频| 欧美亚洲免费在线一区| 18av在线视频| 日本a级片久久久| 国产精品一二三四五| 伊人久久久久久久久久久久| 欧美精品在线播放| 国产91精品对白在线播放| 夜夜爽久久精品91| 91久久精品日日躁夜夜躁欧美| 在线看福利影| 婷婷精品国产一区二区三区日韩 | 图片区小说区亚洲| 欧美在线一区二区三区四区| 国产成人一区在线| 中文字幕人妻一区二区三区视频| 欧美精品福利在线| 日韩啪啪电影网|