0
我需要在树莓派写UART终端。这个想法是按键盘上的键连接到我的树莓并通过UART发送,然后打印通过UART接收的树莓。树莓派回声在getchar()
问题是在覆盆子pi回声。我不需要这个,但我不知道如何禁用它。我使用这个功能:
int kbhit(void)
{
struct termios oldt, newt;
int ch;
int oldf;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
fcntl(STDIN_FILENO, F_SETFL, oldf);
if(ch != EOF)
{
return ch;
}
return 0;
}
有时候没有回声。
比如我输入的是:ABCDEFGH
但程序返回我:abbccddeefghh