linux开发板ch340控制台不显示命令

linux开发板ch340控制台不显示命令,第1张

如果命令执行均正常,只是不显示键盘打印字符,那就只是stty的问题。我们通常会认为,敲了键盘,就应该有字出现在屏幕上。这是因为stty提供了字符回显。

各个把键盘键入的字符输出来的就是stty的输入回写功能,包括退格等字符处理,都是stty处理掉的。键盘给电脑的只有按键消息。怎么修复无回显的问题?在终端输入以下命令再回车即可。

为了避免之前有字符影响,可以先回车一下。执行后,回显就有了。

实现getch函数,直接调用即可:

#include <stdio.h>

#include <unistd.h>

#include <termios.h>

typedef enum {FALSE, TRUE} bool

static struct termios newtermset, oldtermset

void noecho(void)

{

tcgetattr(STDIN_FILENO, &oldtermset)

newtermset = oldtermset

newtermset.c_lflag &= ~ICANON

newtermset.c_lflag &= ~ECHO

newtermset.c_cc[VMIN] = 1

tcsetattr(STDIN_FILENO, TCSANOW, &newtermset)

}

void reset_term(void)

{

tcsetattr(STDIN_FILENO, TCSANOW, &oldtermset)

}

int getch(void)

{

int ch

noecho()

ch = getchar()

reset_term()

return ch

}

int main(int argc, char **argv)

{

char buff[128]

int i, ch

bool bshow = FALSE

if (argc >1) bshow = TRUE

printf("Please input your name: ")

for (i = 0i <sizeof(buff)++i) {

if ('\n' == (ch = getch()))

break

if (bshow) putchar('*')

buff[i] = ch

}

buff[i] = '\0'

printf("\nYour name is: %s\n", buff)

return 0

}

建议:若只是想使用getch函数来实现无回显输入功能,就不要用ncurses了,因为你得用它的话必须要进入curses环境,而在此环境中,很多C标准输入/输出函数都会运行得不正常!

上面这个程序其实就是对终端编程,具体可自行查阅相关方面内容。

PS:上面程序知道怎么编译和运行吧。Good Luck。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8990704.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存