Problème lorsque je cherche a lire des données sur mon port com
S1rK
Messages postés17Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention15 novembre 2011
-
2 mars 2011 à 11:54
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 2014
-
2 mars 2011 à 17:51
Bonjour à tous, voila mon problème
Je travail sous Linux en C, et je souhaite envoyer des chaines de caractères vers un modem qui communiquera encore avec un autre modem.
J'ai relié un simple cable USB/PORT COM sur mon pc, et je souhaite tester la reception de mes données, probléme: lorsque je tente un write (ici une boucle for qui va me permettre d'envoyer l'alphabet), et que je tente un read, mon terminal m'indique l'erreur suivante: "Resource temporarily unavailable" que ce soit lorsque je communique avec un modem ou avec mon cable USB/PORT COM.
Je pense que c'est une bétise.. mais ça me prend pas mal la tête parce que je vois pas ce qui cloche :x
Voici mon code pour l'envoie et la réception de caractères
bool COMSend()
{
fd1 = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY); // Création du fichier et test
perror("open() ");
char c = 'a'; // Octet à écrire
int i; // compteur
for (i = 0 ; i < 26 ; i++)
{
write(fd1, &c, sizeof(char)); // Ecriture
c++; // Incrément
}
perror("write()");
close(fd1); // On ferme le fichier
perror("close()");
}
bool COMReceive()
{
int fd;
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY); // Création du fichier et test
perror("open() ");
char c = 0x00; // Octet à lire
int i; // compteur
for (i = 0 ; i < 26 ; i++)
{
read(fd, &c, sizeof(char)); // Lecture
printf("%c", c);
}
printf("\n");
perror("read() ");
}
Si quelqu'un a une idée, je suis preneur, et encore une fois merci aux gens qui prendront la peine de me lire, et encore plus ceux qui m'aideront