Использование параллельного порта в Windows
Я планирую подключить Noritake VFD GU256x64D-3900 через параллельный порт с ПК с Windows 10.
Для этого я начал исследовать способы использования параллельных портов в Windows. Я нашел несколько документов об дескрипторах коммуникационных ресурсов и клиентских интерфейсах для параллельных драйверов, поставляемых системой.
Похоже, что многие люди, играющие с параллельными портами в Windows, используют специальный драйвер с именем inpout32 для доступа к регистрам параллельных портов. В идеале я хотел бы избежать использования его в конечном решении и придерживаться драйвера Microsoft, если это вообще возможно. Хотя оказывается полезным протестировать мой параллельный порт, в частности, через LPT Test Utility, используя предложенную схему.
Теперь, используя приведенный там пример кода, эта функция WriteFile зависает независимо от того, что я установил на свои контакты Ack и Busy, используя схему LPT Test Utility. Он зависает, даже если я пытаюсь записать один байт данных. Однако при вызове WriteFile включаются светодиоды Strobe и Linefeed.
Благодаря LPT Test Utility я получаю следующие результаты:
- Я могу контролировать все светодиоды данных
- Я могу прочитать все состояния, контролируемые с помощью DIP-переключателя (Ошибка, Выбрать, Нет бумаги, Занят, Подтвердить)
- Индикаторы инициализации и выбора принтера работают нормально
- Светодиоды Strobe и Linefeed можно включать и выключать только вместе. Если убрать галочку с любого из них, оба светодиода погаснут.
Я считаю, что параллельный порт, который я тестирую, находится в режиме ECP.
Так как этот VFD Noritake подключается только к D0-D7, /WR (строб), Busy и заземлению, я обеспокоен, что я могу получить такое же поведение зависания после подключения дисплея.
Я еще не начал проверять различные функции драйвера Microsoft, который, по-видимому, доступен через DeviceIoControl, чтобы посмотреть, как и если я смогу повлиять на работу моего порта.
Есть ли кто-нибудь со знаниями и, возможно, работающими примерами кода для такого специфического использования параллельного порта в Windows?