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

VB 6 et antérieur Discussion :

Probleme avec le port com


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Probleme avec le port com
    Bonjour
    Dans le but de faire un programme pour communiquer avec un µC pic par le port RS232, j'ai testé un bout de code trouvé sur le net et j'ai quelques difficultées à le faire fonctionner.
    Mon µC envoie en permanence une suite de lettre, defg, le PC Win XP reçoie bien les lettres, je l'ai verifié avec un logiciel d'analyse de port com.
    J'utilise, sous VB6 le composant Microsoft Comm Control 6.0
    Lors de mes tests cela ne fonctionne pas en mode normal, par contre en mode pas à pas cela fonctionne aussi je me demande ou peut etre mon erreur.
    voici mon programme:
    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
     
     
    Private Sub Command1_Click()
    A:
    Label1.Caption = ""
    MSComm1.InBufferCount = 0
    MSComm1.CommPort = 2
    MSComm1.Settings = "1200,N,8,1"
    MSComm1.Handshaking = comNone
    MSComm1.InputLen = 1
    MSComm1.PortOpen = True
    MSComm1.RThreshold = 1
    Do While MSComm1.Input <> "d"
            DoEvents
    Loop
    MSComm1.InputLen = 3
    Label1.Caption = MSComm1.Input
    MSComm1.PortOpen = False
    GoTo A
    End Sub
     
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    MSComm1.PortOpen = False 'je ferme le port série
    End Sub
    Il s'agit de detecter la lettre d et d'afficher les trois lettres reçues suivantes.
    Si vous avez une piste pour ma recherche d'erreur, je vous en remercie d'avance.
    Gilles

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Bienvenue sur DVP

    Tu aurais dû commencer ta recherche par ici. Tu aurais trouvé ceci.

  3. #3
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 112
    Points : 16 645
    Points
    16 645
    Par défaut
    InputLen, propriété
    Définit et renvoie le nombre de caractères lus dans le tampon de réception par la propriété Input.
    ........
    ........
    Si le nombre de caractères indiqué par la propriété InputLen n'est pas disponible dans le tampon de réception, la propriété Input renvoie une chaîne de longueur nulle (""). L'utilisateur peut éventuellement vérifier la valeur de la propriété InBufferCount pour déterminer si le nombre de caractères requis est disponible avant d'utiliser la propriété Input.
    les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MSComm1.InputLen = 3
    Label1.Caption = MSComm1.Input
    Tu as toutes les (mal)chances d'avoir demander a recuperer l'infos avant que les 3 lettres attendues ne soient dans le buffer.
    Il faudrait faire une boucle en interrogeant le buffer (InBufferCount) du style (a verifier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MSComm1.InputLen = 3
    Do While MSComm1.InBufferCount <=2
     DoEvents
    Loop
    Label1.Caption = MSComm1.Input
    Bonne chance

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bonjour
    Merci pour vos reponses
    zazaraignée > j'ai bien entendu consulté la page que tu proposes en premier avant de poser ma question sur le forum.

    ProgElecT > j'ai ajouté les lignes que tu proposes et le resultat est le même pas de fonctionnement en mode normal par contre cela marche toujours en mode pas à pas. Ce que je ne comprend pas c'est le fait que cela fonctionne en mode pas à pas, j'ai pourtant mis des tempos entre les envoies sur le pic, environ 500ms c'est long du point de vue du pic.

    Merci encore pour l'interet que vous avez porté à ma question et si vous avez d'autres idée à me soumetre, n'hesitez pas.
    Gilles

Discussions similaires

  1. [TCOMPORT] probleme modification du port com
    Par msstaf dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/04/2006, 02h24
  2. Problème avec un port
    Par baali_hacene dans le forum Réseau
    Réponses: 4
    Dernier message: 28/03/2006, 16h39
  3. probleme avec mon port agp
    Par chrysmac2003 dans le forum Composants
    Réponses: 1
    Dernier message: 17/01/2006, 18h51
  4. probleme avec la PORTE DE VIE D'UNE VARIABLE EN PHP
    Par stomerfull dans le forum Langage
    Réponses: 1
    Dernier message: 09/12/2005, 15h19
  5. probleme avec la PORTE DE VIE D'UNE VARIABLE EN PHP
    Par stomerfull dans le forum Langage
    Réponses: 2
    Dernier message: 09/12/2005, 15h17

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