我有一个函数:
int term_option(int option)
{
struct termios attributes;
switch(option)
{
case 0: // Echo On
if(tcgetattr(STDIN_FILENO,&attributes) != 0) return (-1);
attributes.c_lflag |= ECHO;
attributes.c_lflag |= ICANON;
attributes.c_lflag |= ISIG;
if(tcsetattr(STDIN_FILENO,TCSANOW,&attributes) != 0) return (-1);
break;
case 1: // Echo Off
if(tcgetattr(STDIN_FILENO,&attributes) != 0) return (-1);
attributes.c_lflag &= ~(ECHO);
if(tcsetattr(STDIN_FILENO,TCSAFLUSH,&attributes) != 0) return (-1);
break;
case 2: // Wait for the keyboard to be touched
if(tcgetattr(STDIN_FILENO,&attributes) != 0) return (-1);
attributes.c_lflag &= ~(ICANON);
attributes.c_cc[VMIN] = 1;
attributes.c_cc[VTIME] = 1;
if(tcsetattr(STDIN_FILENO,TCSANOW,&attributes) != 0) return (-1);
break;
case 3:
if(tcgetattr(STDIN_FILENO,&attributes) != 0) return (-1);
attributes.c_lflag &= ~(ICANON);
attributes.c_lflag &= ~(ISIG);
attributes.c_cc[VMIN] = 0;
attributes.c_cc[VTIME] = 0;
if(tcsetattr(STDIN_FILENO,TCSANOW,&attributes) != 0) return (-1);
break;
}
return 0;
}当我使用以下命令调用它时:
term_option(1);
term_option(3);它根本不返回任何内容。事实上,它看起来甚至没有被执行。我不知道为什么。是的,我确实使用了termios.h头文件。有谁有什么想法吗?
谢谢。
下面是gdb的结果:
发布于 2018-01-06 06:17:48
请检查需要设置的波特率。使用您正在使用的机器和您正在连接的设备。
https://stackoverflow.com/questions/48121311
复制相似问题