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 :

Lecture port série en continu


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2013
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 15
    Par défaut Lecture port série en continu
    Bonjour,

    Je cherche à faire communiquer un microcontrôleur et un ordinateur. J'ai trouvé sur internet un code source sur la liaison série qui fonctionne bien mais ne fait pas tout à fait ce que je souhaite.

    Il utilise la fonction suivante pour lire le port :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /*  ReadCOM : lecture de données sur le port COM.
     entrée : buffer       : buffer où mettre les données lues.
               nBytesToRead : nombre max d'octets à lire.
               pBytesRead   : variable qui va recevoir le nombre d'octets lus.
      retour : vrai si l'opération a réussi, faux sinon. */
     
     
    BOOL ReadCOM(void* buffer, int nBytesToRead, int* pBytesRead)
    {
        return ReadFile(g_hCOM, buffer, nBytesToRead, pBytesRead, NULL);
    }
    Cette fonction le lit qu'un nombre d'octet limité, et il me semble d'après mes différents tests qu'une fois qu'elle a terminé de lire le nombre d'octet spécifié elle ferme la liaison série.
    Je souhaiterais pouvoir lire en continu ma liaison série, j'ai donc essayer de metre cette fonction dans une boucle sans succès pour le moment.

    Quelqu'un aurait-il une idée?
    Merci d'avance,
    HeleneCT

  2. #2
    Membre actif
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2013
    Messages : 77
    Par défaut
    En effet la fonction ReadFile récupère le nombre de données spécifiées et l'inscrit dans le buffer donné (cf msdn )
    Cette fonction ne ferme pas le port.

    Pour se connecter il faut utiliser la fonction CreateFile()
    Et pour se déconnecter, il s'agit de la fonction CloseHandle()
    Il ne faut pas oublier qu'il y a des paramètres à régler tels que les timeouts (SetCommTimeouts())...

    Si tu veux lire en continue le port, la meilleure solution est d'utiliser un thread qui appelle la fonctionne ReadFile en permanence, et bufferise les données reçues.

Discussions similaires

  1. Lecture port série
    Par mickael.be dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/07/2008, 09h49
  2. lecture port série
    Par biscot19 dans le forum C
    Réponses: 6
    Dernier message: 13/07/2007, 08h54
  3. lecture port série
    Par alex2395 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/03/2007, 15h59
  4. [API Win32 sans MFC] Lecture port série: thread bloqué
    Par dacid dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 24/05/2006, 13h34
  5. Pb de lecture port série
    Par amalis dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 18/03/2006, 16h21

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