Módulo UART Muestra las funciones para poder trabajar con el módulo UART Interno de los PIC.Antes de usar este módulos se debe definir la frecuencia usar con el comando. #define FOSC_HZ 20000000 Se han realizado algunas definiciones como: #include <uart.h> SET_1200_8N1 SET_2400_8N1 SET_4800_8N1 SET_9600_8N1 SET_19200_8N1 SET_38400_8N1 SET_57600_8N1 SET_115200_8N1 Estas definiciones pueden ser usandas en la función uart_open. uart_open Configura el puerto Serie Asincrono void uart_open( BYTE STATUS_SPBRG, BYTE STATUS_SPEED); ejemplo: uart_open(SET_9600_8N1); uart_kbhit Devuelve 1 si hay un byte en el buffer de entrada del puerto Serie Asincrono BYTE uart_kbhit(void); uart_getc Lee un byte en el buffer de entrada del puerto Serie Asíncrono, si no hay ninguno espera a que exista uno, la función es bloqueante char uart_getc(void); uart_putc Escribe un dato en el puerto Serie Asíncrono void uart_putc(char dato); uart_puts Escribe un cadena de datos en el puerto Serie Asíncrono void uart_puts(char *datos); uart_close Cierra el puerto Serie Asíncrono void uart_close(void); Ejemplo de UART para compilar necesitas los siguientes comandos Ejemplo de compilacion : ./compila.sh ej_uart 16f877a ej_uart.c #include <pic/p16f877a.h> #define FOSC_HZ 20000000 #include <uart.h> #include <delayms.h> int main (void) { char c=0; char INTRO[6]="HOLA\n"; char FIN[6]="FIN\n"; delayms(100); uart_open(SET_9600_8N1); uart_set_baudrate(19200); uart_puts(INTRO); while(c!=13) { if(uart_kbhit()==1) { c=uart_getc(); uart_putc(c); } } uart_puts(FIN); uart_close(); return 0; }