Advertisement
AntonioVillanueva

PORT SERIE SOUS LINUX

Sep 28th, 2017
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <termios.h>
  3. #include <unistd.h>
  4. #include <sys/fcntl.h>
  5. #include <iostream>
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     int     fd;
  11.     char    c;
  12.     struct termios  termios_p;
  13.  
  14.     /* Ouverture de la liaison serie */
  15.     if ( (fd=open("/dev/ttyUSB2",O_RDWR)) == -1 ) {
  16.         perror("open");
  17.         return 0;
  18.     }
  19.    
  20.     /* Lecture des parametres courants */
  21.     tcgetattr(fd,&termios_p);
  22.     /* On ignore les BREAK et les caracteres avec erreurs de parite */
  23.     termios_p.c_iflag = IGNBRK | IGNPAR;
  24.     /* Pas de mode de sortie particulier */
  25.     termios_p.c_oflag = 0;
  26.     /* Liaison a 9600 bps avec 7 bits de donnees et une parite paire */
  27. //  termios_p.c_cflag = B9600 | CS7 | PARENB;
  28. //8N1
  29.     termios_p.c_cflag &=~PARENB;
  30.     termios_p.c_cflag &=~CSTOPB;
  31.     termios_p.c_cflag &=~CSIZE;
  32.     termios_p.c_cflag |=CS8;
  33.     /* Mode non-canonique avec echo */
  34.     //termios_p.c_lflag = ECHO;
  35.     /* Caracteres immediatement disponibles */
  36.     termios_p.c_cc[VMIN] = 1;
  37.     termios_p.c_cc[VTIME] = 0;
  38.     /* Sauvegarde des nouveaux parametres */
  39.     tcsetattr(fd,TCSANOW,&termios_p);
  40.    
  41.     /* Affichage sur le terminal */
  42.     write(fd,"Tapez Ctrl-C pour quitter\n",26);
  43.  
  44.     /* Boucle de lecture */
  45.     while ( (read(fd,&c,1)) >10 ){
  46.             cout <<c;
  47.             //cout <<"Read trame ="<<buff;
  48.     }
  49.  
  50.    
  51.     while ( 0 ) {
  52.         read(fd,&c,1);
  53.         if ( c == 0x03 )        /* Ctrl-C */
  54.             break;
  55.         printf("%03u %02x %c\n",c&0xff,c&0xff,c);
  56.     }                                                                  
  57.  
  58.     /* Fermeture */
  59.     close(fd);
  60.  
  61.     /* Bye... */
  62.     return 0;
  63.    
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement