QT 串口通讯QSerialPort类简单用法

  QT串口编程用到QSerialPort类与QSerialPortInfo类。

-QSerialPort:提供访问串口的功能 ,读写操作是通过该类来实现的。


-QSerialPortInfo:提供系统中存在的串口的信息,一般用于查询当前连接的串口信息。

QSerialPort类

使用方法

步骤1,在pro 文件中加
    QT       += serialport  

步骤2,在头文件.h中加入

    #include <QtSerialPort/QSerialPort>  
    如果有用到QSerialPortInfo类,同理加头文件 #include <QtSerialPort/QSerialPortInfo>

步骤3,定义一个对象并且实例化

    QSerialPort *serial = new QSerialPort; 

步骤4,对串口的名称、波特率、数据位、校验位、停止位等参数进行设置

例如:   
    serial->setPortName(name);      //设置串口名  
    serial->open(QIODevice::ReadWrite);      //打开串口  
    serial->setBaudRate(BaudRate);      //设置波特率  
    serial->setDataBits(QSerialPort::Data8);      //设置数据位数
    serial->setParity(QSerialPort::NoParity);        //设置奇偶校验  
    serial->setStopBits(QSerialPort::OneStop);      //设置停止位 
    serial->setFlowControl(QSerialPort::NoFlowControl);    //设置流控制  

 

这里设置了串口名为name,打开串口并设置为可读可写,波特率为BaudRate,数据位为8位,没有奇偶校验位,停止位为1位,没有流控制。

步骤5,可以进行读写操作

读操作:当串口可读时,会发出readyRead()的信号,需要用到槽
    connect(serial,SIGNAL(readyRead()),this,SLOT(Read_Data()));
    
    void MainWindow::Read_Data()  
    {  
        QByteArray buf;  
        buf = serial->readAll();  
    }  
    
写操作
    serial->write(data);

可以通过返回值来确定成功写入/读出的字节数大小。

 

QSerialPortInfo类

用QSerialPortInfo类查找可用的串口的代码实现  

    foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())  
    {  
        QSerialPort serial; 
        serial.setPort(info);  
        if(serial.open(QIODevice::ReadWrite))  
        {  
            ui->PortBox->addItem(serial.portName());    //这里用一个QCombox装住
            serial.close();  
        }  
    }

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值