\section{Module UART}
Montre les fonctions pour pouvoir travailler avec le module UART Interne des PIC. Avant d'utiliser ce module on doit définir la fréquence utilisée avec la commande. 

\verb! #define FOSC_HZ 20000000 !

On a réalisé quelques définitions comme :
\verbatiminput{source/baud.h}

Ces définitions peuvent être utilisées dans la fonction uart\_open. 

\subsection[{uart\_open}]{\label{ID_UARTOPEN}uart\_open}

Configure le port Série Asynchrone

~ ~ ~void uart\_open( BYTE STATUS\_SPBRG, BYTE STATUS\_SPEED);

~ ~ ~ ~ exemple:

~ ~ ~ ~ uart\_open(SET\_9600\_8N1);

\subsection[{uart\_kbhit}]{  \label{ID_UARTKBHIT}uart\_kbhit}

Renvoie 1 si il y a un octet (byte) dans le tampon (buffer) d'entrée du port Série Asynchrone

~ ~BYTE uart\_kbhit(void);

\subsection[{uart\_getc}]{  \label{ID_UARTGETC}uart\_getc}

Lit un octet (byte) dans le tampon (buffer) d'entrée du port Série Asynchrone. S'il n'y a rien attend jusqu'à l'arrivée d'un octet. La fonction est bloquante.

~ ~ ~char uart\_getc(void);

\subsection[{uart\_putc}]{  \label{ID_UARTPUTC}uart\_putc}

Écrit une donnée sur le port Série Asynchrone

~ ~ void uart\_putc(char dato);

\subsection[{uart\_puts}]{  \label{ID_UARTPUTS}uart\_puts}

Écrit une chaîne de données sur le port Série Asynchrone

~void uart\_puts(char *datos);

\subsection[{uart\_close}]{  \label{ID_UARTCLOSE}uart\_close}

Ferme le port Série Asynchrone

~ ~ ~ ~void uart\_close(void);

\subsection[{Exemple de UART}]{  \label{ID_EJEMPLOUART}Exemple de UART}

~ pour compiler vous avez besoin des commandes suivantes : ~

Exemple de compilation : ./compila.sh ej\_uart 16f877a

ej\_uart.c
\verbatiminput{source/ej_uart.c}