Qt中的串口編程之一


  1.                                                                 QtSerialPort
    1. 簡介
    2. 功能介紹
      1. SerialPort
      2. SerialPortInfo
    3. 源代碼
    4. 編譯和安裝
      1. 配置編譯環境
      2. Perl只是在Qt5的時候才需要Qt4的情況下可以不配置
      3. 使用如下推薦步驟在Qt4Qt5下編譯和安裝QtSerialPort庫
    5. 使用方法
    6. 實際操作
      1. 代碼下載
      2. 編譯
      3. 安裝
      4. 測試運行自帶的examples
      5. 使用QSerialPort庫
        1. 1創建一個Qt Console應用程序
        2. 2修改main函數
        3. 3編譯后運行如下

  QtSerialPort

簡介

         QtSerialPort模塊是Qt5庫的附加部分,為硬件和虛擬的串口提供了統一的接口。注意:該模塊也增加了對Qt4的支持。
        串口由於其簡單和可靠,目前在像嵌入式系統,機器人等工業中依舊用得很多。使用QtSerialPort模塊,開發者可以大大縮短開發串口相關的應用程序的周期。使用QtSerialPort模塊最初是來源於第三方庫QSerialDevice(2.0分支),現在QtSerialPort已經移到了https://codereview.qt-project.org/代碼庫上。

功能介紹

目前,該模塊API只包括兩個類:Serial和SerialPortInfo。

【SerialPort】

SerialPort是該模塊的基礎類,提供了一系列基礎的方法和屬性來訪問串口資源。

SerialPort類對操作系統的支持如下:

對Symbian平台的支持只是部分的,是因為缺乏開發者,因為諾基亞已經決定放棄該平台,Qt5也不會包括對該平台的支持。

【SerialPortInfo】

SerialPortInfo是一個幫助類。它提供了系統上可用的串口的信息。

SerialPortInfo類對操作系統的支持如下:

對Symbian平台的支持只是部分的,是因為缺乏開發者,因為諾基亞已經決定放棄該平台,Qt5也不會包括對該平台的支持。

源代碼

目前,QtSerialPort相關的源代碼都可以通過瀏覽器瀏覽:https://qt.gitorious.org/qt/qtserialport
也可以通過git下載:git clone git://gitorious.org/qt/qtserialport.git

編譯和安裝

注意:最好選擇影子構建,因為這樣的話構建目錄和源代碼目錄是分開的,這樣就允許你保持源代碼目錄是干凈的。
編譯步驟:

1、配置編譯環境

*安裝Perl
*確保環境變量設置正確:Qt4/Qt5;編譯器;Perl
*創建編譯目錄:跟源代碼目錄同級
/
|- /serialport-src
|- /serialport-build

2、Perl只是在Qt5的時候才需要,Qt4的情況下可以不配置

3、使用如下推薦步驟在Qt4/Qt5下編譯和安裝QtSerialPort庫

cd serialport-build
qmake ../serialport-src/qtserialport.pro
make [or 'nmake' for MSVC compiler, or 'mingw32-make' for MinGW compiler]
make install [or 'nmake install' for MSVC compiler, or 'mingw32-make install' for MinGW compiler]
注意:在*nix系統上,你可能需要超級用戶的權限才能執行安裝這一步驟:
sudo make install

使用方法

QtSerialPort提供相應的庫文件,我們在編寫自己的應用程序的時候可以使用這些庫,使用方法如下:
Qt4
CONFIG += serialport
Qt5
QT += serialport
然后在工程中包含相應的頭文件就行:
...
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
...
示例代碼

#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
 
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
 
QT_USE_NAMESPACE
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    // Example use QSerialPortInfo
    foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
        qDebug() << "Name        : " << info.portName();
        qDebug() << "Description : " << info.description();
        qDebug() << "Manufacturer: " << info.manufacturer();
 
        // Example use QSerialPort
        QSerialPort serial;
        serial.setPort(info);
        if (serial.open(QIODevice::ReadWrite))
            serial.close();
    }
   
    return a.exec();
}

注意:CONFIG += serialport必須是.pro文件中的第一行或者第二行。

實際操作

1、代碼下載:

2、編譯:

3、安裝:

sudo make install后,我的系統上因為設置了Qt5的環境變量:

頭文件安裝到了:/opt/Qt5.0.1/5.0.1/gcc/include/QtSerialPort

庫文件安裝到了:/opt/Qt5.0.1/5.0.1/gcc/lib

4、測試,運行自帶的examples:

5、使用QSerialPort庫

(1)創建一個Qt Console應用程序

修改.pro文件,添加serialport庫,如下:

(2)修改main函數

如下:添加QtSerialPort庫的相應頭文件,並實現簡單的代碼:

#include <QtCore/QDebug>
#include "QSerialPort"
#include "QSerialPortInfo"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    // Example use QSerialPortInfo
    foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
        qDebug() << "Name        : " << info.portName();
        qDebug() << "Description : " << info.description();
        qDebug() << "Manufacturer: " << info.manufacturer();

        // Example use QSerialPort
        QSerialPort serial;
        serial.setPort(info);
        if (serial.open(QIODevice::ReadWrite))
            serial.close();
    }

    return a.exec();
}

(3)編譯后運行如下:

 

 

 轉自:http://blog.csdn.net/chenlong12580/article/details/8976176#t18


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM