LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
CHIP: LPC18xx/43xx UART Driver

Functions

STATIC INLINE void Chip_UART_ConfigData (LPC_USART_Type *UARTx, UART_DATABIT_Type Databits, UART_PARITY_Type Parity, UART_STOPBIT_Type Stopbits)
 Configure data width, parity mode and stop bits.
 
STATIC INLINE uint32_t Chip_UART_Send (LPC_USART_Type *UARTx, uint8_t *txbuf, uint32_t buflen, TRANSFER_BLOCK_Type flag)
 Send a block of data via UART peripheral.
 
STATIC INLINE uint32_t Chip_UART_Receive (LPC_USART_Type *UARTx, uint8_t *rxbuf, uint32_t buflen, TRANSFER_BLOCK_Type flag)
 Receive a block of data via UART peripheral.
 
STATIC INLINE void Chip_UART_FIFOConfig (LPC_USART_Type *UARTx, UART_FIFO_CFG_Type *FIFOCfg)
 Configure FIFO function on selected UART peripheral.
 
STATIC INLINE void Chip_UART_FIFOConfigStructInit (UART_FIFO_CFG_Type *UART_FIFOInitStruct)
 Fills each UART_FIFOInitStruct member with its default value:
 
STATIC INLINE void Chip_UART_IntConfig (LPC_USART_Type *UARTx, UART_INT_Type UARTIntCfg, FunctionalState NewState)
 Enable or disable specified UART interrupt.
 
STATIC INLINE uint32_t Chip_UART_IntGetStatus (LPC_USART_Type *UARTx)
 Get Source Interrupt.
 
STATIC INLINE uint8_t Chip_UART_GetLineStatus (LPC_USART_Type *UARTx)
 Get current value of Line Status register in UART peripheral.
 
STATIC INLINE FlagStatus Chip_UART_CheckBusy (LPC_USART_Type *UARTx)
 Check whether if UART is busy or not.
 
STATIC INLINE void Chip_UART_ForceBreak (LPC_USART_Type *UARTx)
 Force BREAK character on UART line, output pin UARTx TXD is forced to logic 0.
 
STATIC INLINE Status Chip_UART_SendByte (LPC_USART_Type *UARTx, uint8_t Data)
 Transmit a single data through UART peripheral.
 
STATIC INLINE Status Chip_UART_ReceiveByte (LPC_USART_Type *UARTx, uint8_t *Data)
 Receive a single data from UART peripheral.
 
void Chip_UART_Init (LPC_USART_Type *UARTx)
 Initializes the UARTx peripheral.
 
void Chip_UART_DeInit (LPC_USART_Type *UARTx)
 De-initializes the UARTx peripheral.
 
Status Chip_UART_SetBaud (LPC_USART_Type *UARTx, uint32_t baudrate)
 Determines best dividers to get a target baud rate.
 
void Chip_UART_TxCmd (LPC_USART_Type *UARTx, FunctionalState NewState)
 Enable/Disable transmission on UART TxD pin.
 
UART_Int_Status Chip_UART_GetIntStatus (LPC_USART_Type *UARTx)
 Get Interrupt Stream Status.
 
void Chip_UART_Interrupt_Handler (LPC_USART_Type *UARTx)
 Uart interrupt service routine (chip layer)
 
uint32_t Chip_UART_Interrupt_Transmit (LPC_USART_Type *UARTx, uint8_t *txbuf, uint8_t buflen)
 UART transmit function for interrupt mode (using ring buffers)
 
uint32_t Chip_UART_Interrupt_Receive (LPC_USART_Type *UARTx, uint8_t *rxbuf, uint8_t buflen)
 UART read function for interrupt mode (using ring buffers)
 
void Chip_UART_InitRingBuffer (void)
 Reset Tx and Rx ring buffer (head and tail)
 

Detailed Description

Function Documentation

STATIC INLINE FlagStatus Chip_UART_CheckBusy ( LPC_USART_Type UARTx)

Check whether if UART is busy or not.

Parameters
UARTx: Pointer to selected UARTx peripheral
Returns
RESET if UART is not busy, otherwise return SET.

Definition at line 174 of file uart_18xx_43xx.h.

STATIC INLINE void Chip_UART_ConfigData ( LPC_USART_Type UARTx,
UART_DATABIT_Type  Databits,
UART_PARITY_Type  Parity,
UART_STOPBIT_Type  Stopbits 
)

Configure data width, parity mode and stop bits.

