%3F.png)
Я успешно общаюсь с платой, подключенной через последовательный порт к моему ПК. Я могу как отправлять, так и получать байты - но для интерактивных приложений, работающих на плате, которые пытаются считывать входные данные со своего stdin, minicom, похоже, не предлагает никакихридлайн-подобная функциональность редактирования:
// code running on the embedded board
printf("Reading a number: ")
scanf("%d", &i);
В миникоме:
$ minicom -D /dev/ttyS0 -b 38400
...
Reading a number: 1a^H
После того, как я ввожу букву «а», я не могу ее удалить.
Обратите внимание, что здесь нет оболочки или чего-то промежуточного — это обычный minicom по последовательной линии, ничего более.
screen /dev/ttyS0 38400
Кажется, все работает нормально — позволяет мне редактировать строку и отправлять ее на последовательный порт только после нажатия клавиши ENTER.
Можно ли настроить minicom так, чтобы он делал то же самое?
решение1
Рассмотрите возможность использования rlwrap
для добавления расширенных функций редактирования строк readline в любую простую терминальную программу. Я не уверен, minicom
будет ли он хорошо работать с ним, поскольку у него довольно сложный пользовательский интерфейс; если нет, попробуйте picocom
.
решение2
apt install socat rlwrap
rlwrap -- socat - /dev/ttyUSB1,crnl
Затем вы можете использовать CR для поиска, стрелки для команд «Далее/Назад», Alt-b, Alt-f, CA, Ce, стрелки для навигации внутри строки и т. д.