COM-порт в Windows (программирование): различия между версиями
Содержимое удалено Содержимое добавлено
Нет описания правки |
м bad link repair |
||
Строка 1:
Написать программу, управляющую устройством через [[COM-порт]], для [[MS-DOS]] не так сложно.
С платформой Win32 дело обстоит сложнее. Но только на первый взгляд. Конечно напрямую работать с [[регистр
{{Wikify}}
== Открытие порта ==
С последовательными и параллельными портами в [[Win32]] работают как с [[файл
HANDLE CreateFile(
Строка 19:
=== lpFileName ===
Указатель]] на [[строка|строку]] с именем открываемого или создаваемого [[файл
Последовательные порты имеют имена «COM1», «COM2», «COM3», «COM4» и так далее. Точно так же они назывались в [[MS-DOS (программирование)|MS-DOS]]. [[Параллельный порт|Параллельные порты]] называются «LPT1», «LPT2» и так далее.
Строка 25:
=== dwDesiredAccess ===
Задает тип [[доступ
* <code>0</code> Опрос атрибутов устройства без получения доступа к нему.
* <code>GENERIC_READ</code> Файл будет считываться.
Строка 33:
=== dwShareMode ===
Задает параметры [[совместный доступ|совместного доступа]] к [[файл
=== lpSecurityAttributes ===
Задает [[атрибут
=== dwCreationDistribution ===
Управляет [[режимам
=== dwFlagsAndAttributes ===
Задает атрибуты создаваемого файла. Так же управляет различными режимами [[обработк
=== hTemplateFile ===
Задает описатель файла-[[шаблон
При успешном открытии файла, в данном случае порта, [[функция (программирование)|функция]] возвращает [[дескриптор (программирование)|дескриптор]] (<code>[[HANDLE (программирование)|HANDLE]]</code>) файла. При ошибке [[|<code>
== Закрытие порта ==
Открытый порт должен быть закрыт перед завершением работы [[программа|программы]]. В [[Win32 (программирование)|Win32]] закрытие объекта по его [[дескриптор
BOOL CloseHandle(
Строка 77:
. . .
В данном [[пример
== Структура DCB ==
Основные [[параметр
Основную информацию содержит структура <code>DCB</code>:
Строка 116:
} DCB;
Эта структура содержит почти всю управляющую [[информация|информацию]], которая в реальности располагается в различных [[регистр
▲Эта структура содержит почти всю управляющую [[информация|информацию]], которая в реальности располагается в различных [[регистр|регистрах]] последовательного порта.
=== DCBlength ===
Задает длину, в [[байт
=== BaudRate ===
[[
=== fBinary ===
Строка 148 ⟶ 147 :
* DTR_CONTROL_DISABLE Запрещает использование линии DTR
* DTR_CONTROL_ENABLE Разрешает использование линии DTR
* DTR_CONTROL_HANDSHAKE Разрешает использование рукопожатия для выхода из ошибочных ситуаций. Этот режим используется, в частности, [[модемам
=== fDsrSensitivity ===
Задает чувствительсть коммуникационного [[драйвер
=== fTXContinueOnXoff ===
Строка 164 ⟶ 163 :
=== fInX ===
Задает использование <code>XON/XOFF</code> управления потоком при приеме. Если это поле равно <code>TRUE</code>, то [[драйвер (программирование)|драйвер]] передает символ <code>XoffChar</code>, когда в приемном буфере находится более <code>XoffLim</code>, и <code>XonChar</code>, когда в приемном [[буфер
=== fErrorChar ===
Строка 247 ⟶ 246 :
== Заполнение структуры DCB ==
== Структура COMMTIMEOUTS ==
== Заполнение структуры COMMTIMEOUTS ==
== Пример настройки порта ==
== Структура COMMPROP ==
== Стандартный диалог настройки порта ==
== Выделение памяти для структуры COMMPROP ==
== Прием и передача данных ==
== Сброс порта ==
== Пример настройки порта и выполнения чтения/записи данных. ==
{{Wikify}}
|