| LPCOpen Platform v1.03 LPCOpen Platform for NXP LPC Microcontrollers

- Main Page
- Modules
- Data Structures
- Files
- Related Pages

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
uartd_8xx.h
Go to the documentation of this file.
1 /*
2 * @brief LPC8xx UART ROM API declarations and functions
3 *
4 * @note
5 * Copyright(C) NXP Semiconductors, 2012
6 * All rights reserved.
7 *
8 * @par
9 * Software that is described herein is for illustrative purposes only
10 * which provides customers with programming information regarding the
11 * LPC products. This software is supplied "AS IS" without any warranties of
12 * any kind, and NXP Semiconductors and its licensor disclaim any and
13 * all warranties, express or implied, including all implied warranties of
14 * merchantability, fitness for a particular purpose and non-infringement of
15 * intellectual property rights. NXP Semiconductors assumes no responsibility
16 * or liability for the use of the software, conveys no license or rights under any
17 * patent, copyright, mask work right, or any other intellectual property rights in
18 * or to any products. NXP Semiconductors reserves the right to make changes
19 * in the software without notification. NXP Semiconductors also makes no
20 * representation or warranty that such application will be suitable for the
21 * specified use without further testing or modification.
22 *
23 * @par
24 * Permission to use, copy, modify, and distribute this software and its
25 * documentation is hereby granted, under NXP Semiconductors' and its
26 * licensor's relevant copyrights in the software, without fee, provided that it
27 * is used in conjunction with NXP Semiconductors microcontrollers. This
28 * copyright, permission, and disclaimer notice must appear in all copies of
29 * this code.
30 */
31
32 #ifndef __UARTD_8XX_H_
33 #define __UARTD_8XX_H_
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
47 #define ERR_NO_ERROR (0x00000000UL)
48 #define ERR_UART_RXD_BUSY (0x00080001UL)
49 #define ERR_UART_TXD_BUSY (0x00080002UL)
50 #define ERR_UART_OVERRUN_FRAME_PARITY_NOISE (0x00080003UL)
51 #define ERR_UART_UNDERRUN (0x00080004UL)
52 #define ERR_UART_PARAM (0x00080005UL)
58 #define OVERRUN_ERR_EN (1 << 0)
59 #define UNDERRUN_ERR_EN (1 << 1)
60 #define FRAME_ERR_EN (1 << 2)
61 #define PARITY_ERR_EN (1 << 3)
62 #define RXNOISE_ERR_EN (1 << 4)
68 #define ALL_ERR_EN (OVERRUN_ERR_EN | UNDERRUN_ERR_EN | FRAME_ERR_EN | PARITY_ERR_EN | \
69 RXNOISE_ERR_EN)
70
71 #define NO_ERR_EN (0)
72
76 #define UART_ROM_MEM_SIZE (0x20UL)
77
84 #define TX_MODE_BUF_EMPTY (0x00)
85 #define RX_MODE_BUF_FULL (0x00)
86
88 #define TX_MODE_SZERO_SEND_CRLF (0x01)
89 #define RX_MODE_CRLF_RECVD (0x01)
90
92 #define TX_MODE_SZERO_SEND_LF (0x02)
93 #define RX_MODE_LF_RECVD (0x02)
94
96 #define TX_MODE_SZERO (0x03)
97
101 #define DRIVER_MODE_POLLING (0x00)
102 #define DRIVER_MODE_INTERRUPT (0x01)
103 #define DRIVER_MODE_DMA (0x02)
108 typedef void UART_HANDLE_T;
109 typedef void (*UART_CALLBK_T)(uint32_t err_code, uint32_t n);
110 typedef void (*UART_DMA_REQ_T)(uint32_t src_adr, uint32_t dst_adr, uint32_t size);
111
115 typedef struct {
116 uint32_t sys_clk_in_hz;
117 uint32_t baudrate_in_hz;
118 uint8_t config;
122 uint8_t sync_mod;
130 uint16_t error_en;
136 } UART_CONFIG_T;
137
141 typedef struct {
142 uint8_t *buffer;
143 uint32_t size;
144 uint16_t transfer_mode;
153 uint16_t driver_mode;
157 UART_CALLBK_T callback_func_pt;
158 UART_DMA_REQ_T dma_req_func_pt;
159 } UART_PARAM_T;
160
164 typedef struct UARTD_API {
166 uint32_t (*uart_get_mem_size)(void);
167 UART_HANDLE_T * (*uart_setup)(uint32_t base_addr, uint8_t * ram);
168 uint32_t (*uart_init)(UART_HANDLE_T *handle, UART_CONFIG_T *set);
171 uint8_t (*uart_get_char)(UART_HANDLE_T *handle);
172 void (*uart_put_char)(UART_HANDLE_T *handle, uint8_t data);
173 uint32_t (*uart_get_line)(UART_HANDLE_T *handle, UART_PARAM_T *param);
174 uint32_t (*uart_put_line)(UART_HANDLE_T *handle, UART_PARAM_T *param);
177 void (*uart_isr)(UART_HANDLE_T *handle);
178 } UARTD_API_T;
179
184 #ifdef __cplusplus
185 }
186 #endif
187
188 #endif /* __UARTD_8XX_H_ */