IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Langage C et liaison RS232


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Langage C et liaison RS232
    Bonjour a tous, je recherche une fonction capable d'envoyer ces données sur la liaison RS232 d'un PC. Je pense que cette fonction existe et se trouve dans les bibliothèques C fourni avec n'importe quel outil de développement en C mais je n'arrice pas à les trouver. Au secours !!!

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 590
    Points
    41 590
    Par défaut
    fopen("COM1", <mode>);

    Supposé marcher sous DOS et Windows, et il me semble bien que c'est aussi le cas sous UNIX. (mais je ne sais pas comment on peut régler le port sous UNIX)

    Si tu veux utiliser le port COM à bas niveau, les systèmes d'exploitation modernes t'en empêcheront à moins que tu ne développes un driver.

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Langage C et liaison RS232
    Citation Envoyé par Spikedu63
    Bonjour a tous, je recherche une fonction capable d'envoyer ces données sur la liaison RS232 d'un PC. Je pense que cette fonction existe et se trouve dans les bibliothèques C fourni avec n'importe quel outil de développement en C mais je n'arrice pas à les trouver. Au secours !!!
    Normal que tu ne trouves rien, car ça n'a rien à voir avec le C. Le port série est pris en charge par le système. A voir avec le forum de développement consacré à ton système.

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Médinoc
    fopen("COM1", <mode>);

    Supposé marcher sous DOS et Windows, et il me semble bien que c'est aussi le cas sous UNIX.
    "COM1" sous Unix ? Connait pas. C'est plutôt "/dev/tty0" ou un truc dans le genre...
    (mais je ne sais pas comment on peut régler le port sous UNIX)
    Et sous DOS/Windows ? system ("mode com1 ..."); ? Sous unix, on utilise les ioctl()...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par Médinoc
    fopen("COM1", <mode>);

    Supposé marcher sous DOS et Windows, et il me semble bien que c'est aussi le cas sous UNIX.
    "COM1" sous Unix ? Connait pas. C'est plutôt "/dev/tty0" ou un truc dans le genre...
    (mais je ne sais pas comment on peut régler le port sous UNIX)
    Et sous DOS/Windows ? system ("mode com1 ..."); ? Sous unix, on utilise les ioctl()...

    G essayé de faire comme vous me l'aviez dit mais ca n'a pas l'air de fonctionner... Quelqu'un n'aurait pas un petit programme source qui utilise cette liaison série sous windows ?

    Merci d'avance

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Spikedu63
    G essayé de faire comme vous me l'aviez dit mais ca
    "G" ?
    n'a pas l'air de fonctionner...
    Montre ton code.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par Spikedu63
    G essayé de faire comme vous me l'aviez dit mais ca
    "G" ?
    n'a pas l'air de fonctionner...
    Montre ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    int main (void) {
        FILE *c;
        unsigned char mot = 0x25;
     
    /* Ouverture du port */
        c = fopen("COM1",'w');
        if (c == NULL) {
             exit(1);
        }
     
    /* Ecriture d'un mot 8 bits sur le port */
         fprintf("%x",mot);
         return(0);
    }
    Le programme se finit a l'instruction exit

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Spikedu63
    Citation Envoyé par Emmanuel Delahaye
    Montre ton code.
    Ne compile pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    main.c: In function `main_':
    main.c:6: error: `FILE' undeclared (first use in this function)
    main.c:6: error: (Each undeclared identifier is reported only once
    main.c:6: error: for each function it appears in.)
    main.c:6: error: `c' undeclared (first use in this function)
    main.c:10: error: implicit declaration of function `fopen'
    main.c:10: warning: nested extern declaration of `fopen'
    main.c:11: error: `NULL' undeclared (first use in this function)
    main.c:12: error: implicit declaration of function `exit'
    main.c:12: warning: nested extern declaration of `exit'
    <internal>:0: warning: redundant redeclaration of 'exit'
    main.c:16: error: implicit declaration of function `fprintf'
    main.c:16: warning: nested extern declaration of `fprintf'
    <internal>:0: warning: redundant redeclaration of 'fprintf'
    main.c:16: warning: passing arg 1 of `fprintf' discards qualifiers from pointer target type
    main.c:16: warning: passing arg 2 of `fprintf' makes pointer from integer without a cast
    main.c:16: warning: format not a string literal and no format arguments
    Merci de poster le code exact.
    En ajoutant
    #include <stdio.h>
    on a encore ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    In file included from main.c:5:
    main.c: In function `main_':
    main.c:12: warning: passing arg 2 of `fopen' makes pointer from integer without a cast
    main.c:14: error: implicit declaration of function `exit'
    main.c:14: warning: nested extern declaration of `exit'
    <internal>:0: warning: redundant redeclaration of 'exit'
    main.c:18: warning: passing arg 1 of `fprintf' from incompatible pointer type
    main.c:18: warning: passing arg 2 of `fprintf' makes pointer from integer without a cast
    main.c:18: warning: format not a string literal and no format arguments
    Si ton compilateur ne dit rien,c'est qu'il est mauvais ou mal reglé...

    Ceci devrait fonctionner.... (MS-DOS/Windows)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    #include <stdio.h>
     
    #define F_COM "COM1"
     
    int main (void)
    {
    /* Ouverture du port */
       FILE *c = fopen (F_COM, "w");
     
       if (c != NULL)
       {
    /* Ecriture d'un mot 8 bits sur le port */
          int mot = 0x25;
     
          fputc (mot, c);
          fflush (c);
          fclose (c), c = NULL;
       }
       else
       {
          perror (F_COM);
       }
       return 0;
    }

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 590
    Points
    41 590
    Par défaut
    de plus: Ca pourrait être une bonne idée de passer c à ton appel à fprintf...

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    ok ! merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/06/2006, 18h16
  2. Reception trame et envoi trame pour liaison rs232
    Par gaetan.tranvouez dans le forum C
    Réponses: 6
    Dernier message: 09/06/2006, 15h50
  3. Aide Liaison Rs232
    Par go1985 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 05/06/2006, 15h33
  4. Liaison RS232
    Par theanswerdu40 dans le forum C++
    Réponses: 1
    Dernier message: 28/02/2006, 08h53
  5. Liaison RS232 en langage C sur Windows
    Par Spikedu63 dans le forum Windows
    Réponses: 9
    Dernier message: 12/10/2005, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo