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

詳解 QT 線程 串口接收程序

移動開發
本文內容主要是在講QT 線程 串口接收程序,文字描述不多,基本是代碼實現的,那么大家就看看過程吧。

QT 線程 串口接收程序是本文介紹的內容,不多介紹了,先來看代碼。新建工程serial,UI界面如下:

文件的結構如下:

QT 線程 串口接收程序

其中qextserialbase.h qextserialbase.cpp win_qextserialport.h win_qextserialport.cpp是與串口通信相關的

QT 線程 串口接收程序

thread.h 文件:

  1. #ifndef THREAD_H     
  2. #define THREAD_H     
  3. #include <QThread>     
  4. #include <QString>     
  5. #include "qextserialbase.h"     
  6. #include "win_qextserialport.h"     
  7. class Thread : public QThread     
  8. {     
  9.     Q_OBJECT     
  10. public:     
  11.     Thread(QString com, QObject *parent);     
  12.     ~Thread();     
  13.     void run();     
  14.     void stopThread();     
  15. signals:     
  16.     void serialFinished(QByteArray temp);     
  17. private:     
  18.     Win_QextSerialPort *myCom;     
  19.     int stopped;     
  20. };     
  21. #endif // THREAD_H    
  22. #ifndef THREAD_H  
  23. #define THREAD_H  
  24. #include <QThread> 
  25. #include <QString> 
  26. #include "qextserialbase.h"  
  27. #include "win_qextserialport.h"  
  28. class Thread : public QThread  
  29. {  
  30.     Q_OBJECT  
  31. public:  
  32.     Thread(QString com, QObject *parent);  
  33.     ~Thread();  
  34.     void run();  
  35.     void stopThread();  
  36. signals:  
  37.     void serialFinished(QByteArray temp);  
  38. private:  
  39.     Win_QextSerialPort *myCom;  
  40.     int stopped;  
  41. };  
  42. #endif // THREAD_H  

stopped變量是用來控制退出線程的,當stopped為0時,退出線程。

