Проектирование CDC-устройств на микроконтроллерах со встроенным USB-модулем. Воробьева Г.С - 43 стр.

UptoLike

43
Программирование COM-порта
Работа с USB через драйвер виртуального СОМ-порта ведется
так же, как с обычным СОМом, правда, так как этот порт
виртуальный, некоторые функции для него не могут быть
реализованы.
Любая работа с портом начинается с его открытия. Для этого
используется файловая функция CreateFile:
HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDistribution,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
Параметры вызова этой функции:
lpFileName имя открываемого файла, т.е. название порта
(COM1, COM2, …). В нашем случае это должен быть
виртуальный СОМ;
dwDesiredAccess тип доступа. В нашем случае должен быть
равен GENERIC_READ|GENERIC_WRITE;
dwShareMode параметр совместного доступа. Для
коммуникационных портов всегда равен 0;
lpSecurityAttributes атрибут защиты. Для коммуникационных
портов всегда равен NULL;
dwCreationDistribution режим автосоздания. Для
коммуникационных портов всегда равен OPEN_EXESTING;
dwFlagsAndAttributes атрибут режима обработки. Для
коммуникационных портов должен быть равен 0 или
FILE_FLAG_OVERLAPPED;
hTemplateFile описатель файла-шаблона. Для
коммуникационных портов должен быть равен NULL.
При успешном открытии порта функция возвращает его
описатель, а в случае ошибки возвращает
INVALID_HANDLE_VALUE.
В зависимости от значения параметра dwFlagsAndAttributes
работа с портом может быть организована в синхронном
(dwFlagsAndAttributes = 0) или асинхронном