自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Qt中實現(xiàn)串口通信

移動開發(fā)
本文內(nèi)容主要是在講在Qt中如何實現(xiàn)串口通信,文字描述不多,基本是代碼實現(xiàn)的,那么大家就看看過程吧。

本文所將內(nèi)容是在Qt中實現(xiàn)串口通信,文字描述不多,基本上是代碼實現(xiàn)。之前本人做過類似的小程序,不過那個是基于線程的。那么接下來看看本篇文字吧!

首先,加入了“打開串口”,“關閉串口”“傳送數(shù)據(jù)”三個按鈕,加入了一個行編輯框Line Edit。它們的命名如下:

“打開串口”按鈕命名為:openMyComBtn

“關閉串口”按鈕命名為:closeMyComBtn

“傳送數(shù)據(jù)”按鈕命名為:sendMsgBtn

要傳送數(shù)據(jù)的行編輯框命名為:sendMsgLineEdit

界面如下圖。

Qt編寫串口通信程序全程圖文講解

第二步,在“打開串口”按鈕上右擊,選擇Go to slot選項,然后選擇clicked()選項,進入它的單擊事件槽函數(shù)中,將上個程序中在構造函數(shù)里寫的語句全部剪切到這里。然后加入幾句按鈕的狀態(tài)設置語句。如下:

  1. void MainWindow::on_openMyComBtn_clicked()  
  2. {  
  3. struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,500};  
  4. //定義一個結構體,用來存放串口各個參數(shù)  
  5. myCom = new Win_QextSerialPort("com1",myComSetting,QextSerialBase::EventDriven);  
  6. //定義串口對象,并傳遞參數(shù),在構造函數(shù)里對其進行初始化  
  7. myCom ->open(QIODevice::ReadWrite);  
  8. //以可讀寫方式打開串口  
  9. connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));  
  10. //信號和槽函數(shù)關聯(lián),當串口緩沖區(qū)有數(shù)據(jù)時,進行讀串口操作  
  11. //  
  12. ui->openMyComBtn->setEnabled(false); //打開串口后“打開串口”按鈕不可用  
  13. ui->closeMyComBtn->setEnabled(true); //打開串口后“關閉串口”按鈕可用  
  14. ui->sendMsgBtn->setEnabled(true); //打開串口后“發(fā)送數(shù)據(jù)”按鈕可用  

然后在構造函數(shù)里也添加幾句按鈕初始狀態(tài)設置語句,如下:

  1. MainWindow::MainWindow(QWidget *parent)  
  2. : QMainWindow(parent), ui(new Ui::MainWindow)  
  3. {  
  4. ui->setupUi(this);  
  5. ui->closeMyComBtn->setEnabled(false); //開始“關閉串口”按鈕不可用  
  6. ui->sendMsgBtn->setEnabled(false); //開始“發(fā)送數(shù)據(jù)”按鈕不可用  

更改后程序如下圖所示:

Qt編寫串口通信程序全程圖文講解

這時運行程序,效果如下:

Qt編寫串口通信程序全程圖文講解

第三步,按上面的方法進入“關閉串口”按鈕和“發(fā)送數(shù)據(jù)”按鈕的單擊事件的槽函數(shù),更改如下。

  1. void MainWindow::on_closeMyComBtn_clicked()      //關閉串口槽函數(shù)  
  2. {  
  3. myCom->close();     //關閉串口,該函數(shù)在win_qextserialport.cpp文件中定義  
  4. ui->openMyComBtn->setEnabled(true); //關閉串口后“打開串口”按鈕可用  
  5. ui->closeMyComBtn->setEnabled(false); //關閉串口后“關閉串口”按鈕不可用  
  6. ui->sendMsgBtn->setEnabled(false); //關閉串口后“發(fā)送數(shù)據(jù)”按鈕不可用  
  7. }  
  8. void MainWindow::on_sendMsgBtn_clicked()       //發(fā)送數(shù)據(jù)槽函數(shù)  
  9. {  
  10. myCom->write(ui->sendMsgLineEdit->text().toAscii());      
  11. //以ASCII碼形式將行編輯框中的數(shù)據(jù)寫入串口  

Qt編寫串口通信程序全程圖文講解

最終效果如下:

Qt編寫串口通信程序全程圖文講解

(將數(shù)據(jù)x發(fā)送給單片機,單片機返回you send message is : x)

小結:關于在Qt中實現(xiàn)串口通信的內(nèi)容就說這么多,由于之前做過類似的小程序,所以比較感興趣,希望你能用到呢這方面的知識。

【編輯推薦】

Qt 中Socket編程實例

解析 QT 靜態(tài)庫和動態(tài)庫

Qt 平臺中使GUI保持響應流暢

QT中關于信號與槽機制的實現(xiàn)原理

QTP的Action間的信息共享的4種方法

責任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關推薦

2011-06-27 11:08:37

Qt 串口 通信

2011-06-22 17:49:35

Linux Qt 串口

2011-06-29 14:23:08

Qt 串口

2011-06-29 14:42:06

Qt 串口

2011-06-29 14:32:25

Qt 串口

2011-06-29 13:50:15

Qt 串口

2011-06-29 14:06:15

Qt 串口

2011-06-30 17:51:17

QT 元類型 線程

2011-06-22 17:36:50

QT Linux 串口

2024-06-03 10:11:13

2021-05-29 16:12:00

通信協(xié)議設備

2024-12-24 07:38:44

C#串口通信

2024-01-03 10:17:51

Linux通信

2021-01-18 05:30:22

串口通信Qt

2011-07-01 13:03:32

QT 線程 串口

2011-06-13 15:57:26

linux QT QTOPIA

2018-03-29 06:55:12

物聯(lián)網(wǎng)串口通信技術

2011-07-11 14:19:54

JAVA串口通信

2011-07-11 14:12:19

Java串口通信

2010-01-05 17:39:10

.NET Framew
點贊
收藏

51CTO技術棧公眾號