做毕业设计要用到串口通信,由于该项目是基于Qt开发的,网上查了下Qt常用的第三方类库是QExtSerialPort。于是下载下来安装了下,以下是安装的过程。
一 安装
QExtSerialPort的项目网网址是:http://qextserialport.sourceforge.net/,上面有关于它的详细介绍。下载地址是:http://sourceforge.net/projects/qextserialport/files/。到现在为止,QExtSerialPort有四个版本:1.2win-alpha, 1.1, 0.9.0, 0.8.0,由于我是在windows下开发的,所以我选用的是1.2win-alpha版。
注:1.2win-alpha最好是windows平台下使用,若在linux下使用的话,将无法使用Event driven mode(Posix_QextSerialPort类的初始化选项为QextSerialBase::EventDriven),即无法采用信号和槽机制将Posix_QextSerialPort类的readyRead信号与自定义槽相连。网上似乎有牛人实现了posix平台下的Event driven mode,这是原文的链接:http://code.google.com/p/qextserialport/issues/detail?id=7,不过我没实验过。
1. 下载1.2win-alpha版的代码包:qextserialport-1.2win-alpha.zip,解压到任意目录,例如:E:/Temp/qextserialport-1.2win-alpha
2. 进入E:/Temp/qextserialport-1.2win-alpha目录,执行qmake make all
3. 编译完成后,在E:/Temp/qextserialport-1.2win-alpha/build下会生成libqextserialportd.a,qextserialportd.dll,libqextserialport.a,qextserialport.dll等文件。将qextserialportd.dll和qextserialport.dll拷贝到Qt的bin目录(在我的电脑上是D:/Qt/2010.02.1/qt/bin),将libqextserialportd.a和libqextserialport.a拷贝到Qt的lib目录(在我的电脑上是D:/Qt/2010.02.1/qt/lib)。
4. 在Qt的include目录下新建QExtSerialPort文件夹,将qextserialport-1.2win-alpha里的所有头文件复制过去,修改qextserialport.h文件:
将
/*POSIX CODE*/ #ifdef _TTY_POSIX_ #include "posix_qextserialport.h" #define QextBaseType Posix_QextSerialPort /*MS WINDOWS CODE*/ #else #include "win_qextserialport.h" #define QextBaseType Win_QextSerialPort #endif
改为
#include "win_qextserialport.h" #define QextBaseType Win_QextSerialPort
这样,QExtSerialPort库的安装就完成了。
最后,在使用时,须在Qt工程的pro文件中加入
LIBS += -lqextserialport
INCLUDEPATH += D:/Qt/2010.02.1/qt/include/QExtSerialPort
二 简单使用
关于QExtSerialPort的使用教程,网上有很多,这里我主要想说一下必须先建立串口链接再进行串口的相关设置。我刚开始时没有注意到这一点,浪费了很多时间。下面的是我用QExtSerialPort写的一个简单的串口类:
头文件
/* * SerialPort.h * * Created on: 2010-5-19 * Author: Administrator */ #ifndef SERIALPORT_H_ #define SERIALPORT_H_ #include
cpp实现
/* * SerialPort.cpp * * Created on: 2010-5-19 * Author: Administrator */ #include