嵌入式设备经常要用到串口与下位机进行通信。本篇主要介绍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