Вывожу в терминале строку данных, которые периодически приходят по UART. Перед каждым новым выводом просто перевожу курсор в начало строки, новая строка затирает старую, получается что строка одна, но значения в ней постоянно меняются.
Код такой:
............
while (next)
{
n=read(fd, buf, 1);
if (n==1) { printf("%c", buf[0]); fflush(stdout); }
}
...............
Символ '\r' приходит вместе с данными, иначе значения всё время съезжают и их трудно синхронизировать.
Проблема в том что иногда, терминал сам начинает переходить на новую строку, и данные начинают "ехать" по экрану. Как это можно предотвратить?
Единственное что заметил, если запустить другой терминал, подключиться в нём к UART. затем закрыть соединение, и снова запустить программу, то всё работает.