我想以编程方式检查未与任何设备连接的可用串行端口。
我尝试了以下代码,并能够获得可用的COM端口,但不知道它是否被使用。如何确定?
TCHAR szComPort[8];
HANDLE hCom = NULL;
for (int i = 1; i <= 10; ++i)
{
if (i < 10)
wsprintf(szComPort, _T("COM%d"), i);
else
wsprintf(szComPort, _T("\\\\.\\COM%d"), i);
hCom = CreateFile(szComPort,
GENERIC_READ|GENERIC_WRITE, // desired access should be read&write
0, // COM port must be opened in non-sharing mode
NULL, // don't care about the security
OPEN_EXISTING, // IMPORTANT: must use OPEN_EXISTING for a COM port
0, // usually overlapped but non-overlapped for existance test
NULL); // always NULL for a general purpose COM port
}
答案 0 :(得分:0)
与USB不同,没有可靠的方法来检查是否连接了串行(RS232)端口。仅使用TD,RD和地(发送/接收)是很常见的。即使连接了其他引脚,它们的使用也没有很好地标准化。