我的问题是我尝试使用不同的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;
}
答案 0 :(得分:0)
您是否尝试过以下命名:
char port_name[] = "\\\\.\\COM7";
第二个问题可能是CHAR
和WCHAR
的差异。我认为您应该向API发送WCHAR
字符串。