之前用Qt写一个用于Arduino开发板HEX文件烧写的工具,遇到了这个问题。后来找到了一个跨平台的串口操作库:qextserialport
以下代码可用于获取Windows平台上活动的串口列表。
QStringList & ComPortMgr::getAvailableComPorts()
{
static QStringList availablePorts;
const int MAX_COM_PORT = 256;
QString testPortName;
QextSerialPort testPort;
testPort.setBaudRate(BAUD9600);
testPort.setFlowControl(FLOW_OFF);
testPort.setParity(PAR_NONE);
testPort.setDataBits(DATA_8);
testPort.setStopBits(STOP_1);
for (int i = 1; i < MAX_COM_PORT; i++) {
testPortName = QString("COM%1").arg(i);
testPort.setPortName(testPortName);
if (testPort.open(QIODevice::ReadWrite)) {
availablePorts.append(testPortName);
testPort.close();
}
}
return availablePorts;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。