Вы не должны открывать / закрывать ваше последовательное устройство каждые n секунд, потому что смещение времени может привести к потере данных, записанных на ваш последовательный порт.
Чтобы ваша программа работала без сбоев, почему бы вам не создать новый поток, который открывает последовательный порт и продолжает читать в течение некоторого времени l oop?