Bonjour,
J'ai un petit dongle USB avec un Chip FTDI donc autrement dit un "émulateur de port COM" sur
USB.
Je le branche à mon USB, je vais dans le terminal et tape cd /dev et je trouve que quelque part
j'ai le répertoire: "tty.usbserial-A2001mBE" donc quelque part j'ai un "port COM" via l'usb.
Ce qui est COOOL
Bon étape suivante, je tante de l'adresse en C selon "protocole" POSIX standard:
Le code compile COOL :rolleyes:, il s'execute même et dans la console je récupère:
Hello, World!
PORT OPENED!
Donc le port est bien ouvert! Mieux encore, si je retire le dongle FTDI j'obtiens une erreur d'ouverture donc ça marche :rallyes: COOL
Par contre...
la console ne m'indique jamais que le program s'est terminé, donc j'imagine qu'il y a un soucis dans le write()... :sleep: et que ça n'envoie en fait rien sur mon PORT COM :heu:
Quelqu'un a un peu d'expérience avec ça?
Merci à tous,
David
J'ai un petit dongle USB avec un Chip FTDI donc autrement dit un "émulateur de port COM" sur
USB.
Je le branche à mon USB, je vais dans le terminal et tape cd /dev et je trouve que quelque part
j'ai le répertoire: "tty.usbserial-A2001mBE" donc quelque part j'ai un "port COM" via l'usb.
Ce qui est COOOL
Bon étape suivante, je tante de l'adresse en C selon "protocole" POSIX standard:
Bloc de code:
#include <stdio.h> /* Standard input/output definitions */
#include <string.h> /* String function definitions */
#include <unistd.h> /* UNIX standard function definitions */
#include <fcntl.h> /* File control definitions */
#include <errno.h> /* Error number definitions */
#include <termios.h> /* POSIX terminal control definitions */
int open_port(void);
int main (int argc, const char * argv[])
{
// insert code here...
printf("Hello, World!\n");
int fd = open_port();
char Buff[]="V8 cars are coool";
write(fd, Buff, strlen(Buff)+1);
printf("SUCCESS!\n");
return 0;
}
int open_port(void)
{
int fd; /* File descriptor for the port */
//tty.usbserial-A2001mBE
fd = open("/dev/tty.usbserial-A2001mBE", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1)
{
/*
* Could not open the port.
*/
perror("open_port: Unable to open /dev/tty.usbserial-A2001mBE - ");
}
else
fcntl(fd, F_SETFL, 0);
printf("PORT OPENED!\n");
return (fd);
}
Le code compile COOL :rolleyes:, il s'execute même et dans la console je récupère:
Hello, World!
PORT OPENED!
Donc le port est bien ouvert! Mieux encore, si je retire le dongle FTDI j'obtiens une erreur d'ouverture donc ça marche :rallyes: COOL
Par contre...
la console ne m'indique jamais que le program s'est terminé, donc j'imagine qu'il y a un soucis dans le write()... :sleep: et que ça n'envoie en fait rien sur mon PORT COM :heu:
Quelqu'un a un peu d'expérience avec ça?
Merci à tous,
David