реклама на сайте
подробности

 
 
> Linux: настройка скорости COM порта выше 115200
ovp
сообщение Apr 4 2008, 13:26
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 18-10-07
Пользователь №: 31 459



Народ! Плиз хто может подскажите.
Нужно настроить СОМ порт в Linux на скорость 921600, при этом я пишу следуещее:
//=========================================================
//соответсвующие инклуды......

struct termios new_modem,old_modem;
int fdes;
char* port_name="/dev/ttyS0";
//=========================================================
int open_port(char* p_name)
{
fdes = open(p_name, O_RDWR);
if (fdes == -1)
{
printf("open_port: Unable to open %s ", p_name);
}
else
{
fcntl(fdes, F_SETFL, 0);
printf("port %s open \n",p_name);
}
return (fdes);
}
//=========================================================
void set_port_parametres(void)
{
tcgetattr(fdes,&old_modem);//Get current options for the port

new_modem.c_cflag=(B921600|CS8|CLOCAL|CREAD);
new_modem.c_lflag = 0;
new_modem.c_iflag = IGNPAR;
new_modem.c_oflag = 0;
new_modem.c_cc[VMIN] = 0;
new_modem.c_cc[VTIME]= 1;

tcflush(fdes, TCIFLUSH);
tcsetattr(fdes, TCSANOW, &new_modem); //set new options for the port
}
//==========================================================
int main ()
{
int status1;

open_port(port_name);
set_port_parametres();
ioctl(fdes,TIOCMGET,&status1);
status1&=~TIOCM_RTS;
ioctl(fdes,TIOCMSET,&status1); //RESET RTS after transmitt
fcntl(fdes, F_SETFL, FNDELAY);
}
//=======================================================

Все прекрасно компилится, работает со скоростями до 115200 включительно, а вот при попытке поставить скорость выше чем 115200 компиляция проходит без ошибок, но реальная скорость в СОМ порте не изменяется и остается 115200. Подскажите что нужно делать в таком случае. заранее спасибо.

help.gif help.gif help.gif help.gif help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vshemm
сообщение Apr 4 2008, 16:06
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803



И еще нужно установить в линуксе (с помощью setserial, например) нужный тип порта, который поддерживает такие скорости (и хардварно совместим с Вашим портом). Ибо по умолчанию драйвер будет думать, что это 14550, который такие скорости не держит.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 17:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01349 секунд с 7
ELECTRONIX ©2004-2016