Цитата(toweroff @ Mar 4 2018, 16:50)

Так точки ж абсолютно независимые
Нужно принять - проверяем буфер точки OUT. А в её прерывании просто складываем в буфер
Нужно передать - проверяем активность передачи и или докладываем в буфер передачи, или сразу вызываем передачу. В прерывании точки IN, если в буфере что-то есть, опять вызываем передачу. Нечего передавать - сбрасываем флаг
Как-то так
Точку OUT я и обрабатываю в прерывании. В нём же я складываю партию данных для передачи через точку IN, они благополучно уходят на хост ( длина пакета не более 32 байт) . Это происходит при вызове функций на хосте: ЗАПИСЬ В OUT -- ЧТЕНИЕ ИЗ IN.
Но если на хосте вызвать только ЧТЕНИЕ ИЗ IN, то чтение не происходит (даже прерывание не возникает).
Или... вы хотите сказать, что для того, чтобы хост забрал данные с помощью ЧТЕНИЕ ИЗ IN, эти данные необходимо сначала записать в буфер отправки точки IN, а хост когда ему надо будет заберёт их?