uart_pal.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017 NXP
3  * All rights reserved.
4  *
5  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
6  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
7  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
8  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
9  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
10  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
11  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
13  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
14  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
15  * THE POSSIBILITY OF SUCH DAMAGE.
16  */
17 
18 #ifndef UART_PAL_H
19 #define UART_PAL_H
20 
21 #include "uart_pal_cfg.h"
22 #include "uart_pal_mapping.h"
23 #include "status.h"
24 #include "callbacks.h"
25 
33 /*******************************************************************************
34  * Definitions
35  ******************************************************************************/
36 
42 typedef enum
43 {
51 
57 typedef enum
58 {
62 
68 typedef enum
69 {
74 
80 typedef enum
81 {
85 
91 typedef struct
92 {
93  uint32_t baudRate;
98  uint8_t rxDMAChannel;
99  uint8_t txDMAChannel;
104  void *extension;
106 
107 #if (defined (UART_OVER_FLEXIO))
108 
113 typedef struct
114 {
115  uint8_t dataPinTx;
116  uint8_t dataPinRx;
117 } extension_flexio_for_uart_t;
118 #endif
119 
120 /*******************************************************************************
121  * API
122  ******************************************************************************/
123 
134 status_t UART_Init(const uart_instance_t * const instance, const uart_user_config_t *config);
135 
144 status_t UART_Deinit(const uart_instance_t * const instance);
145 
160 status_t UART_SetBaudRate(const uart_instance_t * const instance, uint32_t desiredBaudRate);
161 
171 status_t UART_GetBaudRate(const uart_instance_t * const instance, uint32_t * configuredBaudRate);
172 
186  const uart_instance_t * const instance,
187  const uint8_t * txBuff,
188  uint32_t txSize,
189  uint32_t timeout);
190 
203 status_t UART_SendData(const uart_instance_t * const instance, const uint8_t * txBuff, uint32_t txSize);
204 
211 status_t UART_AbortSendingData(const uart_instance_t * const instance);
212 
231 status_t UART_GetTransmitStatus(const uart_instance_t * const instance, uint32_t * bytesRemaining);
232 
246  const uart_instance_t * const instance,
247  uint8_t * rxBuff,
248  uint32_t rxSize,
249  uint32_t timeout);
250 
263 status_t UART_ReceiveData(const uart_instance_t * const instance, uint8_t * rxBuff, uint32_t rxSize);
264 
272 status_t UART_AbortReceivingData(const uart_instance_t * const instance);
273 
292 status_t UART_GetReceiveStatus(const uart_instance_t * const instance, uint32_t * bytesRemaining);
293 
307 status_t UART_SetRxBuffer(const uart_instance_t * const instance, uint8_t * rxBuff, uint32_t rxSize);
308 
322 status_t UART_SetTxBuffer(const uart_instance_t * const instance, const uint8_t * txBuff, uint32_t txSize);
323 
324 #if defined(__cplusplus)
325 extern "C" {
326 #endif
327 
328 #if defined(__cplusplus)
329 }
330 #endif
331 
334 #endif /* UART_PAL_H */
335 
336 /*******************************************************************************
337  * EOF
338  ******************************************************************************/
status_t UART_Init(const uart_instance_t *const instance, const uart_user_config_t *config)
Initializes the UART module.
Definition: uart_pal.c:208
uart_bit_count_per_char_t
Defines the number of bits in a character.
Definition: uart_pal.h:42
uint8_t txDMAChannel
Definition: uart_pal.h:99
status_t UART_SendData(const uart_instance_t *const instance, const uint8_t *txBuff, uint32_t txSize)
Perform a non-blocking UART transmission.
Definition: uart_pal.c:691
uint32_t baudRate
Definition: uart_pal.h:93
uart_bit_count_per_char_t bitCount
Definition: uart_pal.h:94
status_t UART_GetReceiveStatus(const uart_instance_t *const instance, uint32_t *bytesRemaining)
Get the status of the current non-blocking UART reception.
Definition: uart_pal.c:968
status_t UART_GetBaudRate(const uart_instance_t *const instance, uint32_t *configuredBaudRate)
Returns the UART baud rate.
Definition: uart_pal.c:593
Structure storing PAL instance information.
status_t UART_SetTxBuffer(const uart_instance_t *const instance, const uint8_t *txBuff, uint32_t txSize)
Provide a buffer for transmitting data.
Definition: uart_pal.c:1057
status_t UART_AbortSendingData(const uart_instance_t *const instance)
Terminates a non-blocking transmission early.
Definition: uart_pal.c:738
status_t UART_ReceiveDataBlocking(const uart_instance_t *const instance, uint8_t *rxBuff, uint32_t rxSize, uint32_t timeout)
Perform a blocking UART reception.
Definition: uart_pal.c:827
uart_parity_mode_t parityMode
Definition: uart_pal.h:95
void * rxCallbackParam
Definition: uart_pal.h:101
uart_transfer_type_t
Defines the transfer type.
Definition: uart_pal.h:57
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
Definition: status.h:44
status_t UART_AbortReceivingData(const uart_instance_t *const instance)
Terminates a non-blocking receive early.
Definition: uart_pal.c:924
uart_callback_t txCallback
Definition: uart_pal.h:102
status_t UART_ReceiveData(const uart_instance_t *const instance, uint8_t *rxBuff, uint32_t rxSize)
Perform a non-blocking UART reception.
Definition: uart_pal.c:878
uint8_t rxDMAChannel
Definition: uart_pal.h:98
void * txCallbackParam
Definition: uart_pal.h:103
uart_stop_bit_count_t
Defines the number of stop bits.
Definition: uart_pal.h:80
status_t UART_SetRxBuffer(const uart_instance_t *const instance, uint8_t *rxBuff, uint32_t rxSize)
Provide a buffer for receiving data.
Definition: uart_pal.c:1013
uart_parity_mode_t
Defines the parity mode.
Definition: uart_pal.h:68
Defines the UART configuration structure.
Definition: uart_pal.h:91
status_t UART_GetTransmitStatus(const uart_instance_t *const instance, uint32_t *bytesRemaining)
Get the status of the current non-blocking UART transmission.
Definition: uart_pal.c:782
void(* uart_callback_t)(void *driverState, uart_event_t event, void *userData)
Callback for all peripherals which support UART features.
Definition: callbacks.h:103
status_t UART_SetBaudRate(const uart_instance_t *const instance, uint32_t desiredBaudRate)
Configures the UART baud rate.
Definition: uart_pal.c:540
status_t UART_Deinit(const uart_instance_t *const instance)
De-initializes the UART module.
Definition: uart_pal.c:463
uart_callback_t rxCallback
Definition: uart_pal.h:100
status_t UART_SendDataBlocking(const uart_instance_t *const instance, const uint8_t *txBuff, uint32_t txSize, uint32_t timeout)
Perform a blocking UART transmission.
Definition: uart_pal.c:638
uart_transfer_type_t transferType
Definition: uart_pal.h:97
uart_stop_bit_count_t stopBitCount
Definition: uart_pal.h:96