Parameters
UARTx: Pointer to selected UARTx peripheral
Databits: UART Data width, should be: UART_DATABIT_5: UART 5 bit data mode UART_DATABIT_6: UART 6 bit data mode UART_DATABIT_7: UART 7 bit data mode UART_DATABIT_8: UART 8 bit data mode
Parity: UART Parity mode, should be: UART_PARITY_NONE: No parity UART_PARITY_ODD: Odd parity UART_PARITY_EVEN: Even parity UART_PARITY_SP_1: Forced "1" stick parity UART_PARITY_SP_0: Forced "0" stick parity
Stopbits: Number of stop bits, should be: UART_STOPBIT_1: One Stop Bit Select UART_STOPBIT_2: Two Stop Bits Select
Returns
Nothing

Definition at line 65 of file uart_18xx_43xx.h.

void Chip_UART_DeInit ( LPC_USART_Type UARTx)

De-initializes the UARTx peripheral.

Parameters
UARTx: Pointer to selected UARTx peripheral
Returns
Nothing

Definition at line 105 of file uart_18xx_43xx.c.

STATIC INLINE void Chip_UART_FIFOConfig ( LPC_USART_Type UARTx,
UART_FIFO_CFG_Type FIFOCfg 
)

Configure FIFO function on selected UART peripheral.

Parameters
UARTx: Pointer to selected UARTx peripheral
FIFOCfg: Pointer to a UART_FIFO_CFG_Type Structure that contains specified information about FIFO configuration
Returns
Nothing

Definition at line 109 of file uart_18xx_43xx.h.

STATIC INLINE void Chip_UART_FIFOConfigStructInit ( UART_FIFO_CFG_Type UART_FIFOInitStruct)

Fills each UART_FIFOInitStruct member with its default value:

  • FIFO_DMAMode = DISABLE
  • FIFO_Level = UART_FIFO_TRGLEV0
  • FIFO_ResetRxBuf = ENABLE
  • FIFO_ResetTxBuf = ENABLE
  • FIFO_State = ENABLE
    Parameters
    UART_FIFOInitStruct: Pointer to a UART_FIFO_CFG_Type structure which will be initialized.
    Returns
    Nothing

Definition at line 124 of file uart_18xx_43xx.h.

STATIC INLINE void Chip_UART_ForceBreak ( LPC_USART_Type UARTx)

Force BREAK character on UART line, output pin UARTx TXD is forced to logic 0.

Parameters
UARTx: Pointer to selected UARTx peripheral
Returns
Nothing

Definition at line 184 of file uart_18xx_43xx.h.

UART_Int_Status Chip_UART_GetIntStatus ( LPC_USART_Type UARTx)

Get Interrupt Stream Status.

Parameters
UARTx: Pointer to selected UARTx peripheral
Returns
Return the interrupt status, should be:
  • UART_ERROR
  • READY_TO_RECEIVE
  • READY_TO_SEND

Definition at line 135 of file uart_18xx_43xx.c.

STATIC INLINE uint8_t Chip_UART_GetLineStatus ( LPC_USART_Type UARTx)

Get current value of Line Status register in UART peripheral.

Parameters
UARTx: Pointer to selected UARTx peripheral
Returns
Current value of Line Status register in UART peripheral

Definition at line 164 of file uart_18xx_43xx.h.

void Chip_UART_Init ( LPC_USART_Type UARTx)

Initializes the UARTx peripheral.

Parameters
UARTx: Pointer to selected UARTx peripheral
Returns
Nothing

Definition at line 94 of file uart_18xx_43xx.c.

void Chip_UART_InitRingBuffer ( void  )

Reset Tx and Rx ring buffer (head and tail)

Returns
Nothing

Definition at line 344 of file uart_18xx_43xx.c.

STATIC INLINE void Chip_UART_IntConfig ( LPC_USART_Type UARTx,
UART_INT_Type  UARTIntCfg,
FunctionalState  NewState 
)

Enable or disable specified UART interrupt.

Parameters
UARTx: Pointer to selected UARTx peripheral
UARTIntCfg: Specifies the interrupt flag, should be one of the following:
  • UART_INTCFG_RBR : RBR Interrupt enable
  • UART_INTCFG_THRE : THR Interrupt enable
  • UART_INTCFG_RLS : RX line status interrupt enable
  • UART1_INTCFG_MS : Modem status interrupt enable (UART1 only)
  • UART1_INTCFG_CTS : CTS1 signal transition interrupt enable (UART1 only)
  • UART_INTCFG_ABEO : Enables the end of auto-baud interrupt
  • UART_INTCFG_ABTO : Enables the auto-baud time-out interrupt
