0

我的问题是我尝试检查不同的值,port_name如 7、14 或 25。它没有打开或处理与if条件匹配的句柄的串行数据,而是关闭了句柄。代码有问题吗?

void command_handler::start()
{
    char port_name[] = "COM7:";     /* Name of the serial port */

    serial_port = CreateFile(port_name, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
    /* Make sure port was opened */

    if (serial_port == INVALID_HANDLE_VALUE)
    {
        fprintf(stderr, "Error opening port\n");
        printf("I'm here");
        CloseHandle(serial_port);
        exit(0);
    }
    set_up_serial_port(serial_port, baud_rate);
    process_serial_data = false;
}
4

1 回答 1

0

您是否尝试过以下命名:

char port_name[] = "\\\\.\\COM7";

第二个问题可能是CHAR和的区别WCHAR。我认为您应该向WCHARAPI 发送一个字符串。

于 2013-01-10T06:47:19.253 回答