Blame view

minicom.c 1.16 KB
89de38a4   grouille   Ajout d'un fichie...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  #include <stdio.h>
  #include <termios.h>
  #include <sys/fcntl.h>
  
  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);
  }