NewState: New state of specified UART interrupt type, should be ENALBE or DISALBE
Returns
Nothing

Definition at line 144 of file uart_18xx_43xx.h.

void Chip_UART_Interrupt_Handler ( LPC_USART_Type UARTx)

Uart interrupt service routine (chip layer)

Parameters
UARTx: Pointer to selected UARTx peripheral
Returns
Nothing

Definition at line 171 of file uart_18xx_43xx.c.

uint32_t Chip_UART_Interrupt_Receive ( LPC_USART_Type UARTx,
uint8_t *  rxbuf,
uint8_t  buflen 
)

UART read function for interrupt mode (using ring buffers)

Parameters
UARTx: Selected UART peripheral used to send data, should be UART0
rxbuf: Pointer to Received buffer
buflen: Length of Received buffer
Returns
Number of bytes actually read from the ring buffer

Definition at line 312 of file uart_18xx_43xx.c.

uint32_t Chip_UART_Interrupt_Transmit ( LPC_USART_Type UARTx,
uint8_t *  txbuf,
uint8_t  buflen 
)

UART transmit function for interrupt mode (using ring buffers)

Parameters
UARTx: Selected UART peripheral used to send data, should be UART0
txbuf: Pointer to Transmit buffer
buflen: Length of Transmit buffer
Returns
Number of bytes actually sent to the ring buffer

Definition at line 237 of file uart_18xx_43xx.c.

STATIC INLINE uint32_t Chip_UART_IntGetStatus ( LPC_USART_Type UARTx)

Get Source Interrupt.

Parameters
UARTx: Pointer to selected UARTx peripheral
Returns
Return the value of IIR register

Definition at line 154 of file uart_18xx_43xx.h.

STATIC INLINE uint32_t Chip_UART_Receive ( LPC_USART_Type UARTx,
uint8_t *  rxbuf,
uint32_t  buflen,
TRANSFER_BLOCK_Type  flag 
)

Receive a block of data via UART peripheral.

Parameters
UARTx: Pointer to selected UARTx peripheral
rxbuf: Pointer to Received buffer
buflen: Length of Received buffer
flag: Flag mode, should be NONE_BLOCKING or BLOCKING
Returns
Number of bytes received

Definition at line 94 of file uart_18xx_43xx.h.

STATIC INLINE Status Chip_UART_ReceiveByte ( LPC_USART_Type UARTx,
uint8_t *  Data 
)

Receive a single data from UART peripheral.

Parameters
UARTx: Pointer to selected UARTx peripheral
*Data: Pointer to Data to receive (must be 8-bit long)
Returns
Status, should be ERROR or (Receive data is ready) or SUCCESS (Receive data is not ready yet)

Definition at line 206 of file uart_18xx_43xx.h.

STATIC INLINE uint32_t Chip_UART_Send ( LPC_USART_Type UARTx,
uint8_t *  txbuf,
uint32_t  buflen,
TRANSFER_BLOCK_Type  flag 
)

Send a block of data via UART peripheral.

Parameters
UARTx: Pointer to selected UARTx peripheral
txbuf: Pointer to Transmit buffer
buflen: Length of Transmit buffer
flag: Flag used in UART transfer, should be NONE_BLOCKING or BLOCKING
Returns
Number of bytes sent

Definition at line 81 of file uart_18xx_43xx.h.

STATIC INLINE Status Chip_UART_SendByte ( LPC_USART_Type UARTx,
uint8_t  Data 
)

Transmit a single data through UART peripheral.

Parameters
UARTx: Pointer to selected UARTx peripheral
Data: Data to transmit (must be 8-bit long)
Returns
Status, should be ERROR (THR is empty, ready to send) or SUCCESS (THR is not empty)

Definition at line 195 of file uart_18xx_43xx.h.

Status Chip_UART_SetBaud ( LPC_USART_Type UARTx,
uint32_t  baudrate 
)

Determines best dividers to get a target baud rate.

Parameters
UARTx: Pointer to selected UARTx peripheral
baudrate: Desired UART baud rate.
Returns
Error status, could be SUCCESS or ERROR

Definition at line 116 of file uart_18xx_43xx.c.

void Chip_UART_TxCmd ( LPC_USART_Type UARTx,
FunctionalState  NewState 
)

Enable/Disable transmission on UART TxD pin.

Parameters
UARTx: Pointer to selected UARTx peripheral
NewState: New State of Tx transmission function, should be ENABLE or DISABLE
Returns
Nothing

Definition at line 127 of file uart_18xx_43xx.c.