Configuration C ansi 9600 b/s
8 bits
pas de parité
un bit de stop
/********************************
* Projet : config facile ttySx 9600b/s
* Auteur : Bogt
* Date : 04/10/2024
********************************/
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#ifdef __unix__
#include <termios.h>
#endif
int main() {
int fd;
struct termios options;
/* Ouvre le port série ttyS4 */
fd = open("/dev/ttyS4", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1) {
perror("Erreur lors de l'ouverture de /dev/ttyS0");
return EXIT_FAILURE;
}
/* Récupère les paramètres actuels du port série */
if (tcgetattr(fd, &options) == -1) {
perror("Erreur lors de la récupération des attributs");
close(fd);
return EXIT_FAILURE;
}
/* Définit la vitesse du port à 9600 bps */
cfsetispeed(&options, B9600); /* Vitesse d'entrée */
cfsetospeed(&options, B9600); /* Vitesse de sortie */
/* Configure 8 bits de données, pas de parité, 1 bit d'arrêt (8N1) */
options.c_cflag &= ~PARENB; /* Pas de parité */
options.c_cflag &= ~CSTOPB; /* 1 bit d'arrêt */
options.c_cflag &= ~CSIZE; /* Masque pour les bits de données */
options.c_cflag |= CS8; /* 8 bits de données */
/* Applique les modifications du port série */
if (tcsetattr(fd, TCSANOW, &options) == -1) {
perror("Erreur lors de l'application des attributs");
close(fd);
return EXIT_FAILURE;
}
/* Vider le buffer pour s'assurer que la nouvelle configuration soit prise en compte */
tcflush(fd, TCIFLUSH);
printf("Port série ttyS4 configuré à 9600 bps.\n");
/* Ferme le port série */
close(fd);
return EXIT_SUCCESS;
}