QT5.5实现串口通信
QT5.1以上版本自带QtSerialPort集成库,只要在头文件中集成
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
这两个库,后续只需要调用函数,对串口名,读写方式,波特率,验证方式,数据位数,结束位进行相应设置,便可以连接相应串口进行通信。 部分代码:
if(ui->pushButton->text()==tr("打开串口")){
my_serialport= new QSerialPort();
my_serialport->setPortName(ui->comboBox->currentText());
my_serialport->open(QIODevice::ReadWrite);
my_serialport->setBaudRate(ui->comboBox_2->currentText().toInt());
switch(ui->comboBox_3->currentIndex()){
case 0: my_serialport->setParity(QSerialPort::NoParity);break;
case 1: my_serialport->setParity(QSerialPort::OddParity);break;
case 2: my_serialport->setParity(QSerialPort::EvenParity);break;
default: break;
}
switch(ui->comboBox_4->currentIndex()){
case 0: my_serialport->setDataBits(QSerialPort::Data8);break;
case 1: my_serialport->setDataBits(QSerialPort::Data7);break;
case 2: my_serialport->setDataBits(QSerialPort::Data6);break;
default: break;
}
switch(ui->comboBox_5->currentIndex()){
case 0: my_serialport->setStopBits(QSerialPort::OneStop);break;
case 1: my_serialport->setStopBits(QSerialPort::TwoStop);break;
default: break;
}
my_serialport->setFlowControl(QSerialPort::NoFlowControl);
connect(my_serialport,SIGNAL(readyRead()),this,SLOT(my_readuart()));
ui->comboBox->setEnabled(false);
ui->comboBox_2->setEnabled(false);
ui->comboBox_3->setEnabled(false);
ui->comboBox_4->setEnabled(false);
ui->comboBox_5->setEnabled(false);
ui->label_6->setStyleSheet("background-color:red");
ui->pushButton->setText(tr("关闭串口"));
ui->pushButton_2->setEnabled(true);
}
else {
my_serialport->clear();
my_serialport->deleteLater();
// my_serialport->deleteLater();
ui->comboBox->setEnabled(true);
ui->comboBox_2->setEnabled(true);
ui->comboBox_3->setEnabled(true);
ui->comboBox_4->setEnabled(true);
ui->comboBox_5->setEnabled(true);
// ui->label_6->setStyleSheet("background-color:none");
ui->label_6->setStyleSheet("background-color:rgb(130,130,130)");
ui->pushButton->setText(tr("打开串口"));
ui->pushButton_2->setEnabled(false);
}
其中参考于csdn的yh_1988。
void serial::on_pushButton_2_clicked()
{
my_serialport->write(ui->lineEdit->text().toLatin1());
}
值得注意的是,在用于串口通信时,上述函数中只讲lineEdit中的text传递给串口,但是这样是缺少换行符/n的。如果是用在有uboot系统上通过串口进行交互时,应该修改为:
void serial::on_pushButton_2_clicked()
{
my_serialport->write(ui->lineEdit->text().toLatin1());
my_serialport->write("/n");
}
这样就可以正常的通信啦。 系统启动过程打印
输入?弹出帮助菜单
最近用Qt5.9重新编辑了一个Demo,需要下载的同学可以在下面的网址下载
https://github.com/dong930623/Qt/tree/master/SerialPortToolDemo
QT5.5实现串口通信的更多相关文章
- Qt 串口通信
在Qt5之前,串口通信基本依赖于第三方库,下面是我曾接触过的串口通信类库: 名称 语言 平台 QextSerialPort QT C++ Win/Linux http://sourceforge. ...
- QT5 TK1 串口通信
对TK1中基于QT5的串口通信过程进行总结.按照软件安装及通信实现的顺序. 1.QT5安装 较简洁方式:打开软件中心(类似A形),搜索qtcreator,点击安装即可. 2.串口通信库安装 采用上述方 ...
- Qt串口通信
1. Qt串口通信类QSerialPort 在Qt5的的更新中,新增了串口通信的相关接口类QSerialPort,这使得在开发者在使用Qt进行UI开发时,可以更加简单有效地实现串口通信的相关功能. 开 ...
- Qt实现串口通信总结
Qt实现串口通信总结 注意: Qt5发布之前,Qt实现串口通信一般是采用第三方类库qextserialport.Qt5发布后自带了QtSerialPort 能够支持串口通信. 1.Qextserial ...
- .NET 串口通信
这段时间做了一个和硬件设备通信的小项目,涉及到扫描头.输送线.称重机.贴标机等硬件.和各设备之间通信使用的是串口或网络(Socket)的方式.扫描头和贴标机使用的网络通信,输送线和称重机使用的是串口通 ...
- BluetoothChat用于蓝牙串口通信的修改方法
本人最近在研究嵌入式的串口通信,任务是要写一个手机端的遥控器用来遥控双轮平衡小车.界面只用了一个小时就写好了,重要的问题是如何与板子所带的SPP-CA蓝牙模块进行通信. SPP-CA模块自带代码,在这 ...
- Win10 IoT C#开发 4 - UART 串口通信
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,既可以开发设备UI与用户交互式操作,又可以控制GPIO等接口,使得原来嵌入式繁琐的开发变得简单.通过Remote Debug ...
- 使用Java实现简单串口通信
最近一门课要求编写一个上位机串口通信工具,我基于Java编写了一个带有图形界面的简单串口通信工具,下面详述一下过程,供大家参考 ^_^ 一: 首先,你需要下载一个额外的支持Java串口通信操作的jar ...
- Java 串口通信
在Windows系统下,用Java开发串口通信相关的程序时,需要用到几个文件. (1)win32com.dll 要放在jdk\jre\bin目录下. (2)comm.jar 和javax.comm.p ...
随机推荐
- 慕课linux学习笔记(六)常用命令(3)
Find 命令 #搜索文件 Find [搜索范围] [搜索条件] e.g. find / -name isnstall.log 搜索速度会非常慢 避免大范围搜索,会非常耗费系统资源 Find是在系统当 ...
- CentOS和Ubuntu的区别
CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代 ...
- iframe的操作
获取iframe的window,获取Iframe的document,获取父页面的window,某个环境是否iframe,动态创建iframe 这是demo.html,这个页用iframe嵌入了ifra ...
- POJ1671 动态规划
POJ1671 问题重述: 本题求解一首N行诗可能的押韵结构的数目.所谓押韵结构,指的是指定的行数之间必须押韵.例如一首3行诗的押韵结构可以是aaa, aab, aba, baa, abc 5种(aa ...
- EBS收单方/收货方
select rt.name, hcas.org_id from ar.hz_cust_acct_sites_all hcas, ar.hz_cust_site_uses_all hcsu, ra_t ...
- ASP.NET MVC3 系列教程 – 新的Layout布局系统
原文地址:http://www.cnblogs.com/highend/archive/2011/04/18/asp_net_mvc3_layout.html I:回忆MVC2当中MasterPage ...
- awk笔记1
grep: 文本过滤器 grep 'pattern' input_file ... sed:流编辑器 awk: 报告生成器 格式化以后,显示 AWK a.k.a. Aho, Kernigh ...
- [转]Hulu 2013北京地区校招笔试题
填空题: 1.中序遍历二叉树,结果为ABCDEFGH,后序遍历结果为ABEDCHGF,逆序遍历结果为? 2.对字符串HELL0_HULU中的字符进行二进制编码,使得字符串的编码长度尽可能短,最短长度为 ...
- python学习之路-1 python基础操作
本篇所涉及的内容 变量 常量 字符编码 用户交互input 格式化字符串 python的缩进规则 注释 初始模块 条件判断 循环 变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中 ...
- 下拉框Html.DropDownList 和DropDownListFor 的经常用法
一.非强类型: Controller: ViewData["AreId"] = from a in rp.GetArea() ...