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 :

liaison serie / uart


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut liaison serie / uart
    Bonjour,
    je suis débutant en c et j'essaye d'envoyer une chaine de caractére de l'ordinateur à un microprocesseur par la liaison serie.

    et je n'arrive pas et ne comprend pas comment controler la reception avec les bit de contrôle.
    j'ai fais un petit programme sans ces controles, qui recois bien, mais pas fiable du tous.

    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
        uint8 	lecture_uart0c[20];       // chaine de caractere lu dans l'uart
        uint16 	nblettre=0;       //nombre de lettre de la chaine
        bool_t    lecturefin;	     //* fin de lecture
        lecturefin=FALSE;		     //* fin de lecture
        strcpy(lecture_uart0c,"");          //vide la variable finale
     
                do
                {
                    lecture_uart0c[nblettre]=u8JPI_UartReadData(E_JPI_UART_0);
                    if(lecture_uart0c[nblettre]==13) lecturefin=TRUE;
                    nblettre++;
                    vPrintf("(%s)(%d)  \n",lecture_uart0c,nblettre);
                }
                while(nblettre<=20 && !lecturefin);
     
                lecture_uart0c[nblettre-1]=0;

    je peux interroger le statu de la ligne avec
    u8JPI_UartReadLineStatus(uint8 u8Uart);

    la description des bits de controle est:

    E_JPI_UART_LS_ERROR Ce bit est positionné si une erreur de parité, erreur de trame indication casser ou a été reçu.
    E_JPI_UART_LS_TEMT Ce bit est positionné si le transmettre registre à décalage estvide
    E_JPI_UART_LS_THRE Ce bit est positionné si le transmettre FIFO est vide
    E_JPI_UART_LS_BI Ce bit est positionné si une indication rupture a été reçus (ligne tenue faible pour un caractère entier)
    E_JPI_UART_LS_FE Ce bit est positionné si une erreur de cadrage a étéreçu
    E_JPI_UART_LS_PE Ce bit est positionné si une erreur de parité a été reçu
    E_JPI_UART_LS_OE Ce bit est positionné si un dépassement a eu lieu de recevoir, à savoir le tampon de réception est pleine, mais un autre personnage arrive
    E_JPI_UART_LS_DR Ce bit est positionné si il ya des données dans la réception FIFO

    pourriez vous m'aider à comprendre les controles que l'on doit réaliser et comment les faires. Ou m'indiquer un post existant.
    merci d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    avant tout, est-tu sur que la vitesse que le bit de parité et que la longueur des datas sont correctement initialiser ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Il semble que tous soit bien initialisé, car le petit morceau de programme fonctionne presque bien.
    En général, si j'envoi une chaine elle arrive bien, mais quelquefois elle n'arrive pas ou il lui manque des morceaux ou certains caractères sont répétés.
    Cela parait normal puisque je ne contrôle pas la réception,le tampon etc...
    (mais je ne comprend pas ce que je doit contrôler ou attendre la réception suivante ou? )
    merci pour votre aide.

Discussions similaires

  1. Driver pour le pilotage d'une liaison Serie PC rapide?
    Par Jayceblaster dans le forum Windows
    Réponses: 1
    Dernier message: 24/02/2007, 17h10
  2. Liaison Serie sous Windows...
    Par finlande dans le forum MFC
    Réponses: 4
    Dernier message: 25/04/2006, 09h29
  3. [SDK] ReadFile et liaison serie.
    Par matth2602 dans le forum MFC
    Réponses: 1
    Dernier message: 25/01/2006, 17h31
  4. [Kylix] Aidez-moi -> LIAISON SERIE 2 le retour
    Par Oyoboy dans le forum EDI
    Réponses: 1
    Dernier message: 28/05/2004, 10h48
  5. [TP]Liaison série avec TP7 dans fenêtre DOS W2000
    Par Alain81 dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 14/06/2003, 00h43

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