Qt編寫串列埠通訊程式全程圖文講解(一)
首先說明我們的程式設計環境是windows xp下,在Qt Creator中進行,如果在Linux下或直接用原始碼編寫,程式稍有不同,請自己改動。
在Qt中並沒有特定的串列埠控制類,現在大部分人使用的是第三方寫的qextserialport類,我們這裡也是使用的該類。我們可以去
http://sourceforge.net/projects/qextserialport/files/
進行下載,也可以去下載論壇上的
http://www.qtcn.org/bbs/read.php?tid=22847
下載到的檔案為:qextserialport-1.2win-alpha.zip
其內容如下圖:
我們在windows下只需要使用其中的6個檔案:
qextserialbase.cpp和qextserialbase.h,qextserialport.cpp和qextserialport.h,win_qextserialport.cpp和win_qextserialport.h
如果在Linux下只需將win_qextserialport.cpp和win_qextserialport.h 換為 posix_qextserialport.cpp和posix_qextserialport.h即可。
下面我們將講述詳細程式設計過程,這裡我們先給出完整的程式,然後再進行逐句分析。
1.開啟Qt Creator,新建Qt4 Gui Application,工程名設定為mycom,其他使用預設選項。
(注意:建立的工程路徑不能有中文。)
2.將上面所說的6個檔案複製到工程資料夾下,如下圖。
3.在工程中新增這6個檔案。
在Qt Creator中左側的檔案列表上,滑鼠右擊工程資料夾,在彈出的選單中選擇Add Existing Files,新增已存在的檔案。如下圖:
選擇工程資料夾裡的那6個檔案,進行新增。如下圖。
新增好後檔案列表如下圖所示:
4.點選mainwindow.ui,在視窗上加入一個Text Browser,用來顯示資訊。如下圖。
5.在mainwindow.h的相應位置新增標頭檔案#include "win_qextserialport.h",新增物件宣告Win_QextSerialPort *myCom;,新增槽函式宣告void readMyCom();,新增完後,如下圖。
6.在mainwindow.cpp的類的建構函式中新增如下語句。
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,500};
//定義一個結構體,用來存放串列埠各個引數
myCom = new Win_QextSerialPort("com1",myComSetting,QextSerialBase::EventDriven);
//定義串列埠物件,並傳遞引數,在建構函式裡對其進行初始化
myCom ->open(QIODevice::ReadWrite);
//以可讀寫方式開啟串列埠
connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));
//訊號和槽函式關聯,當串列埠緩衝區有資料時,進行讀串列埠操作
}
在下面新增readMyCom()函式的定義,新增如下程式碼。
void MainWindow::readMyCom() //讀串列埠函式
{
QByteArray temp = myCom->readAll();
//讀取串列埠緩衝區的所有資料給臨時變數temp
ui->textBrowser->insertPlainText(temp);
//將串列埠的資料顯示在視窗的文字瀏覽器中
}
新增完程式碼後如下圖。
此時如果執行程式,已經能實現讀取串列埠資料的功能了。我們將微控制器採集的溫度資訊由串列埠傳給計算機,效果如下圖。
這樣最簡單的串列埠通訊程式就完成了。可以看到它只需要加入幾行程式碼即可,非常簡單。
在下一篇中我們將詳細分析新增的每一條語句。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/lbsljn/archive/2009/12/13/4994830.aspx
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22785983/viewspace-662974/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Qt編寫串列埠通訊程式全程圖文講解(二)QT串列埠
- VC控制元件MSComm編寫串列埠通訊程式控制元件串列埠
- Linux下串列埠通訊詳解(下)讀寫串列埠及關閉串列埠Linux串列埠
- 串列埠通訊串列埠
- VC++串列埠通訊程式設計詳解C++串列埠程式設計
- 串列埠通訊 (轉)串列埠
- 串列埠通訊應用程式的解決方案 (轉)串列埠
- C#串列埠通訊程式SerialPort類C#串列埠
- 用C#一步步寫串列埠通訊C#串列埠
- linux 串列埠通訊Linux串列埠
- 串列埠通訊協議串列埠協議
- Android 串列埠通訊Android串列埠
- C# 串列埠通訊C#串列埠
- 11. 串列埠通訊串列埠
- 串列埠通訊型別串列埠型別
- (10)uart串列埠通訊串列埠
- 通過串列埠進行通訊 :串列埠
- 串列埠資料抓取及串列埠通訊模擬串列埠
- 安卓串列埠通訊疑問安卓串列埠
- java串列埠通訊例項 -Java串列埠
- VC++ 串列埠通訊(轉)C++串列埠
- 串列埠無法正常通訊串列埠
- 編寫第一個Qt程式QT
- AndroidSerialPort:安卓串列埠通訊庫Android安卓串列埠
- 串列埠通訊gui介面顯示串列埠GUI
- ROS環境下串列埠通訊ROS串列埠
- Android藍芽串列埠通訊Android藍芽串列埠
- VC++ 的串列埠通訊 (轉)C++串列埠
- 小型plc串列埠通訊簡介串列埠
- 串列埠通訊利器:SerialPortStream庫詳解,輕鬆實現C#串列埠開發串列埠C#
- 詳解linux下的串列埠通訊開發Linux串列埠
- 百度識別例程-QT介面-識別列表-串列埠通訊-文字影像QT串列埠
- 迪文屏OS彙編程式碼開發-串列埠篇串列埠
- STM32串列埠通訊串列埠
- C#串列埠通訊遇到的坑C#串列埠
- android ndk 虛擬串列埠通訊Android串列埠
- 用VB除錯串列埠通訊 (轉)除錯串列埠
- 一種MODBUS RTU擴充套件串列埠通訊協議套件串列埠協議