Моя проблема в том, что я должен попробовать и проверить с разными 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;
}
Вы пробовали ниже называть:
char port_name[] = "\\\\.\\COM7";
Второй вопрос, возможно, заключается в разнице CHAR
а также WCHAR
, Я думаю, что вы должны отправить WCHAR
строка в API.
Других решений пока нет …