如何清除串行屏幕?

时间:2017-10-06 18:43:02

标签: c++ embedded mbed

我正在使用mbed NXP LPC1768和Tera Term。我在清除屏幕时遇到问题所以它只是看看统计数据在不滚动的情况下不断更新。

1 个答案:

答案 0 :(得分:2)

TeraTerm支持DEC VT100到DEC VT382的仿真。 VT100是最小公分母(也称为ANSI终端)。要控制VT100 / ANSI终端,请发送escape sequences

&#34;擦除屏幕的转义序列&#34>是<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将重复写在同一行,而不会滚动或前进。