diff --git a/platform/posix/stm32.cpp b/platform/posix/stm32.cpp index 4067f8b..b8ffc87 100644 --- a/platform/posix/stm32.cpp +++ b/platform/posix/stm32.cpp @@ -200,9 +200,10 @@ bool STM32::open() { return false; } - struct termios tty; + struct termios tty = {}; + struct termios compare = {}; - if(tcgetattr(fd, &tty) < 0) { + if(tcgetattr(fd, &tty) != 0) { close(); return false; } @@ -229,6 +230,11 @@ bool STM32::open() { return false; } + if(tcgetattr(fd, &compare) != 0 || memcmp(&tty, &compare, sizeof(struct termios)) != 0) { + close(); + return false; + } + // Create threads readThread = std::thread(&STM32::readTask, this); writeThread = std::thread(&STM32::writeTask, this);