QT5.1以上版本自带QtSerialPort集成库,只要在头文件中集成

  1. #include <QtSerialPort/QSerialPort>
  1. #include <QtSerialPort/QSerialPortInfo>
    这两个库,后续只需要调用函数,对串口名,读写方式,波特率,验证方式,数据位数,结束位进行相应设置,便可以连接相应串口进行通信。
  2.  
  3. 部分代码:
  1. if(ui->pushButton->text()==tr("打开串口")){
  1. my_serialport= new QSerialPort();
  1. my_serialport->setPortName(ui->comboBox->currentText());
  1. my_serialport->open(QIODevice::ReadWrite);
  1. my_serialport->setBaudRate(ui->comboBox_2->currentText().toInt());
  1. switch(ui->comboBox_3->currentIndex()){
  1. case 0: my_serialport->setParity(QSerialPort::NoParity);break;
  1. case 1: my_serialport->setParity(QSerialPort::OddParity);break;
  1. case 2: my_serialport->setParity(QSerialPort::EvenParity);break;
  1. default: break;
  1. }
  1. switch(ui->comboBox_4->currentIndex()){
  1. case 0: my_serialport->setDataBits(QSerialPort::Data8);break;
  1. case 1: my_serialport->setDataBits(QSerialPort::Data7);break;
  1. case 2: my_serialport->setDataBits(QSerialPort::Data6);break;
  1. default: break;
  1. }
  1. switch(ui->comboBox_5->currentIndex()){
  1. case 0: my_serialport->setStopBits(QSerialPort::OneStop);break;
  1. case 1: my_serialport->setStopBits(QSerialPort::TwoStop);break;
  1. default: break;
  1. }
  1. my_serialport->setFlowControl(QSerialPort::NoFlowControl);
  1. connect(my_serialport,SIGNAL(readyRead()),this,SLOT(my_readuart()));
  1. ui->comboBox->setEnabled(false);
  1. ui->comboBox_2->setEnabled(false);
  1. ui->comboBox_3->setEnabled(false);
  1. ui->comboBox_4->setEnabled(false);
  1. ui->comboBox_5->setEnabled(false);
  1. ui->label_6->setStyleSheet("background-color:red");
  1. ui->pushButton->setText(tr("关闭串口"));
  1. ui->pushButton_2->setEnabled(true);
  1. }
  1. else {
  1. my_serialport->clear();
  1. my_serialport->deleteLater();
  1. // my_serialport->deleteLater();
  1. ui->comboBox->setEnabled(true);
  1. ui->comboBox_2->setEnabled(true);
  1. ui->comboBox_3->setEnabled(true);
  1. ui->comboBox_4->setEnabled(true);
  1. ui->comboBox_5->setEnabled(true);
  1. // ui->label_6->setStyleSheet("background-color:none");
  1. ui->label_6->setStyleSheet("background-color:rgb(130,130,130)");
  1. ui->pushButton->setText(tr("打开串口"));
  1. ui->pushButton_2->setEnabled(false);
  1. }
    其中参考于csdnyh_1988
  1. void serial::on_pushButton_2_clicked()
  1. {
  1. my_serialport->write(ui->lineEdit->text().toLatin1());
  1. }
  1. 值得注意的是,在用于串口通信时,上述函数中只讲lineEdit中的text传递给串口,但是这样是缺少换行符/n的。如果是用在有uboot系统上通过串口进行交互时,应该修改为:
  1. void serial::on_pushButton_2_clicked()
  1. {
  1. my_serialport->write(ui->lineEdit->text().toLatin1());
      my_serialport->write("/n");
  1. }
  1. 这样就可以正常的通信啦。
  2.  
  3. 系统启动过程打印

输入?弹出帮助菜单

最近用Qt5.9重新编辑了一个Demo,需要下载的同学可以在下面的网址下载

https://github.com/dong930623/Qt/tree/master/SerialPortToolDemo

