Задать вопрос

Возможно ли получить HANDLE с помощью QSerialPort аналогичный HANDLE получаемому с помощью CreateFile (winapi, )?

Возможно ли получить HANDLE с помощью QSerialPort аналогичный HANDLE получаемому с помощью CreateFile (winapi, windows.h)?

Есть код написанный на С++ и WinApi, в нем для обращения к устройству порт открывается с помощью:

LPTSTR port_name = TEXT("COM5");

HANDLE hCom = CreateFile((LPCWSTR)port_name,
                    GENERIC_READ | GENERIC_WRITE,
                    0,
                    NULL,
                    OPEN_EXISTING,
                    0,
                    NULL);

Код выше меняю на:

HANDLE hCom;
QSerialPort *serial;
serial = new QSerialPort();
serial->setPortName("COM5");
serial->setBaudRate(QSerialPort::Baud38400);
serial->open(QIODevice::ReadWrite);

hCom = serial->handle();

После этого изменения в коде обмен данными с устройством перестает работать. Код компилируется без ошибок, GetLastError при открытие порта возвращает 0. При записи в порт с помощью WirteFile, GetLastError начинает возвращать ошибку 997 ERROR_IO_PENDING.
  • Вопрос задан
  • 171 просмотр
Подписаться 4 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unreal Engine + ИИ
    9 месяцев
    Далее
  • Stepik
    Профессия: Разработчик C++ (Junior)
    2 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы