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 ...
随机推荐
- 方法覆盖(override)”的要点
方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!请自行编写代码测试以下特性:在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 结论: 在“ ...
- 自动化测试CTS命令
#!/sbin/sh chmod +x /system/bin/input i=0 while [ "$i" != "10" ] do #am instrume ...
- 【1】Laravel5.1 安装
1.安装composer http://www.phpcomposer.com/ 这个是中文网址里边有教程,但是由于被墙的缘故,可以通过下边这个链接下载Windows安装包 http://docs.p ...
- 织梦dedecms返回上一级链接代码
如题:织梦dede手机页面,如果我进入了下一级页面,想回上一级,<a href="xx">该用什么标签? 用JS实现,代码如下 <a href="jav ...
- uiautomator <一> 编译运行
uiautomator testcase 一.新建Java工程 二.导入lib包 android.jar 和 uiautomator.jar ,选中点击右键Add to buildPath 三.新建测 ...
- Android原理View、ViewGroup
Android的UI界面都是由View和ViewGroup及其派生类组合而成的.其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的.Andro ...
- hdu 1599 find the mincost route
http://acm.hdu.edu.cn/showproblem.php?pid=1599 floyd找最小环. #include <cstdio> #include <cstri ...
- flexbox自动完成
1.引入文件 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ty ...
- 2013第49周三IE9文档模式
今天完善了原有模块的代码和注释,然后继续之前新模块的开发,并写了两边的service接口,除了因为邮件中有部分问题让我分心外,专心下来写代码的感觉真好,今天基本上没遇到多少让我新感悟的技术问题,就总结 ...
- Php官方指导安装与配置
From:http://php.net/manual/zh/install.php 提示:如需在 Windows 平台设置并立即运行 PHP,您还可以:下载 WebMatrix 安装与配置 安装前需要 ...