2017-10-06 89 views
0

我正在使用mbed NXP LPC1768和Tera Term。我在清除屏幕時遇到了問題,因此只會看到統計信息不斷更新而沒有滾動。如何清除串行屏幕?

+0

我正在使用C++。 – user8447252

+1

嘗試發送ESC「\ [2J」。 [VT100 ESC序列](http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlvt100.html) –

+0

唉,這聽起來比「看看你是否可以使用curses庫」簡單得多。我正在建議。 – user4581301

回答

2

TeraTerm支持DEC VT100仿真DEC VT382。 VT100是最小公分母(也稱爲ANSI終端)。要控制VT100/ANSI終端,請發送escape sequences

「擦除屏幕」的轉義序列是<ESC>[2J。其中<ESC>是ASCII轉義字符0x1b。因此,您將轉義爲字符串"\x1b[2J"到串行端口以清除終端。

然而,在不清除整個屏幕的情況下,在屏幕上靜態更新值有一個更簡單和更有效的方法。如果配置了終端,使得它需要CR + LF爲換行,然後簡單地僅發送一個CR如(例如)如下:

for(;;) 
{ 
    output(result_string) ; 
    output("    ") ; // enough space to overwrite the 
           // previous result if the line 
           // length is variable. 
    output("\r") ; 
    delay(update_delay) ; 
} 

然後result_string將被重複地寫入在同一行上不滾動或前進。