Qt5自带串口调试 --使用signal接收数据,自动侦测端口列表
2014-12-08 14:39
489 查看
Qt5自带串口初步用一下感觉还不错。
调试记录
.pro文件增加
.h文件增加
.cpp文件
构造函数内
开启串口按钮槽函数
读串口槽函数
发送数据槽函数
关闭串口槽函数
测试时使用9600波特率,数据接收反映很迅速,不需要Qt4中要检测接收缓冲区是否有剩余数据的问题。
做一一个简单的串口调试助手,源代码分享给大家
http://download.csdn.net/detail/yh_1988/8236443
调试记录
.pro文件增加
QT += serialport
.h文件增加
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
private slots: void my_readuart();//串口接收数据槽函数
private:
QSerialPort *my_serialport;
.cpp文件
构造函数内
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) { QSerialPort serial; serial.setPort(info); if (serial.open(QIODevice::ReadWrite)) { ui->comboBox->addItem(info.portName()); ui->textEdit->append(tr("检测到端口列表:")); ui->textEdit->append(info.portName()); ui->textEdit->append(info.description()); ui->textEdit->append(info.manufacturer()); serial.close(); } } my_serialport= new QSerialPort(); ui->pushButton_3->setEnabled(false); ui->comboBox_2->setCurrentIndex(1);//默认9600
开启串口按钮槽函数
void MainWindow::on_pushButton_clicked() { // my_serialport= new QSerialPort(); my_serialport->setPortName(ui->comboBox->currentText()); my_serialport->open(QIODevice::ReadWrite); my_serialport->setBaudRate(ui->comboBox_2->currentText().toInt()); my_serialport->setDataBits(QSerialPort::Data8); my_serialport->setParity(QSerialPort::NoParity); my_serialport->setStopBits(QSerialPort::OneStop); my_serialport->setFlowControl(QSerialPort::NoFlowControl); connect(my_serialport,SIGNAL(readyRead()),this,SLOT(my_readuart())); ui->pushButton->setEnabled(false);//禁止打开串口按钮 ui->pushButton_3->setEnabled(true);//允许关闭串口按钮 }
读串口槽函数
void MainWindow::my_readuart() { QByteArray requestData; requestData = my_serialport->readAll(); if(requestData!= NULL) { ui->textEdit->append(tr(requestData)); } requestData.clear(); }
发送数据槽函数
void MainWindow::on_pushButton_2_clicked() { my_serialport->write(ui->lineEdit->text().toLatin1()); }
关闭串口槽函数
void MainWindow::on_pushButton_3_clicked() { my_serialport->clear(); ui->pushButton->setEnabled(true); ui->pushButton_3->setEnabled(false); // my_serialport->deleteLater(); }
测试时使用9600波特率,数据接收反映很迅速,不需要Qt4中要检测接收缓冲区是否有剩余数据的问题。
做一一个简单的串口调试助手,源代码分享给大家
http://download.csdn.net/detail/yh_1988/8236443
相关文章推荐
- Qt之串口编程--使用事件驱动来触发接收数据
- Linux下串口调试及使用shell编程接收数据
- 解决使用MSComm控件进行串口数据的接收数据不完整
- Qt中串口16进制发送和接收数据
- QT 串口接收的16进制数据转float
- Qt从零开始制作串口调试助手-(第十章、串口接收数据处理)-Creator_Ly
- STM32使用DMA加串口空闲中断接收数据
- 让JRTPLIB 发送/接收数据时使用同一个端口
- Qt 串口接收数据变大写,加空格
- STM8S003F使用IO口模拟串口(三)使用中断方式发送和接收数据
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和不能接收数据问题讨论
- 颜色传感器上位机调试软件(串口接收数据实时显示颜色!)
- struts2--使用自带标签自动添加列表
- Qt 自动搜索串口号列表
- 关于STM32串口调试RS485时自动进入接收中断
- 地磅称量系统之(59) 接收串口数据(串口控件的属性设置和超级终端的使用)
- QT串口接收十六进制数据在文本框中显示
- Qt自带的自动打包dll工具使用方法
- STM32F334使用串口发送接收数据
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题