Problema configurazione porta seriale linux

di il
9 risposte

Problema configurazione porta seriale linux

Buonasera ragazzi, dopo un bel po di giorni mi sono reso conto che sbaglio qualcosa nella configurazione della porta seriale (ambiente linux) poichè il buffer che legge da seriale alcune volte arriva sporco. Posto un piccolo esempio e , successivamente, la configurazione da me utilizzata.
Esempio:
buffer1 : #.#messaggio1#!# ->buffer corretto
buffer2 : #.#messaggio2#!##.#parte del messaggio3 ->buffer sporco
buffer3 : parte del messaggio3#!# ->buffer sporco
Dove (#.#) e (#!#) sono i limitatori di inizio e fine messaggio.

I parametri che dovrei settare sono:
  • baud rate = 38400
    data bits = 8
    parity = none
    stop bits = 1
    handshaking = none
Mentre la funzione che utilizzo per configurare la seriale è la seguente:

    speed=B38400;
    cfsetospeed (&tty, speed);
    cfsetispeed (&tty, speed);
    tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8;
    tty.c_iflag &= ~IGNBRK;   
    tty.c_lflag = 0;                
    tty.c_oflag = 0;               
    tty.c_cc[VMIN]  = 0;            
    tty.c_iflag &= ~(IXON | IXOFF | IXANY); 
    tty.c_cflag |= (CLOCAL | CREAD);
    tty.c_cflag &= ~(PARENB | PARODD);
    tty.c_cflag |= parity;
    tty.c_cflag &= ~CSTOPB;
    tty.c_cflag &= ~CRTSCTS;
Spero qualcuno possa aiutarmi perchè davvero non capisco dove ho sbagliato poichè con il programma "Terminal.exe" , settando i parametri citati in lista il buffer non è mai sporco. Spero di essere stato chiaro, buona serata a tutti.

9 Risposte

Devi accedere o registrarti per scrivere nel forum
9 risposte