2.1QT串口通信
1.1.1QT网络通信
2.2.1QT串口通信
QT串口通信
1.在QT的pro文件中先加入serialport模块;
2.遍历可用端口;
QStringList SerialPortName;
foreach(const QSerialPortInfo &info,
QSerialPortInfo::availablePorts()){
SerialPortName << info.portName();
} //遍历可用端口
ui->port->clear();
ui->port->addItems(SerialPortName);
3.串口初始化,初始化端口号,波特率,校验位,数据位,停止位,流控制:
if(Serial==nullptr) return;
if(Serial->isOpen()){
Serial->clear();
Serial->close();
}
Serial->setPortName(ui->port->currentText()); //设置端口号
if(!Serial->open(QIODevice::ReadWrite)){ //端口是否被占用
ui->link->setText(Serial->portName()+"打开失败");
return;
}
Serial->setBaudRate(ui->baudRate->currentText().toInt()); //设置波特率
int data=ui->dataBits->currentText().toInt(); //设置数据位
switch(data){
case 8:
Serial->setDataBits(QSerialPort::Data8);
break;
case 7:
Serial->setDataBits(QSerialPort::Data7);
break;
case 6:
Serial->setDataBits(QSerialPort::Data6);
break;
case 5:
Serial->setDataBits(QSerialPort::Data5);
break;
default:
Serial->setDataBits(QSerialPort::Data8);
break;
}
int stop=ui->StopBits->currentText().toInt(); //设置停止位
switch(stop){
case 1:
Serial->setStopBits(QSerialPort::OneStop);
break;
case 2:
Serial->setStopBits(QSerialPort::TwoStop);
break;
}
QString parity=ui->check->currentText(); //设置校验位
if("无校验"==parity){
Serial->setParity(QSerialPort::NoParity);
}else if("偶校验"==parity){
Serial->setParity(QSerialPort::EvenParity);
}else if("奇校验"==parity){
Serial->setParity(QSerialPort::OddParity);
}
Serial->setFlowControl(QSerialPort::NoFlowControl); //设置流控制
4.串口读写操作:
读:
connect(Serial,SIGNAL(readyRead()),this,SLOT(readOnlyAll()));
void Widget::readOnlyAll(){
QByteArray Data = Serial->readAll();
ui->readText->appendPlainText(QString(Data));
}
写:
Serial->write(ui->writeText->text().toLocal8Bit().data());
5.断开连接:
Serial->clear();
Serial->close();
6.windows下项目打包:
- 将release中exe文件放在要打包的文件夹下;
- 打开QT控制台窗口,命令跳转到打包的文件夹的路径下;
- 通过命令windeployqt exe文件打包。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