Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Ниже приведён пример программы, которая записывает и читает данные через LPT-порт в режиме EPP/ECP.
- // Для этого используется API Windows.
- #include <windows.h>
- #include <stdio.h>
- #define LPT_PORT 0x378 // Адрес LPT-порта (888 в десятичном)
- int main()
- {
- HANDLE hLPT;
- char dataToSend = 0x55; // Данные для записи
- char dataReceived;
- hLPT = CreateFile("LPT1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
- if (hLPT == INVALID_HANDLE_VALUE) // Открываем LPT-порт
- {
- printf("Ошибка открытия LPT-порта!\n");
- return 1;
- }
- if (!WriteFile(hLPT, &dataToSend, 1, NULL, NULL)) // Запись данных в порт
- {
- printf("Ошибка записи в порт!\n");
- CloseHandle(hLPT);
- return 1;
- }
- printf("Данные записаны: 0x%02X\n", dataToSend);
- if (!ReadFile(hLPT, &dataReceived, 1, NULL, NULL)) // Чтение данных из порта
- {
- printf("Ошибка чтения из порта!\n");
- CloseHandle(hLPT);
- return 1;
- }
- printf("Данные прочитаны: 0x%02X\n", dataReceived);
- CloseHandle(hLPT); // Закрываем порт
- return 0;
- }
- // Альтернативный подход:
- // Если режим EPP/ECP недоступен, можно использовать библиотеку inpout32 или inpoutx64 для прямого доступа к порту.
- // Эта библиотека позволяет читать и записывать данные в порт даже в стандартном режиме.
- // Пример использования inpout32:
- #include <windows.h>
- #include <stdio.h>
- #include "inpout32.h" // Подключите заголовочный файл inpout32
- #define LPT_PORT 0x378 // Адрес LPT-порта (888 в десятичном)
- //////////////////////////////////////////////////
- int main()
- {
- char dataToSend = 0x55; // Данные для записи
- char dataReceived;
- Out32(LPT_PORT, dataToSend); // Запись данных в порт
- printf("Данные записаны: 0x%02X\n", dataToSend);
- // Чтение данных из порта
- dataReceived = Inp32(LPT_PORT + 1); // Чтение линий статуса
- printf("Данные прочитаны: 0x%02X\n", dataReceived);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement