Народ! Плиз хто может подскажите.
Нужно настроить СОМ порт в 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. Подскажите что нужно делать в таком случае. заранее спасибо.