Конфигурирование коммуникационного ресурса


В примере ниже открывается дескриптор COM2, а в структуре DCB заполняются поля текущей конфигурацией. Затем структура DCB изменяется и используется, чтобы переконфигурировать устройство.

/* Пример программы иллюстрирует настройку последовательного
   порта. */

#include <windows.h>

int main(int argc, char *argv[])
{
   DCB dcb;
   HANDLE hCom;
   BOOL fSuccess;
   char *pcCommPort = "COM2";

   hCom = CreateFile( pcCommPort,
                    GENERIC_READ | GENERIC_WRITE,
                    0,    // должен быть открыть с 
                          // монопольным доступом
                    NULL, // атрибутов защиты нет 
                    OPEN_EXISTING, // должен использовать
                                   // OPEN_EXISTING
                    0,    // асинхронного I/O нет
                    NULL  // hTemplate должен быть NULL
                          // для коммун. устройств
                    );

   if (hCom == INVALID_HANDLE_VALUE) 
   {
       // Обработка ошибки.
       printf ("CreateFile failed with error %d.\n",
                GetLastError());
       return (1);
   }

   // Создаем текущую конфигурацию, и переходим к установке
   // размеров буферов ввода и вывода с помощью SetupComm.

   fSuccess = GetCommState(hCom, &dcb);

   if (!fSuccess) 
   {
      // Обработка ошибки.
      printf ("GetCommState failed with error %d.\n",
               GetLastError());
      return (2);
   }

   // Заполним поля в DCB: 57,600 bps, 8 битов данных,
   // без проверки четности и 1 стоповый бит.

   dcb.BaudRate = CBR_57600;     // установка скорости в бодах
   dcb.ByteSize = 8;             // размер данных, xmit и rcv
   dcb.Parity = NOPARITY;        // бита четности нет
   dcb.StopBits = ONESTOPBIT;    // один стоповый бит

   fSuccess = SetCommState(hCom, &dcb);

   if (!fSuccess) 
   {
      // Обработка ошибки.
      printf ("SetCommState failed with error %d.\n",
               GetLastError());
      return (3);
   }

   printf ("Serial port %s successfully reconfigured.\n",
            pcCommPort);
   return (0);
}

 

Назад в оглавление
На главную страницу

Hosted by uCoz