2017-10-06 9 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

"저주 라이브러리를 사용할 수 있는지 확인하십시오"보다 훨씬 간단합니다. 나는 제안하려고했다. – user4581301

답변

2

TeraTerm은 DEC VT100에서 DEC VT382까지의 에뮬레이션을 지원합니다. VT100은 가장 낮은 공통 분모 (ANSI 터미널이라고도 함)입니다. VT100/ANSI 터미널을 제어하려면 escape sequences을 보내십시오.

"화면 지우기"의 이스케이프 시퀀스는 <ESC>[2J입니다. 여기서 <ESC>은 ASCII 이스케이프 문자 0x1b입니다. 따라서 문자열 "\x1b[2J"으로 이스케이프 처리하여 직렬 포트에 연결하여 터미널을 지우 셨습니다.

그러나 전체 화면을 지우지 않고도 화면에서 값을 정적으로 업데이트하는 방법은 간단합니다. 당신이 CR을가 줄 바꿈에 대한 CR +의 LF를 요구하도록 터미널을 구성하고 간단하게 만 보내는 경우 (예를 들어)를 다음과 같이

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

반복적으로 스크롤하거나 진행하지 않고 같은 줄에 기록됩니다 .