Bonjour, j'aimerais avoir quelques renseignements sur la façon d'ouvrir une liaison série avec linux. Je dois ouvrir la liaison avec les paramètres suivants:
pas de parité.
8 bits de données
1 bit de stop
vitesse de 9600 bauds

Voici comment j'ai procédé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int dialMeteo::ouvrirLiaison()
{
fd=open("/dev/ttyS0",O_RDWR |O_NONBLOCK); // Ouverture en lecture ecriture, terminal.
if ( fd == -1) // Si erreur.
return -1;
 
// Parametrage de la liaison série.
struct termios termios_p;
// Lecture des parametres courants.
tcgetattr(fd,&termios_p);
// On ignore les BREAK et les caracteres avec erreurs de parite.
termios_p.c_iflag = IGNBRK | IGNPAR;
// Pas de mode de sortie particulier.
termios_p.c_oflag = 0;
// Liaison a 9600 bps avec 8 bits de donnees et une parite paire.
termios_p.c_cflag = B9600 | CS8 | PARENB;
// Mode non-canonique avec echo.
termios_p.c_lflag = ECHO;
// Caracteres immediatement disponibles.
termios_p.c_cc[VMIN] = 1;
termios_p.c_cc[VTIME] = 0;
// Sauvegarde des nouveaux parametres.
tcsetattr(fd,TCSANOW,&termios_p);
return 0;
}
Cela ne marche apparemment pas, est ce que quelqu'un saurait comment faire?

Merci d'avance, Alga