00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00019 #ifndef __UART_H__
00020 #define __UART_H__
00021
00022
00023 #define IER_RBR 0x01
00024 #define IER_THRE 0x02
00025 #define IER_RLS 0x04
00026
00027 #define IIR_PEND 0x01
00028 #define IIR_RLS 0x03
00029 #define IIR_RDA 0x02
00030 #define IIR_CTI 0x06
00031 #define IIR_THRE 0x01
00032
00033 #define LSR_RDR 0x01
00034 #define LSR_OE 0x02
00035 #define LSR_PE 0x04
00036 #define LSR_FE 0x08
00037 #define LSR_BI 0x10
00038 #define LSR_THRE 0x20
00039 #define LSR_TEMT 0x40
00040 #define LSR_RXFE 0x80
00041
00043 typedef bool_t (*uart_rx_hook_t)(uint32_t ch);
00044
00045
00046 bool_t uart0_init(uint32_t baudrate, uint8_t data_bits, char parity, uint8_t stop_bits);
00047 uint32_t uart0_send(const uint8_t *p_data, uint32_t data_size, bool_t cr_to_crlf);
00048 bool_t uart0_putc(uint32_t ch);
00049 bool_t uart0_getc(uint32_t *p_ch, uint32_t timeout_in_ms);
00050 void uart0_flush_buffers(void);
00051 void uart0_set_rx_hook(uart_rx_hook_t f);
00052
00053
00054 bool_t uart1_init(uint32_t baudrate, uint8_t data_bits, char parity, uint8_t stop_bits);
00055 uint32_t uart1_send(const uint8_t *p_data, uint32_t data_size, bool_t cr_to_crlf);
00056 bool_t uart1_putc(uint32_t ch, bool_t right_now);
00057 bool_t uart1_getc(uint32_t *p_ch, uint32_t timeout_in_ms);
00058 void uart1_flush_buffers(void);
00059 void uart1_set_rx_hook(uart_rx_hook_t f);
00060
00061
00062 #endif // __UART_H__