Цитата(KRS @ Apr 24 2007, 22:42)

По опыту общения с FTDI
таймауты которые устанавливаются виндоватыми функциями SetCommTimeouts...
не работают на USB (или работают не так как ожидается)
это конечно связано с тем что реально данные идут пакетами и на прием приходят пачками, причем чаще чем 2 ms меду такими пакетами сделать не получатеся.
в FTDI есть настройка LatencyTimer которая позволяет менять частоту опроса USB
Наверное у Silabs есть что то подобное.
В любом случае нельзя полагаться на тамауты установленные SetCommTimeouts, они будут только мешать. Таймауты придется делать по другому.
У FTDI действительно есть LatencyTimer, а вот у Silabs в настройках порта ее нет и вообще нигде в доке не упоминается.
Но, интерестно другое, после открытия порта в трафике УСБ явно видны осцилографом пакеты через каждую 1мс. При этом паузы между пакетами УАРТ не всегда стабильны но, всегда кратны 1мс и колебаются тоже ровно на 1мс, при этом на втором луче явно видно что они засинхронизированы с пакетами УСБ.
Т.е. получается что опрос УСБ на моем компе идет 1мс вот только прием/передача происходят не в первом запросе УСБ а на каком-то другом попозже.
На другом компе вообще скорость упала раз в 200, но посмотреть осцилографом паузы и пакеты там возможности нет.