|
Получается, что функция WriteFile() записывает в FIFO(16 байт) и отваливается, а дальше нужно время. Если данных больше, то отваливается после впихивания последнего байта данных в FIFO, а это происходит не сразу. Ждать ухода последнего Stop-а нужно примерно (16+1)*(Start+Data+Parity+Stop*N)*Boudrate если длина (X) данных больше или равна 16, иначе (X+1)*(Start+Data+Parity+Stop*N)*Boudrate. И это без учёта блужданий винды. Можно попытаться рихтовать настройки порта насчёт FIFO, и это иногда помогает;), но редко кто за собой все настройки восстанавливает. Интересно, конечно, было бы попользовать флаг, о котором говорит студент прохладной жизни, но не довелось как-то встречать ничего, кроме разговоров о Toggle-чего-то-там. И не верю, что билли сделал, а линуксоиды не смогли.