S32 SDK
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 
40 typedef enum
41 {
49 
53 typedef enum
54 {
58 
62 typedef enum
63 {
68 
72 typedef enum
73 {
77 
78 typedef struct
79 {
80  uint32_t baudRate;
85  uint8_t rxDMAChannel;
86  uint8_t txDMAChannel;
91  void *extension;
93 
94 #if (defined (UART_OVER_FLEXIO))
95 
98 typedef struct
99 {
100  uint8_t dataPinTx;
101  uint8_t dataPinRx;
102 } extension_flexio_for_uart_t;
103 #endif
104 
105 /*******************************************************************************
106  * API
107  ******************************************************************************/
108 
120 
130 
145 status_t UART_SetBaudRate(uart_instance_t instance, uint32_t desiredBaudRate);
146 
156 status_t UART_GetBaudRate(uart_instance_t instance, uint32_t * configuredBaudRate);
157 
171  uart_instance_t instance,
172  const uint8_t * txBuff,
173  uint32_t txSize,
174  uint32_t timeout);
175 
188 status_t UART_SendData(uart_instance_t instance, const uint8_t * txBuff, uint32_t txSize);
189 
197 
212 status_t UART_GetTransmitStatus(uart_instance_t instance, uint32_t * bytesRemaining);
213 
227  uart_instance_t instance,
228  uint8_t * rxBuff,
229  uint32_t rxSize,
230  uint32_t timeout);
231 
244 status_t UART_ReceiveData(uart_instance_t instance, uint8_t * rxBuff, uint32_t rxSize);
245 
254 
269 status_t UART_GetReceiveStatus(uart_instance_t instance, uint32_t * bytesRemaining);
270 
271 #if defined(__cplusplus)
272 extern "C" {
273 #endif
274 
275 #if defined(__cplusplus)
276 }
277 #endif
278 
281 #endif /* UART_PAL_H */
282 
283 /*******************************************************************************
284  * EOF
285  ******************************************************************************/
status_t UART_GetReceiveStatus(uart_instance_t instance, uint32_t *bytesRemaining)
Get the status of the current non-blocking UART reception.
Definition: uart_pal.c:793
status_t UART_SetBaudRate(uart_instance_t instance, uint32_t desiredBaudRate)
Configures the UART baud rate.
Definition: uart_pal.c:450
uart_bit_count_per_char_t
Defines the number of bits in a character.
Definition: uart_pal.h:40
status_t UART_ReceiveDataBlocking(uart_instance_t instance, uint8_t *rxBuff, uint32_t rxSize, uint32_t timeout)
Perform a blocking UART reception.
Definition: uart_pal.c:679
status_t UART_Init(uart_instance_t instance, uart_user_config_t *config)
Initializes the UART module.
Definition: uart_pal.c:144
uint8_t txDMAChannel
Definition: uart_pal.h:86
status_t UART_SendData(uart_instance_t instance, const uint8_t *txBuff, uint32_t txSize)
Perform a non-blocking UART transmission.
Definition: uart_pal.c:570
uint32_t baudRate
Definition: uart_pal.h:80
status_t UART_Deinit(uart_instance_t instance)
De-initializes the UART module.
Definition: uart_pal.c:386
uart_bit_count_per_char_t bitCount
Definition: uart_pal.h:81
status_t UART_GetBaudRate(uart_instance_t instance, uint32_t *configuredBaudRate)
Returns the UART baud rate.
Definition: uart_pal.c:492
status_t UART_AbortSendingData(uart_instance_t instance)
Terminates a non-blocking transmission early.
Definition: uart_pal.c:608
status_t UART_AbortReceivingData(uart_instance_t instance)
Terminates a non-blocking receive early.
Definition: uart_pal.c:758
void * extension
Definition: uart_pal.h:91
status_t UART_ReceiveData(uart_instance_t instance, uint8_t *rxBuff, uint32_t rxSize)
Perform a non-blocking UART reception.
Definition: uart_pal.c:721
uart_parity_mode_t parityMode
Definition: uart_pal.h:82
uart_instance_t
void * rxCallbackParam
Definition: uart_pal.h:88
status_t UART_GetTransmitStatus(uart_instance_t instance, uint32_t *bytesRemaining)
Get the status of the current non-blocking UART transmission.
Definition: uart_pal.c:643
uart_transfer_type_t
Defines the transfer type.
Definition: uart_pal.h:53
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
Definition: status.h:44
uart_callback_t txCallback
Definition: uart_pal.h:89
uint8_t rxDMAChannel
Definition: uart_pal.h:85
void * txCallbackParam
Definition: uart_pal.h:90
uart_stop_bit_count_t
Defines the number of stop bits.
Definition: uart_pal.h:72
uart_parity_mode_t
Defines the parity mode.
Definition: uart_pal.h:62
void(* uart_callback_t)(void *driverState, uart_event_t event, void *userData)
Definition: callbacks.h:58
uart_callback_t rxCallback
Definition: uart_pal.h:87
uart_transfer_type_t transferType
Definition: uart_pal.h:84
status_t UART_SendDataBlocking(uart_instance_t instance, const uint8_t *txBuff, uint32_t txSize, uint32_t timeout)
Perform a blocking UART transmission.
Definition: uart_pal.c:528
uart_stop_bit_count_t stopBitCount
Definition: uart_pal.h:83