qt串口阻塞_Qt串口操作

本文介绍了如何在Qt环境中进行串口通信,包括枚举串口、异步阻塞方式的串口读写数据、数据校验以及使用进度条显示传输进度。使用QSerialPort类进行串口操作,并通过多线程处理串口读写,以避免阻塞UI。在数据传输过程中,注意设置合适的超时时间和数据校验机制,确保与下位机的正确通信。
摘要由CSDN通过智能技术生成

嵌入式设备经常要用到串口与下位机进行通信。本篇主要介绍Qt串口相关操作,环境(Qt5.2+msvc2010编译)

本文主要内容如下:

A.枚举主机的串口名称

​foreach(constQSerialPortInfo&info, QSerialPortInfo::availablePorts()){​

qDebug()<

if(openSerial(info.portName())){

hasCom=sendShakeHandData(data);

if(hasCom){

comName=info.portName();

serial->close();

break;

}

serial->close();

}

}

Qt提供非常丰富的类让我们很方便的对各个com口进行遍历,并发送握手数据包(根据各自上下位机器之间的协议的实际情况不同),有些是发特定的指令

,如果下位机有response,则表示该com口是我们要找的com名称,立即跳出循环。

B.串口传输数据到下位机

​serial=newQSerialPort(portName);

if(serial->open(QIODevice::ReadWrite)) {

QByteArraysendData =

getSendData();

//2.准备发送

qDebug()<

serial->write(sendData);

if(serial->waitForByt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值