Проблемы связи через последовательный порт (код C) - PullRequest
2 голосов
/ 15 мая 2009

Я недавно пытался получить доступ к последовательной связи с помощью USB-ключа Bluetooth. Я использовал код C ниже, и продолжаю получать ошибку 5, которая является «Доступ запрещен». Я являюсь администратором системы (которая, как представляется, является общим решением этой проблемы на форумах), и ни одно другое приложение не обращается к тому же порту, который я использую (также другое распространенное решение). Я работаю в 32-битной системе Windows Vista Home Basic. Мне было интересно, есть ли у кого-нибудь решение для этого Мой код C:

HANDLE hComm;

hComm = CreateFile (_T ("\\. \ COM3"), GENERIC_READ | GENERIC_WRITE, 0, НОЛЬ, OPEN_EXISTING, 0, NULL);

if (hComm == INVALID_HANDLE_VALUE)
    printf("Error number: %ld\n", GetLastError());
else
    printf("success\n");

Ответы [ 5 ]

4 голосов
/ 15 мая 2009

Я не знаю, является ли это вашей проблемой или нет, но я подозреваю, что вам нужно избежать обратной косой черты в пути, например: "\\\\.\\COM3"

1 голос
/ 15 мая 2009

Это похоже на то, что вам снова нужно избегать обратной косой черты. Вы также можете убедиться, что COM-порт, на который вы нацеливаетесь, существует в вашей системе с помощью средства просмотра объектов, такого как WinObj (http://technet.microsoft.com/en-us/sysinternals/bb896657.aspx),, хотя я не знаю, работает ли WinObj в Vista.

0 голосов
/ 27 февраля 2016

Просто замените ваш COM # на \. \ COM # в вашем коде,

  hComm = CreateFile("\\\\.\\COM15",

              GENERIC_READ | GENERIC_WRITE,
              0,
              0,
              OPEN_EXISTING,
              0,
              0);
0 голосов
/ 15 мая 2009

Спасибо за советы, но оказывается, что ключ доступа Bluetooth не был установлен должным образом, и поэтому он отказывал в доступе к последовательному порту.

0 голосов
/ 15 мая 2009

По моему опыту обратные слеши не нужны

hComm = CreateFile( _T("COM3"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...