[c]serijski port

Lep pozdrav mene pa zanima ce bi mi kdo znal pomagati odpreti serijski port v low levelu trenutno berem na high levelu vendat mi kdaj pa kdaj program zablokira za 2 s, kar je prevec. zato prosim ce mi kdo pomaga.. prilozil bom tudi nastavitve. ali so mogoce te tudi vzrok za "stekanje" programa

nastavitve porta
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
tcflush(fd, TCIFLUSH);
cfsetispeed(&options, B115200);
cfsetospeed(&options, B115200);
options.c_cflag |= (CLOCAL | CREAD);
options.c_cflag &= ~PARENB;
options.c_cflag |= CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_cflag &= ~CRTSCTS;
options.c_cc[VMIN]=0;
options.c_cc[VTIME]=1;
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // raw input
options.c_oflag &= ~OPOST;//raw input
options.c_iflag |= IXON | IXOFF| IXANY;
options.c_iflag = 0;
options.c_iflag &= ~ICRNL;
options.c_iflag |= IGNPAR;
options.c_oflag = NL0 |CR0| TAB0| BS0| VT0| FF0;
options.c_iflag &= ~(IGNBRK | BRKINT | INLCR | PARMRK | INPCK | ISTRIP );

branje
nb_byts = read(fd, buffi, 255);
Za komentiranje se prijavite ali pa se vpišite.