Configurer une RS232 sous UNIX en C low lvl - C - Programmation
Marsh Posté le 24-01-2006 à 17:14:47
Pourquoi tu n'utilises pas Termios ?
#include <termios.h>
int init_serialport(int fd){
struct termios options;
/* récupère les options actuels du port série */
if (tcgetattr(fd, &options)==-1)
return -1;
/* options */
options.c_cflag |=CS8; /* 8 bits*/
options.c_cflag |=PARENB; /* parité*/
/* vitesse à 9600 bauds*/
cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);
/* écrase les options du port série */
if (tcflush(fd, TCIOFLUSH)==-1)
//vide les caractères en attente en lecture et en écriture
return -1;
return tcsetattr(fd, TCSANOW, &options);
}
Sinon, sans termios, je vais retrouver mes cours et je vais te répondre.
Marsh Posté le 24-01-2006 à 22:54:32
Je suis bête et discipliné, mon prof m'a donné cette piste et je l'ai suivi, toutefois je te remercie pour cet autre voie, je tacherais de la mettre en oeuvre jeudi.
Si cela pouvais m'éviter l'écriture de limite tout un driver pour la bestiole ça serais dément
Merci encore pour ta réponse
Marsh Posté le 24-01-2006 à 23:11:16
Sk0r a écrit : Si cela pouvais m'éviter l'écriture de limite tout un driver pour la bestiole ça serais dément |
Aucun problème. La gestion des ports série sous unixoide est une chose simple et maitrisée.
Marsh Posté le 25-01-2006 à 10:50:35
tu savais que ton pseudo voulait dire "chaussures" en suedois ? c'est formidable non ?
Marsh Posté le 25-01-2006 à 13:47:20
chrisbk a écrit : tu savais que ton pseudo voulait dire "chaussures" en suedois ? c'est formidable non ? |
Incroyabeul, décidement j'en apprend tous les jours ici
Je fait du 45, tu pense que je devrais l'écrire en majuscule?
Marsh Posté le 24-01-2006 à 10:17:57
Bonjour à tous,
Voila un problème sur lequel je me casse les dents depuis 1 semaine sans trouver de réponse, a peine quelques voies.
En gros je doit communiquer avec un robot (un bras articulé pour qui ça interesse) connecté à un PC sous UNIX en liaison Série RS232 le tout en C bas niveau. J'aimerais que quelqu'un m'explique comment utiliser la fonction ioctl() afin de pouvoir configurer la vitesse de communication (BAUDRATE), la parité et tt le tremblement car là je commence à desesperer: les docs sur le net ne me sont d'aucun utilité et le man de LINUX ne m'aide pas plus
Merci d'avance pour vos réponse.