58 #ifndef INCLUDE_PIC32_UART_H_
59 #define INCLUDE_PIC32_UART_H_
74 #define UART_NO_ERROR 0
75 #define UART_ERR_NO_DATA 1
76 #define UART_ERR_OVERFLOW 2
78 #define UART_PORT_DEF(XX) \
79 int8_t pic32_uart##XX##_init(uint32_t baudrate, uint16_t byte_format); \
80 int8_t pic32_uart##XX##_write(uint8_t data);
82 #define UART_INTERRUPT(XX, YY, CALLBACK) \
83 ISR(_UART_##XX##_VECTOR) \
85 volatile uint8_t byte; \
86 if(IFS##YY##bits.U##XX##RXIF) { \
87 if((U##XX##STAbits.PERR == 0) && (U##XX##STAbits.FERR == 0)) { \
88 CALLBACK(U##XX##RXREG); \
90 byte = U##XX##RXREG; \
92 IFS##YY##CLR = _IFS##YY##_U##XX##RXIF_MASK; \
94 if(U##XX##STAbits.OERR) { \
95 U##XX##STACLR = _U##XX##STA_OERR_MASK; \
99 #ifdef __USE_UART_PORT1A__
103 #ifdef __USE_UART_PORT1B__
107 #ifdef __USE_UART_PORT2A__
111 #ifdef __USE_UART_PORT2B__
115 #ifdef __USE_UART_PORT3A__
119 #ifdef __USE_UART_PORT3B__
INTERRUPT interface for PIC32MX (pic32mx795f512l)