QT5.5实现串口通信的更多相关文章

  1. Qt 串口通信

    在Qt5之前,串口通信基本依赖于第三方库,下面是我曾接触过的串口通信类库: 名称 语言 平台   QextSerialPort QT C++ Win/Linux http://sourceforge. ...

  2. QT5 TK1 串口通信

    对TK1中基于QT5的串口通信过程进行总结.按照软件安装及通信实现的顺序. 1.QT5安装 较简洁方式:打开软件中心(类似A形),搜索qtcreator,点击安装即可. 2.串口通信库安装 采用上述方 ...

  3. Qt串口通信

    1. Qt串口通信类QSerialPort 在Qt5的的更新中,新增了串口通信的相关接口类QSerialPort,这使得在开发者在使用Qt进行UI开发时,可以更加简单有效地实现串口通信的相关功能. 开 ...

  4. Qt实现串口通信总结

    Qt实现串口通信总结 注意: Qt5发布之前,Qt实现串口通信一般是采用第三方类库qextserialport.Qt5发布后自带了QtSerialPort 能够支持串口通信. 1.Qextserial ...

  5. .NET 串口通信

    这段时间做了一个和硬件设备通信的小项目,涉及到扫描头.输送线.称重机.贴标机等硬件.和各设备之间通信使用的是串口或网络(Socket)的方式.扫描头和贴标机使用的网络通信,输送线和称重机使用的是串口通 ...

  6. BluetoothChat用于蓝牙串口通信的修改方法

    本人最近在研究嵌入式的串口通信,任务是要写一个手机端的遥控器用来遥控双轮平衡小车.界面只用了一个小时就写好了,重要的问题是如何与板子所带的SPP-CA蓝牙模块进行通信. SPP-CA模块自带代码,在这 ...

  7. Win10 IoT C#开发 4 - UART 串口通信

    Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,既可以开发设备UI与用户交互式操作,又可以控制GPIO等接口,使得原来嵌入式繁琐的开发变得简单.通过Remote Debug ...

  8. 使用Java实现简单串口通信

    最近一门课要求编写一个上位机串口通信工具,我基于Java编写了一个带有图形界面的简单串口通信工具,下面详述一下过程,供大家参考 ^_^ 一: 首先,你需要下载一个额外的支持Java串口通信操作的jar ...

  9. Java 串口通信

    在Windows系统下,用Java开发串口通信相关的程序时,需要用到几个文件. (1)win32com.dll 要放在jdk\jre\bin目录下. (2)comm.jar 和javax.comm.p ...

随机推荐

  1. 方法覆盖(override)”的要点

    方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!请自行编写代码测试以下特性:在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 结论:          在“ ...

  2. 自动化测试CTS命令

    #!/sbin/sh chmod +x /system/bin/input i=0 while [ "$i" != "10" ] do #am instrume ...

  3. 【1】Laravel5.1 安装

    1.安装composer http://www.phpcomposer.com/ 这个是中文网址里边有教程,但是由于被墙的缘故,可以通过下边这个链接下载Windows安装包 http://docs.p ...

  4. 织梦dedecms返回上一级链接代码

    如题:织梦dede手机页面,如果我进入了下一级页面,想回上一级,<a href="xx">该用什么标签? 用JS实现,代码如下 <a href="jav ...

  5. uiautomator <一> 编译运行

    uiautomator testcase 一.新建Java工程 二.导入lib包 android.jar 和 uiautomator.jar ,选中点击右键Add to buildPath 三.新建测 ...

  6. Android原理View、ViewGroup

    Android的UI界面都是由View和ViewGroup及其派生类组合而成的.其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的.Andro ...

  7. hdu 1599 find the mincost route

    http://acm.hdu.edu.cn/showproblem.php?pid=1599 floyd找最小环. #include <cstdio> #include <cstri ...

  8. flexbox自动完成

    1.引入文件 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ty ...

  9. 2013第49周三IE9文档模式

    今天完善了原有模块的代码和注释,然后继续之前新模块的开发,并写了两边的service接口,除了因为邮件中有部分问题让我分心外,专心下来写代码的感觉真好,今天基本上没遇到多少让我新感悟的技术问题,就总结 ...

  10. Php官方指导安装与配置

    From:http://php.net/manual/zh/install.php 提示:如需在 Windows 平台设置并立即运行 PHP,您还可以:下载 WebMatrix 安装与配置 安装前需要 ...