我打开串口的时候用非阻塞方式打开i:
复制代码- fd = open(serial_dev, O_RDWR| O_NOCTTY| O_NONBLOCK)
|
我往串口写入四个字节:char buf[4] = { 0x01, 0x02, 0x03, 0x04};
然后等待串口返回l四个个字节:char recv[4];
复制代码- fd_set read_set;
- struct timeval tv;
- FD_ZERO(&read_set);
- FD_SET(fd, &read_set);
- tv.tv_sec = 3;
- select(fd +1, &read_set, 0, 0, &tv);
- if (FD_ISSET(fd, &read_set)
- rc = read(fd, recv, 4);
|
但是我在串口没有返回数据的情况下,还能read到数据,而且独到的recv 和buf 的内容一样,这是为什么呢?请各路大神帮忙解惑~