串行端口无法打开,错误2? 我在Windows 7上打开C++的串口有问题。我想通过USB电缆将串行数据从我的计算机发送到另一台计算机。我从各种在线资源中找到的代码如下: #include <windows.h> #include <stdio.h> int main() { // Define the five bytes to send ("hello") char bytes_to_send[5]; bytes_to_send[0] = 104; bytes_to_send[1] = 101; bytes_to_send[2] = 108; bytes_to_send[3] = 108; bytes_to_send[4] = 111; // Declare variables and structures HANDLE hSerial; DCB dcbSerialParams = {0}; COMMTIMEOUTS timeouts = {0}; // Open the highest available serial port number fprintf(stderr, "Opening serial port..."); hSerial = CreateFile( "COM8", GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); if (hSerial == INVALID_HANDLE_VALUE) { fprintf(stderr, "Error\n"); printf ("CreateFile failed with error %d.\n", GetLastError()); return 1; } else fprintf(stderr, "OK\n"); #包括 #包括 int main() { //定义要发送的五个字节(“hello”) 字符字节_至_发送[5]; 字节到发送[0]=104; 字节到发送[1]=101; 字节到发送[2]=108; 字节到发送[3]=108; 字节到发送[4]=111; //声明变量和结构 处理串行; DCB dcbSerialParams={0}; COMMTIMEOUTS timeouts={0}; //打开可用的最高串行端口号 fprintf(标准“打开串行端口…”); hSerial=CreateFile( “COM8”,一般读取,一般写入,0,0, 打开\u现有,文件\u属性\u正常,0); if(hSerial==无效的句柄值) { fprintf(stderr,“Error\n”); printf(“CreateFile失败,错误为%d。\n”,GetLastError()); 返回1; } else fprintf(标准“OK\n”);

串行端口无法打开,错误2? 我在Windows 7上打开C++的串口有问题。我想通过USB电缆将串行数据从我的计算机发送到另一台计算机。我从各种在线资源中找到的代码如下: #include <windows.h> #include <stdio.h> int main() { // Define the five bytes to send ("hello") char bytes_to_send[5]; bytes_to_send[0] = 104; bytes_to_send[1] = 101; bytes_to_send[2] = 108; bytes_to_send[3] = 108; bytes_to_send[4] = 111; // Declare variables and structures HANDLE hSerial; DCB dcbSerialParams = {0}; COMMTIMEOUTS timeouts = {0}; // Open the highest available serial port number fprintf(stderr, "Opening serial port..."); hSerial = CreateFile( "COM8", GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); if (hSerial == INVALID_HANDLE_VALUE) { fprintf(stderr, "Error\n"); printf ("CreateFile failed with error %d.\n", GetLastError()); return 1; } else fprintf(stderr, "OK\n"); #包括 #包括 int main() { //定义要发送的五个字节(“hello”) 字符字节_至_发送[5]; 字节到发送[0]=104; 字节到发送[1]=101; 字节到发送[2]=108; 字节到发送[3]=108; 字节到发送[4]=111; //声明变量和结构 处理串行; DCB dcbSerialParams={0}; COMMTIMEOUTS timeouts={0}; //打开可用的最高串行端口号 fprintf(标准“打开串行端口…”); hSerial=CreateFile( “COM8”,一般读取,一般写入,0,0, 打开\u现有,文件\u属性\u正常,0); if(hSerial==无效的句柄值) { fprintf(stderr,“Error\n”); printf(“CreateFile失败,错误为%d。\n”,GetLastError()); 返回1; } else fprintf(标准“OK\n”);,c++,windows,serial-port,C++,Windows,Serial Port,该程序从未超过这一点,它抛出的错误是“错误2”。据我所知,我认为这对应于“系统找不到指定的文件”。但是它不会为我尝试使用的任何COM端口打开。我还尝试了“\\.\COM8”但是没有用。有人知道可能导致此问题的一些常见问题吗?是否有任何特定于硬件的问题需要注意?愚蠢的问题,我知道:你真的有COM8吗?这是一个公平的问题,我知道我的计算机上的COM列表比以前的经验至少增加了20个。但我从未尝试访问任何CO以前是这样的。你看到设备管理器中列出了COM8吗?“COM8”很少工作,周围有太多糟糕的驱动程序

该程序从未超过这一点,它抛出的错误是“错误2”。据我所知,我认为这对应于“系统找不到指定的文件”。但是它不会为我尝试使用的任何COM端口打开。我还尝试了“\\.\COM8”但是没有用。有人知道可能导致此问题的一些常见问题吗?是否有任何特定于硬件的问题需要注意?

愚蠢的问题,我知道:你真的有COM8吗?这是一个公平的问题,我知道我的计算机上的COM列表比以前的经验至少增加了20个。但我从未尝试访问任何CO以前是这样的。你看到设备管理器中列出了COM8吗?
“COM8”
很少工作,周围有太多糟糕的驱动程序,
“\\\\.\\COM8”
应该是您的下一次尝试。反斜杠需要转义。我不知道如何使COM端口显示在设备管理器中。我想通过向另一台计算机发送串行数据来测试该程序。是否有具体的设置方法?谢谢