我正在使用以下代码从串口读取信息:
struct termios tio;
memset(&tio, 0, sizeof(tio));
// Open serial port in mode `8N1', non-blocking
tio.c_cflag = CS8 | CREAD | CLOCAL;
tio.c_cc[VMIN] = 1;
tio.c_cc[VTIME] = 10;
int fd = open("/dev/ttyACM1", O_RDONLY);
cfsetospeed(&tio, B9600);
cfsetispeed(&tio, B9600);
tcsetattr(fd, TCSANOW, &tio);
unsigned char byte = '0';
// check for input from arduino
while (!quit)
{
keyboardInput(quit);
read(fd, &byte, 1);
if ((byte == '1' || quit)
{
oldByteDoor = '1';
break;
}
}
当按下窗口的关闭按钮时,keyboardInput(quit)
将quit设置为true。
如果串口中没有任何内容,它将永远停留在read(fd, &byte, 1)
。
我该如何防止这种情况?
由于