美文网首页
Qt5 串口读写

Qt5 串口读写

作者: 有事没事扯扯淡 | 来源:发表于2021-05-18 11:21 被阅读0次

还是直接上干货!!

1. 遍历所有可用串口

#include<QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QTimer>
#include <string>
#include <fstream>
#include "SaveAsGUI.h"

...
QSerialPort *serial_port_locate;
QStringList serialPortName;

serial_port_locate = new QSerialPort() ;

if (serial_port_locate->isOpen())   //如果串口已经打开了 先给他关闭了
{
    serial_port_locate->clear();
    serial_port_locate->close();
}
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
    serialPortName << info.portName();
    ui.comboBox_serialPort->addItem(info.portName());
    ui.comboBox_serialPort_measure->addItem(info.portName());
}

if (serialPortName.isEmpty())
{
    //QMessageBox::critical(0, "critical message", "Do you want to process?", QMessageBox::Ok | QMessageBox::Default, QMessageBox::Cancel | QMessageBox::Escape, 0);
    QMessageBox::warning(NULL, "Warning", "There is no COM! ", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
}

...

2. 初始化串口参数

void uart_open()
{
    //-> setting serial port
    serial_port_locate->setPortName(ui.comboBox_serialPort->currentText());   //    选取串口  
    if (!serial_port_locate->open(QIODevice::ReadWrite))                                       //打开串口  
    {
        QMessageBox::critical(NULL, "Error", "Cann't open COM port!", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
        return;
    }
    serial_port_locate->setBaudRate(QSerialPort::Baud38400);                            //设置波特率  
    serial_port_locate->setDataBits(QSerialPort::Data8);                                     //设置数据位数  
    serial_port_locate->setParity(QSerialPort::NoParity);                                      //设置奇偶校验   
    serial_port_locate->setStopBits(QSerialPort::OneStop);                                 //设置停止位 
    serial_port_locate->setFlowControl(QSerialPort::NoFlowControl);                //设置流控制  

    connect(serial_port_locate, SIGNAL(readyRead()), this, SLOT(get_data()));
    serial_port_locate->waitForReadyRead();
    //ui.light_locate->setIcon(icon_light_on);
}

3. 发送数据

std::string order = "*meas:dark 10 10 " + to_string(OUTPUT_MODE) + "\r";
serial_port_measure->write(order.c_str());
serial_port_measure->waitForReadyRead();

4. 接受数据

4.1 一次性读取

QByteArray readBuf;
readBuf = serial_port_locate->readAll();

4.2 阻塞 / 监听接收数据

此处不上源码了 给出官方链接,可以看看examples官方实现,直接抄就行~~

相关文章

  • Qt5 串口读写

    还是直接上干货!! 1. 遍历所有可用串口 2. 初始化串口参数 3. 发送数据 4. 接受数据 4.1 一次性读...

  • Qt串口通信

    1. Qt串口通信类QSerialPort 在Qt5的的更新中,新增了串口通信的相关接口类QSerialPort,...

  • Qt学习笔记(一)

    画图 qcustomplot 串口通信 Qt5以后自带QSerialPort 1 在工程文件(即.pro文件)中增...

  • 简述:在QT5中使用串口类

    在QT5中,我们友好的编译器亲切的为我们提供了串口类,让我们不再为简单的使用串口而发愁,这里就简单介绍一下我对串口...

  • Android-Demo使用模拟器 实现串口通讯

    串口通讯无非就是,打开、读写、关闭。首先我们需要几个软件。模拟串口软件:Configure Virtual Ser...

  • Android串口通信:串口读写

    在不久前,接触到了物联网的开发,当时一脸懵逼了,后来问了度娘和有幸遇到大神的指导,最终实现了功能。 首先先弄懂跟硬...

  • Qt5 串口数据读取

    由于RS232串口操作简单、通讯可靠,所以在工业领域中有大量的应用。而普通家用PC已经逐步淘汰该串口,但usb转串...

  • 串口通信

    关于android单片机串口通信 网上有很多关于android串口读写的结果,但是搜出来的都不太让我满意 ,下面贴...

  • ROS用python读写串口数据

    程序: 流程: 首先在Ubuntu下安装pyserial 查看串口名称,并给予权限 进行读写实验 在读写使用中用s...

  • Qt5学习:串口编程基础

    转载自QT开发(五十)——QT串口编程基础 一、QtSerialPort简介 (一)串口通信基础 目前使用最广泛的...

网友评论

      本文标题:Qt5 串口读写

      本文链接:https://www.haomeiwen.com/subject/ropejltx.html