LINUX.ORG.RU

Какие умолчательные настройки для COM-порта


0

0

Мучаюсь с питерской АТС M-200. Для работы с ней по COM-порту необходимо установить 38400 KBod и 1.5 стопов бита.

У меня есть исходники со следующим фрагментом:

int portfd = -1; portfd = open(tty_name, O_RDWR | O_NOCTTY | O_NDELAY); if (portfd > 0) { fcntl(portfd, F_SETFL, FNDELAY); struct termios tty; tcgetattr(portfd, &tty); cfsetospeed(&tty, B38400); cfsetispeed(&tty, B38400); cfmakeraw(&tty); tcsetattr(portfd, TCSANOW, &tty); } return portfd;

Получается что число стоп-бит идет по умолчанию.

Вопрос: какое оно ? Потому как при 2 стоп-битах ведет себя не совсем корректно.

anonymous

> Мучаюсь с питерской АТС M-200. Для работы с ней по COM-порту необходимо установить 38400 KBod
   и 1.5 стопов бита.
> Получается что число стоп-бит идет по умолчанию.
Вопрос: какое оно ? Потому как при 2 стоп-битах ведет себя не совсем корректно.

Во-первых 1.5 или 2 стоповых это в порту 3FBh второй бит=1.
То есть всегда выставить 1.5 ты не сможешь.
Во-вторых, 1.5 микросхема передатчик делает, если длина слова 5 бит, 
а если длина слова больше 5 бит, то при той же настройке (3FBh.2=1) будет на передаче 2 бита.
В-третьих, для приемника в компьютере вообще по барабану, сколько стоповых бит он получает.
Приемнику всегда достаточно одного стопового бита.

Стало быть сколько бы твоя атс стоповых бы ни выдавала, приниматься все должно в любом случае.
Аналогично и при передаче от тебя, если конечно приемник в атс реализован
на нормальной микросхеме, а не как-нибудь еба.уто.

Возможно у тебя длина слова неправильная или с четностью что не так?
Приведи полные требования для АТС и наконец таки обрисуй проблему.




ansky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.