技术专栏
Qt串口通讯
Qt串口通讯
本片文章用来记录qt串口通讯实现代码以及学习过程中遇到的问题。
Qt有串口通讯库,功能用起来还是可以的,所以不需要再去网上下载第三方的串口通讯库使用。
应用程序使用串口库需要在.pro中配置“QT += serialport”,只有加上这个配置串口库才能正常使用。
接下来就开始介绍Qt串口库的使用:
在使用串口的地方添加两个头文件:
#include <QSerialPort>
#include <QSerialPortInfo>
扫描串口:
void QSerialPortManagement::startScan()
{
//通过QSerialPortInfo查找可用串口
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
//串口名
qDebug () << info.portName();
//设备PID VID
qDebug () << info.productIdentifier();
qDebug () << info.vendorIdentifier();
com_info devInfo;//自定义存放串口信息的结构
devInfo.name = info.portName();
devInfo.addr = info.portName().remove(0,3).toUInt();
devInfo.connectState = 0;
}
}
打开设备:
void QSerialPortCommunication::devConnect()
{
QSerialPort serial;串口对象
//设置串口名
serial.setPortName(“COM1”);
//设置停止位
serial.setStopBits(QSerialPort::OneStop);
//设置数据位
serial.setDataBits(QSerialPort::Data8);
//奇偶校验
serial.setParity(QSerialPort::NoParity);
//流控制
serial.setFlowControl(QSerialPort::NoFlowControl);
//设置波特率
serial.setBaudRate(19200);
//打开串口,读写方式打开
if(!serial.open(QIODevice::ReadWrite))
{
QSerialPort::SerialPortError error = serial.error();
qDebug() << error;
emit disConnected(port);
return;
}
//DTR、RTS有的设备需要设置,有的设备不需要
//设置DTR
serial.setDataTerminalReady(true);
//设置RTS
serial.setRequestToSend(true);
}
关闭设备:
void QSerialPortCommunication::devDisConnect()
{
serial.close();
}
发送数据:
void QSerialPortCommunication::writes(QByteArray dat)
{
serial.write(dat);
}
接收数据:
连接接收信号槽
QObject::connect(&serial, &QSerialPort::readyRead, this, &QSerialPortCommunication::read,Qt::QueuedConnection);
void QSerialPortCommunication::read()
{
QByteArray buffer = serial.readAll();
qDebug() << buffer;
}
注意:这里要特别注意一下,因为串口的通讯特性,你这里接收的数据不一定是下位机发送的一包数据,所以接收时需要自己去做拼包操作。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:4946次2020-08-11 18:51:18
-
浏览量:6686次2020-08-15 17:22:26
-
浏览量:2626次2020-08-14 15:09:41
-
浏览量:4063次2020-10-10 15:51:00
-
浏览量:5068次2020-08-11 17:39:02
-
浏览量:4886次2020-08-15 17:29:07
-
浏览量:3940次2020-08-14 17:18:54
-
浏览量:5023次2020-09-20 22:00:55
-
浏览量:2213次2020-08-17 19:49:28
-
浏览量:8707次2020-11-24 23:02:41
-
浏览量:7377次2020-08-14 23:09:45
-
浏览量:10374次2021-01-12 20:00:35
-
浏览量:3671次2022-12-27 08:51:19
-
浏览量:2610次2020-06-29 10:47:11
-
浏览量:5633次2020-03-25 11:58:02
-
浏览量:5291次2022-07-21 14:02:50
-
浏览量:1844次2024-05-27 13:42:26
-
浏览量:6926次2020-04-13 21:20:16
-
浏览量:3184次2020-05-07 19:02:31
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
小王子🤴
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注