在C/C++中打开与COM端口的连接时出错

Error with opening a connection with COM port in C/C++

本文关键字:连接 出错 COM C++      更新时间:2023-10-16

我使用的是Windows 8.1 Pro机器。好,我正在尝试打开串行设备的COM端口连接。我的代码如下:

#include<stdio.h>
#include<windows.h>
int main(void)
{
     HANDLE hcomm;
     char *comPort = "COM6";
     hcomm = CreateFile(comPort, GENERIC_READ | GENERIC_WRITE, 0, 0,
                        OPEN_EXISTING, 0, NULL);
     if(hcomm = INVALID_HANDLE_VALUE)
     {
           printf("Connection Failed...n");
     }
     else
          printf("Connection Succeded....n");
         //return hcomm;
     }
}

但这个代码对我不起作用。请给我一些错误的地方的建议。

检查GetLastError()的值。GetLastError()==0成功。

另外,您的if条件是将hcomm重新初始化为无效句柄。注意if条件中从赋值运算符到比较运算符的变化。请将您的代码更改为以下,看看它是否解决了您的问题:

if(hcomm == INVALID_HANDLE_VALUE) {
    printf("Handle creation failed with error %d", GetLastError());
}
else {
    printf("Handle creation successful");
}