Закрытие COM -порта FTDI с Close Handle () занимает много времениC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Закрытие COM -порта FTDI с Close Handle () занимает много времени

Сообщение Anonymous »

Я работаю в программе C /C ++, которая общается с устройством RS232.
Порт открывается с использованием CreateFile () < /p>
hComm = CreateFile(DevPath, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
< /code>
Тогда порт настраивается с использованием setupcomm (), setcommstate () и setcommmimeouts () без аппаратного управления и бодрата из бод и тайм -аутов 115200, как показано здесь: < /p>
cTimeouts.ReadIntervalTimeout = MAXDWORD;
cTimeouts.ReadTotalTimeoutConstant = 1;
cTimeouts.ReadTotalTimeoutMultiplier = 0;
cTimeouts.WriteTotalTimeoutConstant = 40;
cTimeouts.WriteTotalTimeoutMultiplier = 1;
< /code>
порт закрыт с помощью BloseHandle () < /p>
CloseHandle(hComm);
< /code>
Это не система в реальном времени, но должна быть очень быстрой, и после того, как я заметил некоторые задержки, я измерил, что инструкция BloseHandle () занимает всегда более 100 мс, что является огромным количеством времени, учитывая, что открытие и настройка порта занимает всего 20 мс. или брандмауэр в тестовой машине (автономный).
[*] Я использую Visual Studio на совершенно нового компьютера на основе Intel Core-I5, работающего в Windows 10.
[*] USB-устройстве FTDI (виртуальное COMPPORT)

>

нет данных. /> Я пытался собрать аналогичную программу в Linux, и близкое время сокращается до 25 мс < /strong>.
Я также пытался использовать физическое соединение RS232, и близкие времена превращаются в 1 мс < /strong>, поэтому я предполагаю, что это происходит от драйвера FTDI. Я что -то упускаю?
Кто -нибудь испытал что -то подобное? < /P>

Подробнее здесь: https://stackoverflow.com/questions/679 ... ot-of-time
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»