Я пытаюсь открыть последовательный порт, чтобы я мог получить данные Uart от устройства со стандартным кодом CreateFile () ниже;
HANDLE hComm; // Handle to the Serial port
char ComPortName[] = "COM4"; // Name of the Serial port(May Change) to be opened,
/*---------------------------------- Opening the Serial Port -------------------------------------------*/
hComm = CreateFile(ComPortName, // Name of the Port to be Opened
GENERIC_READ | GENERIC_WRITE, // Read/Write Access
0, // No Sharing, ports cant be shared
NULL, // No Security
OPEN_EXISTING, // Open existing port only
0, // Non Overlapped I/O
NULL); // Null for Comm Devices
if (hComm == INVALID_HANDLE_VALUE)
printf("\n Error! - Port %s can't be opened\n", ComPortName);
else
printf("\n Port %s Opened\n ", ComPortName);
Однако каждый раз он возвращает неверный дескриптор. Я немного новичок, боюсь, но я хорошо изучил это и не вижу причин для этого ?!
Я попробовал «COM4:», как это предлагается в другом посте, и "\\\\.\\COM4"
(хотя я знаю, что это должно быть допустимо только для ком-порта 10 и более), но все равно не радость! Порт определенно есть, так как я могу нормально подключаться и получать данные, используя как Teraterm, так и RealTerm, и это не тот случай, когда он уже используется.
Я использую Windows 10 на Mac с Boot Camp и задаюсь вопросом, может ли это быть проблемой? Я прочитал в одной теме, что есть проблема, если окна не активируются должным образом, но это было немного расплывчатым.
Любой совет будет высоко ценится, большое спасибо заранее.
Задача ещё не решена.
Других решений пока нет …