Я предполагаю из вашего комментария о "контактах 2 и 3", что вы подключили петлевой кабель, поэтому вы ожидаете, что все, что вы наберете, появится на экране (и прекратите делать это, когда вы отключите кабель).
Я думаю, что в коде есть ошибка: if (kbhit())
- это внутри * if (status & DATA_READY)
.
Это означает, что вы проверяете клавиатуру только в том случае, если есть какой-либо ввод, готовый к приему через последовательный порт - чего не будет, потому что вы еще ничего не отправили! Попробуйте переместить тест и посмотрите, улучшится ли он.
(Вот некоторый аналогичный код последовательного порта , который ставит тест if (kbhit())
вне проверки DATA_READY
. Он не претендует на работу, но предоставляет некоторые доказательства того, что это может быть источником проблема ...)