Последовательный порт и RTS
Собрал преобразователь RS232-RS485, переключение прием/передача - RTS,
порт настроил так:
fcntl(port_fd, F_SETFL, 0);
struct termios options;
tcgetattr(port_fd, &options);
cfsetispeed(&options, B4800);
cfsetospeed(&options, B4800);
options.c_cflag |= (CLOCAL | CREAD);
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag |= CRTSCTS;
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_oflag &= ~OPOST;
options.c_cc[VMIN] = 0;
options.c_cc[VTIME] = 2;
tcsetattr(port_fd, TCSANOW, &options);
В разъеме соединил CTS и RTS. Раз в секунду вызываю запись в порт, передача
есть, но RTS постоянно "активный" (+12В), преобразователь на прием не
переключается. Если не соединять CTS и RTS передачи нет и вызов write
"застревает" (ждет CTS, аппаратное управление потоком вроде как включено).
Пробовал при открытии или через fcntl включать NDELAY, чтобы он не ждал
ответа, но ничего не меняется. Что можно сделать, чтобы он снимал RTS после
передачи?
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 10059; Возраст листа: 366; Участников: 1246
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/198339
-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать: mailto:comp.soft.linux.discuss--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru