#include #include #include void main(void) { int fd; char c; struct termios termios_p; /* Ouverture de la liaison serie */ if ( (fd=open("/dev/ttyACM0",O_RDWR)) == -1 ) { perror("open"); exit(-1); } /* 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 7 bits de donnees et une parite paire */ termios_p.c_cflag = B9600 | CS7 | 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); /* Affichage sur le terminal */ write(fd,"Tapez Ctrl-C pour quitter\n",26); /* Boucle de lecture */ while ( 1 ) { read(fd,&c,1); if ( c == 0x03 ) /* Ctrl-C */ break; printf("%03u %02x %c\n",c&0xff,c&0xff,c); } /* Fermeture */ close(fd); /* Bye... */ exit(0); }