Измерил интервалы между считываниями, они оказались очень малыми, около 1 мкс. Видимо, считывания всё время происходили в момент записи буфера. Немного изменил алгоритм. Теперь он, после получения первого байта, ждет 30 мс. и считывает весь буфер. Так удаётся достичь достаточно больших интервалов между считаваниями. Можно полагать, что пакеты теперь читаются полностью. Для интереса, привожу результаты измерений:
Промежутки между пакетами:
![Изображение](https://i.postimg.cc/L64g32rw/image.jpg)
Размер пакетов:
![Изображение](https://i.postimg.cc/Fzwtz9cz/image.jpg)
видно, что интервалы намного больше 20 мс, да и пакеты намного дольше 320 байт. В среднем, получается, что каждый раз считывается сразу по 3 пакета. Потерь данных при этом быть не должно. По отдельности 320 байтовые пакеты считывать не получается никак.
Сравнение длительности записи и объема данных показывает, что данных приходит больше чем нужно, при мерно на 20 - 40% (каждый раз по разному). Есть подозрение, что модем кроме голоса пишет в этот порт что то ещё. Возможно там проходит интернет трафик. Может кто знает, как его можно остановить на время разговора? я таких АT команд не нашел, но в программе Huawei для этого есть специальная кнопка, и во время разговора она сама разрывает интернет соединение.
Звук стал теперь лучше, уже отчетливо различаются слова, но шума, всё же, очень много, всё жужжит и трещит.