QT-串口基本流程

添加串口库

QT       += core gui serialport

添加必要头文件

#include <QSerialPort>        //提供访问串口的功能

#include <QSerialPortInfo>    //提供系统中存在的串口的信息

初始化串口对象

//创建串口对象

QSerialPort serial;

//设置串口名 Windows

//serial.setPortName("COM3");

//设置串口名 linux

serial.setPortName("/dev/ttyUSB0");

 //设置波特率

serial.setBaudRate(QSerialPort::Baud9600);

 //设置数据位数

 serial.setDataBits(QSerialPort::Data8);

//设置奇偶校验

serial.setParity(QSerialPort::NoParity);

//设置停止位

serial.setStopBits(QSerialPort::OneStop);

//设置流控制

serial.setFlowControl(QSerialPort::NoFlowControl);

 //打开串口

serial.open(QIODevice::ReadWrite);

串口发送

QByteArray sendBuf="ATI\r\n";

serial.write(sendBuf);

串口接受  可以使用槽函数来做,这样避免去轮询

//连接信号和槽

QObject::connect(&serial, &QSerialPort::readyRead, this, &MainWindow::serialPort_readyRead);

 

//声明槽函数

public slots:

    void serialPort_readyRead();

 

//编写的槽函数

void MainWindow::serialPort_readyRead()

{

    //从接收缓冲区中读取数据

    QByteArray buffer = serial.readAll();

 

    qDebug () << "read :" + buffer;

 

    serial.close();

 

}

 

如果出现串口打开失败,那就是linux下串口权限不够

QIODevice::write (QSerialPort): device not open

 

修改权限解决

sudo chmod 666 /dev/ttyUSB0

 

 

获取所有当前可用的串口的名字

   QStringList m_serialPortName;

    foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts())

    {

        m_serialPortName << info.portName();

        qDebug()<<"serialPortName:"<<info.portName();

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值