Это значит, что проблема в софте. У меня похожее было.
...из-за ошибки случайным образом была запись в тот же порт
из процедуры прерываний. С малой вероятностью.
Не просто было найти.
---
В подобном случае полезнее не жук кусать сразу,
а запустить тест. Например, на 1000000 транз-акций
запись/чтение и подсчёт ошибок. Всё равно для
качественного ремонта/наладки/тестирования
сервисный софт необходим. Поэтому полезно
проектировать софт с возможной сборкой тестового ПО.
Если ресурсов вообще много, я такое ПО оставляю
частью боевого софта. Чинить, тестировать налаживать
исключительно удобно.