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
Partager