30 #ifndef _FSL_LPUART_H_ 31 #define _FSL_LPUART_H_ 33 #include "fsl_common.h" 46 #define FSL_LPUART_DRIVER_VERSION (MAKE_VERSION(2, 0, 0)) 66 typedef enum _lpuart_parity_mode
74 typedef enum _lpuart_stop_bit_count
87 #if defined(FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT) && FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT 99 #if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO 113 (LPUART_STAT_TDRE_MASK),
115 (LPUART_STAT_TC_MASK),
117 (LPUART_STAT_RDRF_MASK),
124 (LPUART_STAT_FE_MASK),
126 #if defined(FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT) && FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT 131 (LPUART_STAT_RXEDGIF_MASK),
133 (LPUART_STAT_RAF_MASK),
134 #
if defined(FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING) && FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING
138 #if defined(FSL_FEATURE_LPUART_HAS_EXTENDED_DATA_REGISTER_FLAGS) && FSL_FEATURE_LPUART_HAS_EXTENDED_DATA_REGISTER_FLAGS 140 (LPUART_DATA_NOISY_MASK >> 10),
142 (LPUART_DATA_PARITYE_MASK >> 10),
144 #if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO 148 (LPUART_FIFO_TXOF_MASK >> 16),
150 (LPUART_FIFO_RXUF_MASK >> 16),
155 typedef struct _lpuart_config
159 #if defined(FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT) && FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT 162 #if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO 171 typedef struct _lpuart_transfer
209 #if defined(__cplusplus) 279 void LPUART_SetBaudRate(LPUART_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz);
386 #if defined(FSL_FEATURE_LPUART_HAS_DMA_ENABLE) && FSL_FEATURE_LPUART_HAS_DMA_ENABLE 397 return (uint32_t) & (base->DATA);
412 base->BAUD |= LPUART_BAUD_TDMAE_MASK;
413 base->CTRL |= LPUART_CTRL_TIE_MASK;
417 base->BAUD &= ~LPUART_BAUD_TDMAE_MASK;
418 base->CTRL &= ~LPUART_CTRL_TIE_MASK;
434 base->BAUD |= LPUART_BAUD_RDMAE_MASK;
435 base->CTRL |= LPUART_CTRL_RIE_MASK;
439 base->BAUD &= ~LPUART_BAUD_RDMAE_MASK;
440 base->CTRL &= ~LPUART_CTRL_RIE_MASK;
464 base->CTRL |= LPUART_CTRL_TE_MASK;
468 base->CTRL &= ~LPUART_CTRL_TE_MASK;
484 base->CTRL |= LPUART_CTRL_RE_MASK;
488 base->CTRL &= ~LPUART_CTRL_RE_MASK;
574 lpuart_handle_t *handle,
615 void LPUART_StartRingBuffer(LPUART_Type *base, lpuart_handle_t *handle, uint8_t *ringBuffer,
size_t ringBufferSize);
679 lpuart_handle_t *handle,
681 size_t *receivedBytes);
730 #if defined(__cplusplus) Definition: fsl_lpuart.h:76
void LPUART_StartRingBuffer(LPUART_Type *base, lpuart_handle_t *handle, uint8_t *ringBuffer, size_t ringBufferSize)
Sets up the RX ring buffer.
Definition: fsl_lpuart.c:568
Definition: fsl_lpuart.h:141
uint8_t * data
Definition: fsl_lpuart.h:173
Definition: fsl_lpuart.h:97
Definition: fsl_lpuart.h:90
Definition: fsl_lpuart.h:77
Definition: fsl_lpuart.h:112
volatile size_t rxDataSize
Definition: fsl_lpuart.h:190
status_t LPUART_GetReceiveCount(LPUART_Type *base, lpuart_handle_t *handle, uint32_t *count)
Get the number of bytes that have been received.
Definition: fsl_lpuart.c:766
volatile uint8_t rxState
Definition: fsl_lpuart.h:202
status_t LPUART_ClearStatusFlags(LPUART_Type *base, uint32_t mask)
Clears status flags with a provided mask.
Definition: fsl_lpuart.c:457
Definition: fsl_lpuart.h:52
uint8_t *volatile rxData
Definition: fsl_lpuart.h:189
void LPUART_StopRingBuffer(LPUART_Type *base, lpuart_handle_t *handle)
Abort the background transfer and uninstall the ring buffer.
Definition: fsl_lpuart.c:585
void LPUART_EnableInterrupts(LPUART_Type *base, uint32_t mask)
Enables LPUART interrupts according to a provided mask.
Definition: fsl_lpuart.c:413
uint32_t LPUART_GetStatusFlags(LPUART_Type *base)
Gets LPUART status flags.
Definition: fsl_lpuart.c:445
static void LPUART_EnableRxDMA(LPUART_Type *base, bool enable)
Enables or disables the LPUART receiver DMA.
Definition: fsl_lpuart.h:430
status_t LPUART_GetSendCount(LPUART_Type *base, lpuart_handle_t *handle, uint32_t *count)
Get the number of bytes that have been written to LPUART TX register.
Definition: fsl_lpuart.c:633
void LPUART_HandleErrorIRQ(LPUART_Type *base, lpuart_handle_t *handle)
LPUART Error IRQ handle function.
Definition: fsl_lpuart.c:935
void LPUART_CreateHandle(LPUART_Type *base, lpuart_handle_t *handle, lpuart_transfer_callback_t callback, void *userData)
Initializes the LPUART handle.
Definition: fsl_lpuart.c:526
Definition: fsl_common.h:78
uint8_t rxFifoWatermark
Definition: fsl_lpuart.h:164
uint32_t LPUART_GetEnabledInterrupts(LPUART_Type *base)
Gets enabled LPUART interrupts.
Definition: fsl_lpuart.c:433
Definition: fsl_lpuart.h:95
Definition: fsl_lpuart.h:130
Definition: fsl_lpuart.h:92
lpuart_parity_mode_t
LPUART parity mode.
Definition: fsl_lpuart.h:66
Definition: fsl_lpuart.h:91
Definition: fsl_lpuart.h:51
void * userData
Definition: fsl_lpuart.h:199
Definition: fsl_lpuart.h:53
Definition: fsl_lpuart.h:121
Definition: fsl_lpuart.h:55
Definition: fsl_lpuart.h:57
Definition: fsl_lpuart.h:136
Definition: fsl_lpuart.h:60
status_t LPUART_ReceiveNonBlocking(LPUART_Type *base, lpuart_handle_t *handle, lpuart_transfer_t *xfer, size_t *receivedBytes)
Receives a buffer of data using the interrupt method.
Definition: fsl_lpuart.c:650
Definition: fsl_lpuart.h:146
Definition: fsl_lpuart.h:68
static void LPUART_EnableRx(LPUART_Type *base, bool enable)
Enables or disables the LPUART receiver.
Definition: fsl_lpuart.h:480
Definition: fsl_lpuart.h:88
Definition: fsl_lpuart.h:100
Definition: fsl_lpuart.h:118
Definition: fsl_lpuart.h:62
Definition: fsl_lpuart.h:119
lpuart_transfer_callback_t callback
Definition: fsl_lpuart.h:198
uint32_t baudRate_Bps
Definition: fsl_lpuart.h:157
void LPUART_DisableInterrupts(LPUART_Type *base, uint32_t mask)
Disables LPUART interrupts according to a provided mask.
Definition: fsl_lpuart.c:423
LPUART transfer structure.
Definition: fsl_lpuart.h:171
LPUART configure structure.
Definition: fsl_lpuart.h:155
Definition: fsl_lpuart.h:149
_lpuart_interrupt_enable
LPUART interrupt configuration structure, default settings all disabled.
Definition: fsl_lpuart.h:85
size_t txDataSizeAll
Definition: fsl_lpuart.h:188
void LPUART_GetDefaultConfig(lpuart_config_t *config)
Gets the default configuration structure.
Definition: fsl_lpuart.c:321
Definition: fsl_lpuart.h:127
lpuart_stop_bit_count_t stopBitCount
Definition: fsl_lpuart.h:160
Definition: fsl_lpuart.h:98
lpuart_parity_mode_t parityMode
Definition: fsl_lpuart.h:158
void LPUART_Deinit(LPUART_Type *base)
Deinitializes a LPUART instance.
Definition: fsl_lpuart.c:301
void LPUART_ReadBlocking(LPUART_Type *base, uint8_t *data, size_t length)
Reads the RX data register using a blocking method.
Definition: fsl_lpuart.c:511
Definition: fsl_lpuart.h:147
volatile uint8_t txState
Definition: fsl_lpuart.h:201
Definition: fsl_lpuart.h:56
void LPUART_HandleIRQ(LPUART_Type *base, lpuart_handle_t *handle)
LPUART IRQ handle function.
Definition: fsl_lpuart.c:783
Definition: fsl_lpuart.h:94
Definition: fsl_lpuart.h:93
void(* lpuart_transfer_callback_t)(LPUART_Type *base, lpuart_handle_t *handle, status_t status, void *userData)
LPUART transfer callback function.
Definition: fsl_lpuart.h:181
volatile size_t txDataSize
Definition: fsl_lpuart.h:187
Definition: fsl_lpuart.h:116
Definition: fsl_lpuart.h:145
void LPUART_AbortReceive(LPUART_Type *base, lpuart_handle_t *handle)
Aborts the interrupt-driven data receiving.
Definition: fsl_lpuart.c:753
static uint32_t LPUART_GetDataRegisterAddress(LPUART_Type *base)
Gets the LPUART data register address.
Definition: fsl_lpuart.h:395
lpuart_stop_bit_count_t
LPUART stop bit count.
Definition: fsl_lpuart.h:74
Definition: fsl_lpuart.h:114
Definition: fsl_lpuart.h:96
void LPUART_SetBaudRate(LPUART_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz)
Sets the LPUART instance baudrate.
Definition: fsl_lpuart.c:337
Definition: fsl_lpuart.h:69
size_t rxDataSizeAll
Definition: fsl_lpuart.h:191
_lpuart_flags
LPUART status flags.
Definition: fsl_lpuart.h:110
static void LPUART_WriteByte(LPUART_Type *base, uint8_t data)
Writes to the transmitter register.
Definition: fsl_lpuart.h:517
Definition: fsl_lpuart.h:59
static uint8_t LPUART_ReadByte(LPUART_Type *base)
Reads the RX register.
Definition: fsl_lpuart.h:543
bool enableTx
Definition: fsl_lpuart.h:166
static void LPUART_EnableTxDMA(LPUART_Type *base, bool enable)
Enables or disables the LPUART transmitter DMA request.
Definition: fsl_lpuart.h:408
Definition: fsl_lpuart.h:132
uint8_t txFifoWatermark
Definition: fsl_lpuart.h:163
LPUART handle structure.
Definition: fsl_lpuart.h:184
Definition: fsl_lpuart.h:123
uint8_t *volatile txData
Definition: fsl_lpuart.h:186
void LPUART_WriteBlocking(LPUART_Type *base, const uint8_t *data, size_t length)
Writes to transmitter register using a blocking method.
Definition: fsl_lpuart.c:498
volatile uint16_t rxRingBufferTail
Definition: fsl_lpuart.h:196
static void LPUART_EnableTx(LPUART_Type *base, bool enable)
Enables or disables the LPUART transmitter.
Definition: fsl_lpuart.h:460
Definition: fsl_lpuart.h:54
uint8_t * rxRingBuffer
Definition: fsl_lpuart.h:193
Definition: fsl_lpuart.h:70
Definition: fsl_lpuart.h:135
size_t dataSize
Definition: fsl_lpuart.h:174
Definition: fsl_lpuart.h:101
volatile uint16_t rxRingBufferHead
Definition: fsl_lpuart.h:195
Definition: fsl_lpuart.h:125
Definition: fsl_lpuart.h:139
bool enableRx
Definition: fsl_lpuart.h:167
status_t LPUART_SendNonBlocking(LPUART_Type *base, lpuart_handle_t *handle, lpuart_transfer_t *xfer)
Transmits a buffer of data using the interrupt method.
Definition: fsl_lpuart.c:600
int32_t status_t
Type used for all status and error return values.
Definition: fsl_common.h:121
void LPUART_Init(LPUART_Type *base, const lpuart_config_t *config, uint32_t srcClock_Hz)
Initializes an LPUART instance with the user configuration structure and the peripheral clock...
Definition: fsl_lpuart.c:185
size_t rxRingBufferSize
Definition: fsl_lpuart.h:194
void LPUART_AbortSend(LPUART_Type *base, lpuart_handle_t *handle)
Aborts the interrupt-driven data transmit.
Definition: fsl_lpuart.c:625