Qt 串口通信
来源:互联网 发布:阿里云多个域名备案 编辑:程序博客网 时间:2024/05/29 07:19
开发环境 Qt5.5.1、Qt Creator 3.5.1
1、创建项目 ( QtSerialDemo )
2、添加组件——修改 “项目名.pro” ( QtSerialDemo.pro ) ,添加
QT += serialport
3、添加如下使用 “Qt串口” 所需的头文件
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
4、主要串口通讯方法
(1)枚举与当前设备连接的所有串口,如果发现是所需要的串口 ( COM4 ),则将串口接收数据的信号与自定义的槽函数readyReadSlot()进行绑定,在槽函数readyReadSlot()中处理接收到的数据。
bool QtDemoWindow::initSerial(){
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
qDebug() << "Name : " << info.portName();
qDebug() << "Description : " << info.description();
qDebug() << "Manufacturer: " << info.manufacturer();
qDebug() << "serialNumber" << info.serialNumber();
serial.setPort(info);
int result = QString::localeAwareCompare(info.portName(), "COM4");
qDebug()<<"result = "<<result;
if(result == 0) {
if(serial.open(QIODevice::ReadWrite)) {
qDebug()<<"serial open";
serial.setBaudRate(QSerialPort::Baud9600);
serial.setDataBits(QSerialPort::Data8);
serial.setStopBits(QSerialPort::OneStop);
serial.setParity(QSerialPort::OddParity);
serial.setFlowControl(QSerialPort::SoftwareControl);
serial.clearError();
serial.clear();
connect(&serial, SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
return true;
}
}
}
return false;
}(2)处理收到的数据,这里只是简单打印收到的数据,需要替换为实际处理方法。
void QtDemoWindow::readyReadSlot()
{
QByteArray arr = serial.readAll();
qDebug()<<arr;
}(3)发送数据
void QtDemoWindow::serialSendData()
{
if(serial.isOpen()) {
if(serial.isDataTerminalReady()) {
serial.write("isDataTerminalReady true");
} else {
qDebug()<<"DataTerminal not Ready";
}
} else {
qDebug()<<"serial not open";
}
}
注意:注释中,括号内的为值为本人环境下所测试的值,在使用时需要按照实际环境进行修改。
1 0
- Qt串口通信专题
- 转:Qt串口通信
- QT串口通信
- QT串口通信
- QT 串口通信2
- qt 串口通信1
- Qt串口通信学习方法
- QT串口通信
- QT 串口通信
- Qt 串口通信
- QT串口通信(1)
- QT串口通信实例
- Qt:串口通信
- Linux虚拟串口 及 Qt串口通信
- Linux虚拟串口 及 Qt串口通信
- Qt串口通信QextSerialPort类
- Qt串口通信专题教程
- Qt串口通信专题教程
- 运行时库ML\MT\MD的区分和优劣
- hadoop & hive任务优化之map个数的影响因子
- HDOJ 2052 Picture(暑期练习)
- SQL Server 链接服务器(Oracle,DB2)
- java中字符串与字符数组之间的转换
- Qt 串口通信
- 第11周项目2- 点-圆-圆柱类族的设计存储班长信息的学生类
- 24点
- 深度学习系列文章之四:ubantu系统下MATLAB安装
- AndroidManifest配置之uses-feature
- 乌龟棋_CODEVS1068_DP
- 设计模式23篇:解释器模式
- 编译原理之后缀表达式生成与计算
- redis学习笔记