Qt 串口编程
来源:互联网 发布:168开奖网源码 编辑:程序博客网 时间:2024/05/22 19:27
Qt作为跨平台的GUI类库,它为我们提供了几乎能够想象得到的所有功能。但Qt没有为我们提供串口操作类,一般都是使用第三方提供的qextserialport类,我们可以在:http://sourceforge.net/projects/qextserialport/files/ 下载。
Windows下,我们只需要使用以下文件:qextserialbase.cpp、qextserialbase.h、qextserialport.cpp、qextserialport.h、win_qextserialport.cpp、win_qextserialport.h
Linux下,我们需要使用以下文件:qextserialbase.cpp、qextserialbase.h、qextserialport.cpp、qextserialport.h、posix_qextserialport.cpp、posix_qextserialport.h。
用粉色标示的两个代码文件在不同的操作系统下有所不同!
下面简单描述一下该类是如何使用的。
一、创建Qt工程,加入文件,如图
二、dialog.h、dialog.cpp为QDialog的派生类,在该类声明中做如下处理
dialog.h
... ...
#include "win_qextserialport.h"
#include "qextserialbase.h"
#include "qextserialport.h"
... ...
class Dialog : public QDialog{
Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0);~Dialog();private:Ui::Dialog *ui;Win_QextSerialPort *myWinCom; // 定义串口操作对象指针struct PortSettings myComSettings; // 定义串口配置信息结构体变量... ...
int SendCounter,ReceiveCounter;
... ...
void getComSettings(); // 串口配置设定函数,串口配置内容存放在myComSettings中
... ...
private slots:void readMyWinCom(); //定义串口数据读处理过程(槽)void opencloseDeal(); //串口打开关闭操作
... ...
};
dialog.cpp
... ...
void Dialog::readMyWinCom(){
this->ReceiveCounter += this->myWinCom->size();//获取串口缓冲区中数据长度QByteArray temp = this->myWinCom->readAll(); //读取串口数据... ...
}
void Dialog::opencloseDeal(){
... ...
this->getComSettings();this->myWinCom = new Win_QextSerialPort(ui->comComboBox->currentText(),myComSettings,QextSerialBase::EventDriven);if (this->myWinCom->open(QIODevice::ReadWrite)== true){this->connect(myWinCom,SIGNAL(readyRead()),this,SLOT(readMyWinCom()));
... ...
}
... ...
}
... ...
void Dialog::getComSettings(){
this->myComSettings.FlowControl = FLOW_OFF;this->myComSettings.Timeout_Millisec = 500;... ...
}
... ...
在Qt中,串口的使用过程大概如上,根据上述过程,本人实现了串口调试助手软件,该软件可以进行16进制数
0 0
- qt串口编程
- qt串口编程[转帖]
- qt 串口编程
- Qt实现串口编程
- Qt实现串口编程
- QT串口编程--多线程
- Qt 串口编程
- qt串口编程
- Qt串口编程
- QT串口编程
- qt串口编程
- Qt之串口编程
- Qt的串口编程
- Qt串口编程出错问题解决
- QT线程编程-串口收发
- Qt中的串口编程之一
- Qt中的串口编程之一
- QT串口编程(一)
- 【产品经理】设计一流产品九步法
- Qt 消息框应用
- 《Java程序员面试笔试宝典》之volatile有什么作用
- Qt 不规则窗体编程
- 《Java程序员面试笔试宝典》之组合与继承有什么区别
- Qt 串口编程
- 数据库总结
- Qt 工具栏中插入动画等其它可视部件
- 《Java程序员面试笔试宝典》之switch使用时有哪些注意事项
- 为什么子类不能访问基类的private成员?为什么要这样设计? .
- 《Java程序员面试笔试宝典》之字符串创建与存储的机制是什么
- 虚函数和纯虚函数的区别
- Ubuntu中编译链接Opencv应用的简便方式
- MapReduce 编程 系列七 MapReduce程序日志查看