Уточню, пару моментов:
1. Как я определяю, что порт выходит из строя?
Мое ПО зависает на шаге открытия порта.
2. Интересная особенность. Если вынуть кабель из порта (уже вышедшего из строя), то шаг открытия порта успешно преодолевается. Однако, если вставить кабель в порт и выполнить инициализацию системы (переподачей питания или сбросом), то порт снова не открывается. Т.е. наличие кабеля (уже правильного!) не позволяет программно открыть порт (имеется ввиду сгоревший)! Порт (исправный), в который изначально вставлен верный кабель, открывается разумеется и при наличии кабеля.