thread.cpp文件:

  1. #include "thread.h"     
  2. Thread::Thread(QString com, QObject *parent)     
  3.     :QThread(parent)     
  4. {     
  5.     myCom = new Win_QextSerialPort(com, QextSerialBase::EventDriven);         
  6.     bool isOpen = myCom->open(QIODevice::ReadWrite);     
  7.     stopped = 1;     
  8.     if(isOpen)     
  9.     {     
  10.         myCom->setBaudRate(BAUD9600);     
  11.         myCom->setDataBits(DATA_8);     
  12.         myCom->setParity(PAR_NONE);     
  13.         myCom->setStopBits(STOP_1);     
  14.         myCom->setFlowControl(FLOW_OFF);     
  15.         myCom->setTimeout(500);     
  16.     }     
  17. }     
  18. Thread::~Thread()     
  19. {     
  20. }     
  21. void Thread::run()     
  22. {     
  23.     while(stopped)     
  24.     {     
  25.         msleep(5000);    //delay 5ms     
  26.         QByteArray temp = myCom->read(8);     
  27.         if(temp.size()==8)     
  28.             emit this->serialFinished(temp.toHex());     
  29.     }     
  30. }     
  31. void Thread::stopThread()     
  32. {     
  33.     stopped = 0;     
  34. }    
  35. #include "thread.h"  
  36. Thread::Thread(QString com, QObject *parent)  
  37.     :QThread(parent)  
  38. {  
  39.     myCom = new Win_QextSerialPort(com, QextSerialBase::EventDriven);      
  40.     bool isOpen = myCom->open(QIODevice::ReadWrite);  
  41.     stopped = 1;  
  42.     if(isOpen)  
  43.     {  
  44.         myCom->setBaudRate(BAUD9600);  
  45.         myCom->setDataBits(DATA_8);  
  46.         myCom->setParity(PAR_NONE);  
  47.         myCom->setStopBits(STOP_1);  
  48.         myCom->setFlowControl(FLOW_OFF);  
  49.         myCom->setTimeout(500);  
  50.     }  
  51. }  
  52. Thread::~Thread()  
  53. {  
  54. }  
  55. void Thread::run()  
  56. {  
  57.     while(stopped)  
  58.     {  
  59.         msleep(5000);    //delay 5ms  
  60.         QByteArray temp = myCom->read(8);  
  61.         if(temp.size()==8)  
  62.             emit this->serialFinished(temp.toHex());  
  63.     }  
  64. }  
  65. void Thread::stopThread()  
  66. {  
  67.     stopped = 0;  

#p#

widget.h文件:

  1. #ifndef WIDGET_H     
  2. #define WIDGET_H     
  3. #include <QWidget>     
  4. #include <QCloseEvent>     
  5. #include "thread.h"     
  6. namespace Ui {     
  7.     class Widget;     
  8. }     
  9. class Widget : public QWidget {     
  10.     Q_OBJECT     
  11. public:     
  12.     Widget(QWidget *parent = 0);     
  13.     ~Widget();     
  14. protected:     
  15.     void changeEvent(QEvent *e);     
  16.     void closeEvent(QCloseEvent *event);     
  17. private:     
  18.     Ui::Widget *ui;     
  19.     Thread *th;     
  20. private slots:     
  21.     void on_pushButton_clicked();     
  22.     void ReadData(QByteArray temp);     
  23. };     
  24. #endif // WIDGET_H    
  25. #ifndef WIDGET_H  
  26. #define WIDGET_H  
  27. #include <QWidget> 
  28. #include <QCloseEvent> 
  29. #include "thread.h"  
  30. namespace Ui {  
  31.     class Widget;  
  32. }  
  33. class Widget : public QWidget {  
  34.     Q_OBJECT  
  35. public:  
  36.     Widget(QWidget *parent = 0);  
  37.     ~Widget();  
  38. protected:  
  39.     void changeEvent(QEvent *e);  
  40.     void closeEvent(QCloseEvent *event);  
  41. private:  
  42.     Ui::Widget *ui;  
  43.     Thread *th;  
  44. private slots:  
  45.     void on_pushButton_clicked();  
  46.     void ReadData(QByteArray temp);  
  47. };  
  48. #endif // WIDGET_H 

widget.cpp文件:

  1. #include "widget.h"     
  2. #include "ui_widget.h"     
  3. Widget::Widget(QWidget *parent) :     
  4.     QWidget(parent),     
  5.     ui(new Ui::Widget)     
  6. {     
  7.     ui->setupUi(this);     
  8.     th = NULL;     
  9. }     
  10. Widget::~Widget()     
  11. {     
  12.     delete ui;     
  13. }     
  14. void Widget::changeEvent(QEvent *e)     
  15. {     
  16.     QWidget::changeEvent(e);     
  17.     switch (e->type()) {     
  18.     case QEvent::LanguageChange:     
  19.         ui->retranslateUi(this);     
  20.         break;     
  21.     default:     
  22.         break;     
  23.     }     
  24. }     
  25. void Widget::on_pushButton_clicked()     
  26. {     
  27. #if 1     
  28.     QString text = ui->comboBox->currentText();     
  29.     th = new Thread(text, this);     
  30.     th->start();     
  31.     connect(th, SIGNAL(serialFinished(QByteArray)), this, SLOT(ReadData(QByteArray)));     
  32. #endif     
  33. }     
  34. void Widget::ReadData(QByteArray temp)     
  35. {     
  36. #if 1     
  37.     ui->textBrowser->insertPlainText(temp);     
  38.     ui->textBrowser->insertPlainText(tr("\n\n"));     
  39. #endif     
  40. }     
  41. void Widget::closeEvent(QCloseEvent *event)     
  42. {     
  43.     if(th!=NULL)     
  44.     {     
  45.         th->stopThread();     
  46.         th->wait();     
  47.     }     
  48.     event->accept();     
  49. }    
  50. #include "widget.h"  
  51. #include "ui_widget.h"  
  52. Widget::Widget(QWidget *parent) :  
  53.     QWidget(parent),  
  54.     ui(new Ui::Widget)  
  55. {  
  56.     ui->setupUi(this);  
  57.     th = NULL;  
  58. }  
  59. Widget::~Widget()  
  60. {  
  61.     delete ui;  
  62. }  
  63. void Widget::changeEvent(QEvent *e)  
  64. {  
  65.     QWidget::changeEvent(e);  
  66.     switch (e->type()) {  
  67.     case QEvent::LanguageChange:  
  68.         ui->retranslateUi(this);  
  69.         break;  
  70.     default:  
  71.         break;  
  72.     }  
  73. }  
  74. void Widget::on_pushButton_clicked()  
  75. {  
  76. #if 1  
  77.     QString text = ui->comboBox->currentText();  
  78.     th = new Thread(text, this);  
  79.     th->start();  
  80.     connect(th, SIGNAL(serialFinished(QByteArray)), this, SLOT(ReadData(QByteArray)));  
  81. #endif  
  82. }  
  83. void Widget::ReadData(QByteArray temp)  
  84. {  
  85. #if 1  
  86.     ui->textBrowser->insertPlainText(temp);  
  87.     ui->textBrowser->insertPlainText(tr("\n\n"));  
  88. #endif  
  89. }  
  90. void Widget::closeEvent(QCloseEvent *event)  
  91. {  
  92.     if(th!=NULL)  
  93.     {  
  94.         th->stopThread();  
  95.         th->wait();  
  96.     }  
  97.     event->accept();  

closeEvent()在關閉窗口時被調用;

wait()函數類似于 pthread_join(),等待一個線程的結束,并進行資源回收。

main.cpp文件:

  1. #include <QtGui/QApplication>     
  2. #include "widget.h"     
  3. int main(int argc, char *argv[])     
  4. {     
  5.     QApplication a(argc, argv);     
  6.     Widget w;     
  7.     w.show();     
  8.     return a.exec();     
  9. }    
  10. #include <QtGui/QApplication> 
  11. #include "widget.h"  
  12. int main(int argc, char *argv[])  
  13. {  
  14.     QApplication a(argc, argv);  
  15.     Widget w;  
  16.     w.show();  
  17.     return a.exec();  

串口通信的內容請查看http://www.yafeilinux.com/?p=820

小結:關于詳解 QT 線程 串口接收程序的內容介紹完了,希望本文對你有所幫助!

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

2011-06-29 14:42:06

Qt 串口

2011-06-29 14:32:25

Qt 串口

2011-06-29 14:23:08

Qt 串口

2011-06-29 13:50:15

Qt 串口

2011-06-29 14:06:15

Qt 串口

2011-07-01 10:35:20

QT 多線程 TCP

2011-06-30 17:21:56

Qt 線程 共享

2023-11-15 13:55:32

2009-08-25 17:24:55

C#串口通信程序

2011-06-28 13:38:15

Arm linux QT

2011-06-30 10:50:39

Qt OpenCV

2011-06-22 17:49:35

Linux Qt 串口

2011-06-22 14:30:44

QT 多線程 線程

2011-06-28 10:38:52

QT 文件

2011-07-05 17:54:43

QT Sqlite ARM

2011-06-13 17:46:07

Qt 串口通信

2011-06-23 13:25:42

QT 源碼 窗口

2011-06-22 14:38:09

QT 多線程 線程安全

2011-06-30 18:03:58

QT 多線程 服務器

2021-05-06 08:54:39

串口DMASTM32
點贊
收藏

51CTO技術棧公眾號

黄页网站在线| 亚洲av色香蕉一区二区三区| 成人在线亚洲| 欧美一区二区大片| 2019日韩中文字幕mv| 亚洲精品久久久久久久久久久久久久| 国产婷婷精品| 久久国产精品亚洲| 精品夜夜澡人妻无码av| 日本久久久久| 粉嫩av一区二区三区免费野| 亚洲一区二区在| 少妇人妻偷人精品一区二区 | 亚洲少妇久久久| 主播国产精品| 欧美高清在线一区| 精品综合久久| www.我爱av| 日本欧美加勒比视频| 久久久久久亚洲| 美女视频久久久| 欧美激情15p| 日韩亚洲欧美中文三级| 18岁视频在线观看| 国产v日韩v欧美v| 亚洲男人的天堂在线观看| 国产一区二区在线| 成人影院在线免费观看| 亚洲综合色婷婷| 亚洲精品乱码视频| 色就是色亚洲色图| 国产丶欧美丶日本不卡视频| 国产精品丝袜高跟| 国产成人免费观看视频 | 一区二区在线中文字幕电影视频| 亚洲精品人妻无码| 九色综合狠狠综合久久| 日韩美女毛茸茸| 日操夜操天天操| 欧美精品国产一区二区| 色播久久人人爽人人爽人人片视av| 中出视频在线观看| 风间由美一区二区av101| 欧美一区二区三区免费视频| 亚洲一级片网站| 成人欧美大片| 色综合久久天天| 国产日产欧美视频| mm视频在线视频| 亚洲第一av色| 91.com在线| 在线观看免费视频你懂的| 亚洲视频一区在线| 五月天综合婷婷| 国产原创在线观看| 亚洲色图视频免费播放| 99久久久无码国产精品性色戒| 色哟哟免费在线观看| 国产精品你懂的| 伊人久久大香线蕉成人综合网| 77777影视视频在线观看| 久久久久久久久伊人| 欧美日韩精品不卡| 国产私拍精品| 国产精品伦一区二区三级视频| 亚洲精品日韩成人| 国产高清一区二区三区视频 | 国产亚洲精品综合一区91| 国产吞精囗交久久久| 亚洲桃色综合影院| 国产亚洲精品美女久久久| 91成人精品一区二区| 欧美电影一区| 美日韩在线视频| 国产亚洲色婷婷久久99精品| 一二三区精品| 日本一区二区三区四区视频| 国产精品51麻豆cm传媒| 精品一区二区日韩| 99国产在线观看| 国产一区免费看| 看电视剧不卡顿的网站| 91精品久久久久久蜜桃| 手机看片一区二区| 国产欧美一区二区三区沐欲| 尤物一区二区三区| 欧美人与禽猛交乱配| 欧美性xxxx在线播放| 在线免费视频一区| 亚洲精品在线播放| 亚洲精品成人av| 99精品欧美一区二区| 91精品秘密在线观看| 97精品视频在线观看| 懂色av中文字幕| 国产高清久久久久| 裸模一区二区三区免费| 国产网友自拍视频导航网站在线观看| 亚洲福利一区二区三区| 十八禁视频网站在线观看| 精品一区二区三区中文字幕在线 | 亚洲东热激情| 国产精品678| 国产极品久久久| 国产三级三级三级精品8ⅰ区| 亚洲区成人777777精品| 竹内纱里奈兽皇系列在线观看| 欧美片网站yy| 内射中出日韩无国产剧情| 天天射天天综合网| 人人做人人澡人人爽欧美| 国产精品视频在线观看免费| 久久综合久久综合久久综合| 欧美一级免费在线观看| 电影网一区二区| 欧美xxxxx牲另类人与| 欧美福利第一页| 亚洲精选成人| 99精彩视频在线观看免费| a黄色在线观看| 欧美日韩国产专区| 四虎国产精品永久免费观看视频| 欧美裸体在线版观看完整版| 97香蕉久久超级碰碰高清版| 99热这里只有精品在线观看| 国产精品无遮挡| 少妇高潮喷水久久久久久久久久| 97品白浆高清久久久久久| 最新国产精品拍自在线播放| 男女啊啊啊视频| 国产成人av电影免费在线观看| 亚洲一区二区三区精品视频| 日韩高清成人| 亚洲美女在线观看| 国产又大又黑又粗免费视频| 国产福利精品一区二区| 国产精品美女在线播放| 日本美女久久| 国产亚洲欧洲在线| 国产视频1区2区| 91网页版在线| 成人网站免费观看入口| 国产欧美88| 日韩有码在线电影| 亚洲无码久久久久久久| 国产精品视频麻豆| 国产高清视频网站| 日韩成人免费| 国产视频999| 免费av网站在线看| 欧美浪妇xxxx高跟鞋交| 国产免费嫩草影院| 久久精品国产久精国产爱| 亚州欧美一区三区三区在线| 国产69精品久久| 日韩一区二区三区在线播放| 91在线公开视频| 亚洲精品一二三四区| 污污视频在线免费| 中文字幕亚洲精品乱码| 51国偷自产一区二区三区| 91在线中字| 欧美精品一区二区不卡| 日本五十熟hd丰满| 99国产精品国产精品毛片| 欧美 日韩 国产 高清| 亚洲天堂日韩在线| 国产欧美精品在线播放| 老司机在线看片网av| 日韩午夜激情免费电影| 久久精品国产亚洲AV无码麻豆| 北岛玲一区二区三区四区| 色综合久久久久无码专区| 国产成人精品三级高清久久91| 国产精品99久久久久久白浆小说| 日本暖暖在线视频| 日韩一级免费一区| 天天操天天摸天天干| 国产亚洲综合在线| 天天色天天综合网| 亚洲黄色高清| 青青成人在线| 成人豆花视频| 91高清在线免费观看| 国产高清av在线| 日韩一区二区三区免费看| 在线观看亚洲天堂| 1024国产精品| 日本黄色特级片| 激情综合色综合久久综合| 欧美大黑帍在线播放| 亚洲激情播播| 91亚洲精品在线| 美女露胸视频在线观看| 日韩在线观看你懂的| 亚洲精品字幕在线观看| 色婷婷综合久久久中文一区二区| 亚洲欧洲综合网| 99久久精品免费看| 亚洲午夜激情影院| 一本色道久久综合亚洲精品不卡| 亚洲一区二区三区免费看| xxxxxhd亚洲人hd| 国产精品日韩精品| hd国产人妖ts另类视频| 深夜福利亚洲导航| 天天干天天舔天天射| 在线播放亚洲一区| 中文字幕在线天堂| 亚洲一级二级三级在线免费观看| 亚洲最大成人综合网| av电影在线观看不卡| 激情在线观看视频| 日韩成人免费看| 精品少妇在线视频| 亚洲啊v在线观看| 欧洲一区二区在线| 婷婷综合福利| 国产精品久久久久久久小唯西川| 欧洲精品久久久久毛片完整版| 5252色成人免费视频| 欧美韩日亚洲| 精品国产自在精品国产浪潮 | 欧美成人精品xxx| 国产精品秘入口| 亚洲精品456在线播放狼人| 国产情侣一区二区| 欧美日韩aaa| 波多野结衣高清在线| 狠狠色狠色综合曰曰| 久久人人爽人人爽人人| 亚洲欧美一区二区久久| 精品丰满少妇一区二区三区| 久久午夜国产精品| 内射中出日韩无国产剧情| 成人av资源网站| 国产视频精品视频| 国产精品99久久久久久有的能看| 高清av免费看| 免费在线观看成人| 黄色aaa级片| 日韩专区在线视频| 亚洲一二三区av| 视频在线观看国产精品| 玩弄japan白嫩少妇hd| 欧美亚洲自偷自偷| 欧美亚洲国产成人| 国产九九精品| 欧美成人黑人猛交| 青娱乐精品视频在线| chinese少妇国语对白| 麻豆久久精品| 农村妇女精品一二区| 老鸭窝毛片一区二区三区| av免费在线播放网站| 日韩黄色免费网站| 五月天av在线播放| 久久精品国产第一区二区三区| 人人干人人干人人| 国产精品一品视频| 绯色av蜜臀vs少妇| 不卡区在线中文字幕| 久久久精品人妻无码专区| 国产日韩欧美精品一区| youjizz亚洲女人| 亚洲欧洲日产国码二区| 久草视频在线资源| 五月综合激情日本mⅴ| 天堂中文字幕在线观看| 欧洲精品一区二区| 91欧美日韩麻豆精品| 日韩欧美精品在线| 色欲久久久天天天综合网| 亚洲毛片在线免费观看| 91官网在线| 欧美大片在线影院| 色一区二区三区| 国产狼人综合免费视频| 精品国产三区在线| 精品视频一区二区三区四区| 精品久久不卡| 国产免费内射又粗又爽密桃视频| 亚洲激情网站| 国产91色在线观看| 高清国产一区二区三区| 亚洲一区二区自偷自拍| 亚洲视频资源在线| 一级黄色免费网站| 欧美久久免费观看| 午夜影院免费体验区| 色av中文字幕一区| √天堂8资源中文在线| 国产精品国产三级国产aⅴ浪潮 | 婷婷亚洲婷婷综合色香五月| 永久亚洲成a人片777777| 久久综合九色综合88i| 久久99最新地址| 久久人妻一区二区| 亚洲欧洲另类国产综合| 午夜毛片在线观看| 91精品国产综合久久精品| 青青草免费在线视频| 美女福利精品视频| 99riav视频一区二区| 国产精品美女黄网| 99久久精品费精品国产| 777精品久无码人妻蜜桃| 国产一区亚洲一区| 日韩人妻无码精品综合区| 亚洲一区在线观看免费 | 国产剧情在线观看一区二区| 熟女俱乐部一区二区视频在线| 亚洲免费视频中文字幕| 久久永久免费视频| 亚洲电影天堂av| 成人在线直播| 国产精品永久免费在线| 色婷婷av一区二区三区丝袜美腿| 2021狠狠干| 日本aⅴ精品一区二区三区| 国产一级二级在线观看| 亚洲精品久久久蜜桃| 一卡二卡在线观看| 亚洲网站在线看| 午夜欧美激情| 好吊色欧美一区二区三区视频 | 国产欧美一区二区在线| 日韩欧美中文字幕一区二区| 日韩亚洲欧美成人一区| 麻豆tv免费在线观看| 国产精品jizz在线观看麻豆| 嫩草国产精品入口| 欧美久久久久久久久久久久久久| 激情另类小说区图片区视频区| 日韩一级片在线免费观看| 日韩欧美亚洲范冰冰与中字| 欧美 日韩 国产 精品| 欧美精品性视频| 精品视频在线一区| 欧美少妇在线观看| 极品美女销魂一区二区三区| 国产精品成人69xxx免费视频| 欧美系列一区二区| 成人网视频在线观看| 国产精品美乳在线观看| 国产欧美日韩在线观看视频| 欧美老熟妇喷水| 91麻豆精品一区二区三区| 日产精品久久久| 亚洲精品视频网上网址在线观看| 天堂av在线网| 欧美日韩成人一区二区三区| 欧美专区18| 成熟人妻av无码专区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 男人的天堂在线| 国产精品久久久久久久7电影| 青青草97国产精品麻豆| 看看黄色一级片| 亚洲免费在线视频一区 二区| 国产女同91疯狂高潮互磨| 欧美成人精品在线观看| 9l视频自拍蝌蚪9l视频成人| 国产va亚洲va在线va| 2024国产精品视频| 波多野结衣理论片| www.xxxx欧美| 亚洲综合影院| 男人揉女人奶房视频60分 | 日韩成人在线资源| 久久国产麻豆精品| 成年人av电影| 日韩精品福利网站| 国产成人精品亚洲日本在线观看| 一区二区欧美日韩| 国产成人自拍在线| 欧美一二三区视频| 夜夜嗨av色一区二区不卡| 亚洲人成网站在线在线观看| 国产乱子伦精品无码专区| 99精品国产热久久91蜜凸| 黄色网址中文字幕| 久久久精品免费视频| 久久午夜影院| 污污动漫在线观看| 夜夜精品浪潮av一区二区三区| 五月天丁香视频| 成人国产精品久久久| 1024成人| 亚洲精品一区二区三区在线播放| 欧美大片国产精品| 欧美成a人片在线观看久| 成人在线免费观看网址| 26uuu久久综合| av官网在线观看| 日产精品久久久一区二区福利| 91精品二区| 亚洲 小说 欧美 激情 另类| 欧美一级国产精品| 亚洲第一影院|