本文共 1323 字,大约阅读时间需要 4 分钟。
Qt有自带的串口通信类QSerialPort: 提供访问串口的功能。您可以使用QSeralPortinfo助手类获得关于可用串行端口的信息,该帮助程序允许枚举系统中的所有端口。有助于获得您想要使用的串行端口的正确名称。您可以将助手类的对象作为参数传递给setPort()或setPortName()方法,以分配所需的串行设备。 在设置端口之后,您可以使用open()方法以只读(r/o)、只写(w/o)或读写(r/w)模式打开它。注意:串行端口总是以独占访问的方式打开(也就是说,没有其他进程或线程可以访问已经打开的串行端口)使用close()方法关闭端口并取消I/0操作。
在工程文件中添加
QT += serialport
在头文件中添加
#include//Qt串口功能接口类#include //提供设备现有串行端口的信息
//检测系统现有串口,显示到comboBox控件 foreach (const QSerialPortInfo &qspinfo, QSerialPortInfo::availablePorts()) { ui->portComboBox->addItem(qspinfo.portName()); }
先声明并初始化一个串口类
QSerialPotr myPort;myPort = new QSerialPort;
设置串口配置并打开串口
myPort->setPortName(PortName); myPort->setBaudRate(QSerialPort::Baud19200); //设置波特率myPort->setParity(QSerialPort::NoParity); //设置校验位 myPort->setDataBits(QSerialPort::Data8); //设置数据位 myPort->setStopBits(QSerialPort::OneStop); //设置停止位 myPort->open(QIODevice::ReadWrite); if(myPort->isOpen()) qDebug()<<"串口打开成功";
发送数据
QString str = "需要发送的字符数据";QByteArray array = str.toLocal8Bit();myPort->write(array);
接收数据
//先建立信号槽connect(this,SIGNAL(readyRead()),this,receiveDate()));//接收函数void MainWindow::receiveDate(){ QString str = myPort->readAll(); //然后把接收到的信息自定义处理就ok了}
关闭串口
myPort->close();
如有不到之处,请联系我指正,诚恳求教!
转载地址:http://peezi.baihongyu.com/