清除终端屏幕?

Eug*_*gen 16 terminal refresh arduino erase clear

我正在为我的机器人从9个不同的传感器读取数据,我需要在同一个窗口中稳定地显示它们,这样我就可以比较这些值,看看是否有任何读数都关闭了.

我在Serial.print和lcd.print上遇到的问题是值不断移动,在移动机器人时我无法真正看到它们.

我想在显示任何其他东西之前调用类似Serial.clear()的东西,这样可以保持稳定并在一个地方,只改变值.

从我到目前为止发现的,不再支持Serial.print(17,BYTE)(调用ESC键).

那么......对于那些有更多Arduino经验的人来说......这样做的正确方法是什么?

jjz*_*jjz 32

Arduino串行监视器不是常规终端,因此无法使用标准终端命令清除屏幕.我建议使用像Putty这样的实际终端模拟器.

清除终端屏幕的命令是ESC [2J

要在Arduino代码中完成:

  Serial.write(27);       // ESC command
  Serial.print("[2J");    // clear screen command
  Serial.write(27);
  Serial.print("[H");     // cursor to home command
Run Code Online (Sandbox Code Playgroud)

资料来源:http:
//www.instructables.com/id/A-Wirelessly-Controlled-Arduino-Powered-Message-B/step6/Useful-Code-Explained-Clearing-a-Serial-Terminal/


小智 7

没有办法清除屏幕,但是,一个非常简单的伪造方法可以打印Serial.println();所需的数据,以便将所有旧数据保留在屏幕之外.


小智 5

我发现ASCII 12创建了一个Form feed,这是一个新页面.这是维基百科的定义

"换页是一个破坏页面的ASCII控制字符.它强制打印机弹出当前页面并继续在另一个页面顶部打印"

代码是

Serial.write(12);
Run Code Online (Sandbox Code Playgroud)

Arduino Terminate不支持该角色,Putty是一个轻量级的开源telnet客户端可以做到这一点

代码示例

void setup() {
  Serial.begin(9600);//Initializase the serial transmiter speed

}

void loop() {
    //Code tested with Putty terminal

    Serial.write(12);//ASCII for a Form feed
    Serial.println("This is the title of a new page");// your code

    delay(500);//delay for visual
    }
Run Code Online (Sandbox Code Playgroud)