2015-02-12 3 views
0

Возможно ли каким-либо образом вернуться к началу страницы, а не по строке, странице. Используя что-то вроде "hello\r", очевидно, напишите «привет» и вернитесь к началу строки.UART, возврат в начало страницы

Но как насчет того, когда я нахожусь на второй линии? Итак, после "hello\n" это положило бы меня на вторую строчку. Могу ли я как-то вернуться к 1-й линии.

Из исследования, которое я провел, кажется, что вы можете работать только на одной линии, но я не уверен на 100% и, таким образом, хотел бы, чтобы кто-то подтвердил это.

Программирование на языке C и использование RealTerm.

+0

Как насчет '^ L' (т. Е.' \ F')? – ouah

+0

Нет, это просто делает то, что описано: новая страница Я бы хотел перезаписать 1-ю строку – s3v3ns

+1

Вы пытались внедрить escape-последовательность ANSI, такую ​​как ** Cursor Home ** ' [{ROW}; {COLUMN } H', который устанавливает позицию курсора, где будет начинаться последующий текст. Если параметры строки/столбца не заданы (например, ' [H'), курсор переместится в исходное положение в верхнем левом углу экрана. См. Http://www.termsys.demon.co.uk/vtansi.htm –

ответ

2

RealTerm имеет режим эмуляции терминала ANSI.

Найдите диалоговое окно конфигурации «Форматирование отображения» и выберите опцию Ansi.

Теперь вы можете встроить последовательность для Cursor Home так же, как вы вставляете новой строки.

<ESC>[H 

Где, конечно, <ESC> означает один символ 0x1b. Вы можете реализовать его следующим образом:

sprintf(buffer, "%c[Hmy text\n", 27); 
transmit(buffer); 

или аналогичный.

+0

Я не уверен на 100%, как это реализовать в моей программе. Я попробовал key_string (" [H"); который, очевидно, ошибочен, но на самом деле не знал, что еще делать. Все это нужно контролировать с помощью программы, которую я написал. – s3v3ns

+0

Улучшенное объяснение. –

+0

Не выполняйте ''% c "' с константой. C имеет синтаксис для этого: 'strcpy (buffer," \ x1B [Hmy text \ n ");'. – rodrigo

Смежные вопросы