我在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");
程序永远不会超过这一点,它抛出的错误是“错误2”。根据我的阅读,我认为这对应于“系统无法找到指定的文件”。但是它不会打开我尝试使用的任何COM端口。我也试过“\\。\ COM8”,但无济于事。有谁知道可能导致这个问题的一些常见问题?是否有任何特定于硬件的问题需要注意?