我开发了一个简单的串行端口应用程序,可以在低于 10 的 COM 端口(COM9、COM8、... COM1)上正常工作。但是,当我的设备连接到高于 10 的端口(例如 COM11)时,它无法连接,并且我收到 INVALID_HANDLE。我的代码是:
comport = CreateFileA(comPortName.toAscii(), GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if(comport == INVALID_HANDLE_VALUE)
{
//Write exception code here
connectionStatus = CONNECTION_STATUS_DISCONNECTED;
}
我的代码有什么问题吗?有什么解决办法吗?
要访问 COM 端口 >= 10,您可以使用驱动程序的符号链接。例如,对于 COM10 来说是\\\\.\\COM10
.
你试一试:
comport = CreateFileA("\\\\.\\COM10", GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if(comport == INVALID_HANDLE_VALUE)
{
// Write exception code here
connectionStatus = CONNECTION_STATUS_DISCONNECTED;
}
当然,这也适用于 COM 端口
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)