53#define UART_INSTANCE_COUNT 2
59#define UART_0_BASE 0x4000C000
60#define UART_1_BASE 0x4000D000
66#define UART_DR 0x00000000
67#define UART_RSR 0x00000004
68#define UART_ECR 0x00000004
69#define UART_FR 0x00000018
70#define UART_ILPR 0x00000020
71#define UART_IBRD 0x00000024
72#define UART_FBRD 0x00000028
73#define UART_LCRH 0x0000002C
74#define UART_CTL 0x00000030
75#define UART_IFLS 0x00000034
76#define UART_IM 0x00000038
77#define UART_RIS 0x0000003C
78#define UART_MIS 0x00000040
79#define UART_ICR 0x00000044
80#define UART_DMACTL 0x00000048
81#define UART_LCTL 0x00000090
82#define UART_LSS 0x00000094
83#define UART_LTIM 0x00000098
84#define UART_NINEBITADDR 0x000000A4
85#define UART_NINEBITAMASK 0x000000A8
86#define UART_PP 0x00000FC0
87#define UART_CC 0x00000FC8
93#define UART_DR_OE 0x00000800
94#define UART_DR_BE 0x00000400
95#define UART_DR_PE 0x00000200
96#define UART_DR_FE 0x00000100
97#define UART_DR_DATA 0x000000FF
103#define UART_RSR_OE 0x00000008
104#define UART_RSR_BE 0x00000004
105#define UART_RSR_PE 0x00000002
106#define UART_RSR_FE 0x00000001
112#define UART_ECR_DATA 0x000000FF
118#define UART_FR_TXFE 0x00000080
119#define UART_FR_RXFF 0x00000040
120#define UART_FR_TXFF 0x00000020
121#define UART_FR_RXFE 0x00000010
122#define UART_FR_BUSY 0x00000008
123#define UART_FR_CTS 0x00000001
129#define UART_ILPR_ILPDVSR 0x000000FF
135#define UART_IBRD_DIVINT 0x0000FFFF
141#define UART_FBRD_DIVFRAC 0x0000003F
147#define UART_LCRH_SPS 0x00000080
148#define UART_LCRH_WLEN 0x00000060
149#define UART_LCRH_FEN 0x00000010
150#define UART_LCRH_STP2 0x00000008
151#define UART_LCRH_EPS 0x00000004
152#define UART_LCRH_PEN 0x00000002
153#define UART_LCRH_BRK 0x00000001
159#define UART_LCRH_WLEN_8 0x00000060
160#define UART_LCRH_WLEN_7 0x00000040
161#define UART_LCRH_WLEN_6 0x00000020
162#define UART_LCRH_WLEN_5 0x00000000
168#define UART_CTL_CTSEN 0x00008000
169#define UART_CTL_RTSEN 0x00004000
170#define UART_CTL_RXE 0x00000200
171#define UART_CTL_TXE 0x00000100
172#define UART_CTL_LBE 0x00000080
173#define UART_CTL_LIN 0x00000040
174#define UART_CTL_HSE 0x00000020
175#define UART_CTL_EOT 0x00000010
176#define UART_CTL_SMART 0x00000008
177#define UART_CTL_SIRLP 0x00000004
178#define UART_CTL_SIREN 0x00000002
179#define UART_CTL_UARTEN 0x00000001
185#define UART_IFLS_RXIFLSEL 0x00000038
186#define UART_IFLS_TXIFLSEL 0x00000007
192#define UART_IFLS_RXIFLSEL_7_8 0x00000020
193#define UART_IFLS_RXIFLSEL_3_4 0x00000018
194#define UART_IFLS_RXIFLSEL_1_2 0x00000010
195#define UART_IFLS_RXIFLSEL_1_4 0x00000008
196#define UART_IFLS_RXIFLSEL_1_8 0x00000000
202#define UART_IFLS_TXIFLSEL_1_8 0x00000004
203#define UART_IFLS_TXIFLSEL_1_4 0x00000003
204#define UART_IFLS_TXIFLSEL_1_2 0x00000002
205#define UART_IFLS_TXIFLSEL_3_4 0x00000001
206#define UART_IFLS_TXIFLSEL_7_8 0x00000000
212#define UART_IM_LME5IM 0x00008000
213#define UART_IM_LME1IM 0x00004000
214#define UART_IM_LMSBIM 0x00002000
215#define UART_IM_NINEBITIM 0x00001000
216#define UART_IM_OEIM 0x00000400
217#define UART_IM_BEIM 0x00000200
218#define UART_IM_PEIM 0x00000100
219#define UART_IM_FEIM 0x00000080
220#define UART_IM_RTIM 0x00000040
221#define UART_IM_TXIM 0x00000020
222#define UART_IM_RXIM 0x00000010
223#define UART_IM_CTSIM 0x00000002
229#define UART_RIS_LME5RIS 0x00008000
230#define UART_RIS_LME1RIS 0x00004000
231#define UART_RIS_LMSBRIS 0x00002000
232#define UART_RIS_NINEBITRIS 0x00001000
233#define UART_RIS_OERIS 0x00000400
234#define UART_RIS_BERIS 0x00000200
235#define UART_RIS_PERIS 0x00000100
236#define UART_RIS_FERIS 0x00000080
237#define UART_RIS_RTRIS 0x00000040
238#define UART_RIS_TXRIS 0x00000020
239#define UART_RIS_RXRIS 0x00000010
240#define UART_RIS_CTSRIS 0x00000002
246#define UART_MIS_LME5MIS 0x00008000
247#define UART_MIS_LME1MIS 0x00004000
248#define UART_MIS_LMSBMIS 0x00002000
249#define UART_MIS_NINEBITMIS 0x00001000
250#define UART_MIS_OEMIS 0x00000400
251#define UART_MIS_BEMIS 0x00000200
252#define UART_MIS_PEMIS 0x00000100
253#define UART_MIS_FEMIS 0x00000080
254#define UART_MIS_RTMIS 0x00000040
255#define UART_MIS_TXMIS 0x00000020
256#define UART_MIS_RXMIS 0x00000010
257#define UART_MIS_CTSMIS 0x00000002
263#define UART_ICR_LME5IC 0x00008000
264#define UART_ICR_LME1IC 0x00004000
265#define UART_ICR_LMSBIC 0x00002000
266#define UART_ICR_NINEBITIC 0x00001000
267#define UART_ICR_OEIC 0x00000400
268#define UART_ICR_BEIC 0x00000200
269#define UART_ICR_PEIC 0x00000100
270#define UART_ICR_FEIC 0x00000080
271#define UART_ICR_RTIC 0x00000040
272#define UART_ICR_TXIC 0x00000020
273#define UART_ICR_RXIC 0x00000010
274#define UART_ICR_CTSIC 0x00000002
280#define UART_DMACTL_DMAERR 0x00000004
281#define UART_DMACTL_TXDMAE 0x00000002
282#define UART_DMACTL_RXDMAE 0x00000001
288#define UART_LCTL_BLEN 0x00000030
289#define UART_LCTL_MASTER 0x00000001
295#define UART_LSS_TSS 0x0000FFFF
301#define UART_LTIM_TIMER 0x0000FFFF
307#define UART_NINEBITADDR_NINEBITEN 0x00008000
308#define UART_NINEBITADDR_ADDR 0x000000FF
314#define UART_NINEBITAMASK_RANGE 0x0000FF00
315#define UART_NINEBITAMASK_MASK 0x000000FF
321#define UART_PP_NB 0x00000002
322#define UART_PP_SC 0x00000001
328#define UART_CC_CS 0x00000007
void uart_set_input(uint8_t uart, int(*input)(unsigned char c))
Assigns a callback to be called when the UART receives a byte.
void uart_write_byte(uint8_t uart, uint8_t b)
Sends a single character down the UART.
void uart_init(void)
Initializa the UART driver.