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 :

Problème de communication Serie rs232


Sujet :

C++

  1. #1
    Membre confirmé Avatar de marcootz
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 159
    Par défaut Problème de communication Serie rs232
    Bonjour à tous,
    J'ai une appli C++ borland qui utilise une communication série. Pour développer j'utilise un laptop avec un adaptateur usb serie car il ne possède pas de port com.

    Mon appli envoit et recoit des trames que je visualise sur une console de debugage. Elle communique avec une carte microcontrolleur à l'aide d'un protocole "maison". Avec l'adaptateur usb/com cela fonctionne tres bien.

    J'ai installé l'appli sur un pc qui possède un port com, et la ma com fonctionne très mal. Des erreurs de lecture de trames et l'envoi de trames de plus de 10 octets est impossible. Je visualise ces erreurs à l'aide de message que j'inscris dans ma console.

    Quelqu'un à t'il déja eu des soucis de ce type, ou une idée pour comprendre pourquoi ca marche en usb/serie mais pas en serie direct ?

    Merci d'avance
    Marco

  2. #2
    Membre éprouvé

    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Décembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Décembre 2007
    Messages : 67
    Billets dans le blog
    1
    Par défaut
    Cà peut être dû à une configuration de port légèrement différente si tu n'as pas défini tous les paramètres de com via ton application (Contrôle de flux, nombre de bits dans la trame RS...).
    L'idéal est d'utiliser sur tes 2 PC un outils pour envoyer/recevoir des trames sur le port RS. Cà te permettra de voir si c'est ton soft qui ne paramètre pas bien toutes les caractéristiques du port ou bien si c'est vraiment un problème de port série.

    J'avais fait un p'tit outils y'a 2-3 ans, j'peux peut-être te le filer si tu veux (il fonctionnait sous XP).

    As-tu peut-être d'autre infos à nous fournir ?

    Voili voilou,
    A+.

    Citation Envoyé par marcootz Voir le message
    Bonjour à tous,
    J'ai une appli C++ borland qui utilise une communication série. Pour développer j'utilise un laptop avec un adaptateur usb serie car il ne possède pas de port com.

    Mon appli envoit et recoit des trames que je visualise sur une console de debugage. Elle communique avec une carte microcontrolleur à l'aide d'un protocole "maison". Avec l'adaptateur usb/com cela fonctionne tres bien.

    J'ai installé l'appli sur un pc qui possède un port com, et la ma com fonctionne très mal. Des erreurs de lecture de trames et l'envoi de trames de plus de 10 octets est impossible. Je visualise ces erreurs à l'aide de message que j'inscris dans ma console.

    Quelqu'un à t'il déja eu des soucis de ce type, ou une idée pour comprendre pourquoi ca marche en usb/serie mais pas en serie direct ?

    Merci d'avance
    Marco

  3. #3
    Membre confirmé Avatar de marcootz
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 159
    Par défaut
    salut exterieur,
    J'ai essayé sur deux pc ayant un port com integré mais le résultat est le même. éventuellement si c'est possible pour toi de m'envoyer ton soft de test je veux bien, merci (je t'envois mon @ en mp).

    Plus d'info sur mon code, voici comment j'ouvre ma connection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DCB dcbCommPort;    
       hComm = CreateFile("COM1",
                          GENERIC_READ | GENERIC_WRITE,
                          0,
                          0,
                          OPEN_EXISTING,
                          0,
                          0);
    et voici ce que je paramètre à l'aide de mon soft :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dcbCommPort.Parity=MARKPARITY;
        dcbCommPort.BaudRate=CBR_57600;
        dcbCommPort.ByteSize=8;
        dcbCommPort.StopBits=ONESTOPBIT;
    Merci encore pour ton aide. A+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 61
    Par défaut
    On peu voir les erreurs ?

  5. #5
    Membre confirmé Avatar de marcootz
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 159
    Par défaut
    On peu voir les erreurs ?
    Malheureusement non, je sais qu'il y a des erreurs de trames car je fais un log sur une console externe. J'entend par "erreur" que par exemple je transmet une trames et que celle ci est mal reçue par ma carte microcontrolleur.

    Exemple : j'envoie une trame de 300 octets et j'attends une réponse de la carte, un caractère 'O' puis un caractère 'k' mais je ne les reçoit jamais, ce qui me donne une ligne dans mon fichier log. Si je refais la même manip en utilisant l'usb/rs232 ça fonctionne.

    Le problème viens, je pense, d'un mauvais paramétrage de la com dans mon appli, qui est absorbé par l'adaptateur.

    Voila désolé de ne pas pouvoir de donner plus d'infos...

  6. #6
    Membre éprouvé

    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Décembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Décembre 2007
    Messages : 67
    Billets dans le blog
    1
    Par défaut
    Ok,

    As tu reçu mon mail sur ton adresse privée ?

    Cela peut venir en effet d'un mauvais paramètrage de la RS, du moins d'un manque de définition de certains paramètre de la RS que le boitier USB lui mettrait de manière automatique (contrôle de flux par exemple).

    Cela peut venir aussi d'un problème de blindage ou de niveau de signaux RS.

    Une question, quand tu le test avec d'autres p, ce sont des portables ou bien des PC de bureaux ? (Sur un portable on a des masse flottantes souvent et si on a pas de blindage, la com passe mal surtout à des vitesses comme 57600 bauds)...

    Affaire à suivre...

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2010, 11h51
  2. communication port RS232 ( serie)
    Par sylvain_bos dans le forum C++
    Réponses: 22
    Dernier message: 11/03/2009, 20h11
  3. communication serie rs232 en c++ MFC
    Par mafia325 dans le forum C++
    Réponses: 7
    Dernier message: 03/02/2009, 08h38
  4. Problème de communication PIC-PC via RS232
    Par jiji94 dans le forum C++
    Réponses: 0
    Dernier message: 04/04/2008, 19h26
  5. Problème de communication Serie et commandes AT
    Par David Fouejio dans le forum MFC
    Réponses: 2
    Dernier message: 05/10/2007, 15h53

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