[英]CreateFile returns error INVALID_HANDLE_VALUE (for COM port), and GetLastError returns “can't find file specified”
[英]Invalid handle error when connecting to COM port higher than 10 on Windows 7
我開發了一個簡單的串行端口應用程序,適用於低於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端口<10。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.