Terminal 使用带终端的转义序列

Terminal 使用带终端的转义序列,terminal,serial-port,microcontroller,vt100,Terminal,Serial Port,Microcontroller,Vt100,我正在使用Minicom终端(VT102)。我有一个微控制器节点,它通过串口(UART)向minicom发送数据。我编写了一些用于终端的函数 typedef unsigned char uchar_t; uchar_t clear_cmd[] = {0x1B, '[', '2', 'J', '\0'}; uchar_t gotoxy_cmd[] = {0x1B, '[', 0, ';', 0, 'H', '\0'}; void clearTerminal() { puts(clear

我正在使用
Minicom终端(VT102)
。我有一个微控制器节点,它通过串口(UART)向minicom发送数据。我编写了一些用于终端的函数

typedef unsigned char uchar_t;

uchar_t clear_cmd[] = {0x1B, '[', '2', 'J', '\0'};
uchar_t gotoxy_cmd[] = {0x1B, '[', 0, ';', 0, 'H', '\0'};

void clearTerminal()
{
    puts(clear_cmd); // puts() sends data serially to PC
}

void terminalWrite(uchar_t row, uchar_t col, const uchar_t *str)
{
    gotoxy_cmd[2] = row;
    gotoxy_cmd[4] = col;

    puts(gotoxy_cmd);
    puts(str);
}

void main()
{
    init_uart(); // Initialize UART

    clearTerminal();
    terminalWrite(2, 12, "Admin Login"); // 2nd line 12th column
    terminalWrite(4, 6, "Password: ");   // 4th line 6th column
    while(1);
}

[Assume all necessary header files are added]
我得到的输出是这样的
显示在第一行,而不是指定行。

查找文档中的“gotoxy”命令:以ASCII格式发送坐标:

printf("\x1B[%u;%uH", row, col);