NUC029FAE_BSP V3.01.004
The Board Support Package for NUC029FAE MCU
Macros | Functions
Collaboration diagram for UART Exported Functions:

Macros

#define UART_BAUD_MODE0   (0)
 Calculate UART baudrate mode0 divider. More...
 
#define UART_BAUD_MODE2   (UART_BAUD_DIV_X_EN_Msk | UART_BAUD_DIV_X_ONE_Msk)
 Calculate UART baudrate mode0 divider. More...
 
#define UART_BAUD_MODE0_DIVIDER(u32SrcFreq, u32BaudRate)   (((u32SrcFreq + (u32BaudRate*8)) / u32BaudRate >> 4)-2)
 Calculate UART baudrate mode0 divider. More...
 
#define UART_BAUD_MODE2_DIVIDER(u32SrcFreq, u32BaudRate)   (((u32SrcFreq + (u32BaudRate/2)) / u32BaudRate)-2)
 Calculate UART baudrate mode2 divider. More...
 
#define UART_WRITE(uart, u8Data)   (uart->THR = (u8Data))
 Write Data to Tx data register. More...
 
#define UART_READ(uart)   (uart->RBR)
 Read Rx data register. More...
 
#define UART_GET_TX_EMPTY(uart)   (uart->FSR & UART_FSR_TX_EMPTY_Msk)
 Get Tx empty register value. More...
 
#define UART_GET_RX_EMPTY(uart)   (uart->FSR & UART_FSR_RX_EMPTY_Msk)
 Get Rx empty register value. More...
 
#define UART_IS_TX_EMPTY(uart)   ((uart->FSR & UART_FSR_TE_FLAG_Msk) >> UART_FSR_TE_FLAG_Pos)
 Check specified uart port transmission is over. More...
 
#define UART_WAIT_TX_EMPTY(uart)   while(!(((uart->FSR) & UART_FSR_TE_FLAG_Msk) >> UART_FSR_TE_FLAG_Pos))
 Wait specified uart port transmission is over. More...
 
#define UART_IS_RX_READY(uart)   ((uart->ISR & UART_ISR_RDA_IF_Msk)>>UART_ISR_RDA_IF_Pos)
 Check RDA_IF is set or not. More...
 
#define UART_IS_TX_FULL(uart)   ((uart->FSR & UART_FSR_TX_FULL_Msk)>>UART_FSR_TX_FULL_Pos)
 Check TX FIFO is full or not. More...
 
#define UART_IS_RX_FULL(uart)   ((uart->FSR & UART_FSR_RX_FULL_Msk)>>UART_FSR_RX_FULL_Pos)
 Check RX FIFO is full or not. More...
 
#define UART_GET_TX_FULL(uart)   (uart->FSR & UART_FSR_TX_FULL_Msk)
 Get Tx full register value. More...
 
#define UART_GET_RX_FULL(uart)   (uart->FSR & UART_FSR_RX_FULL_Msk)
 Get Rx full register value. More...
 
#define UART_ENABLE_INT(uart, u32eIntSel)   (uart->IER |= (u32eIntSel))
 Enable specified interrupt. More...
 
#define UART_DISABLE_INT(uart, u32eIntSel)   (uart->IER &= ~ (u32eIntSel))
 Disable specified interrupt. More...
 
#define UART_GET_INT_FLAG(uart, u32eIntTypeFlag)   ((uart->ISR & (u32eIntTypeFlag))?1:0)
 Get specified interrupt flag/status. More...
 
#define UART_RS485_CLEAR_ADDR_FLAG(uart)   (uart->FSR |= UART_FSR_RS485_ADD_DETF_Msk)
 Clear RS-485 Address Byte Detection Flag. More...
 
#define UART_RS485_GET_ADDR_FLAG(uart)   ((uart->FSR & UART_FSR_RS485_ADD_DETF_Msk) >> UART_FSR_RS485_ADD_DETF_Pos)
 Get RS-485 Address Byte Detection Flag. More...
 

Functions

__INLINE void UART_CLEAR_RTS (UART_T *uart)
 Set RTS pin is low. More...
 
__INLINE void UART_SET_RTS (UART_T *uart)
 Set RTS pin is high. More...
 
void UART_ClearIntFlag (UART_T *uart, uint32_t u32InterruptFlag)
 The function is used to clear UART specified interrupt flag. More...
 
void UART_Close (UART_T *uart)
 The function is used to disable UART. More...
 
void UART_DisableFlowCtrl (UART_T *uart)
 The function is used to disable UART auto flow control. More...
 
void UART_DisableInt (UART_T *uart, uint32_t u32InterruptFlag)
 The function is used to disable UART specified interrupt and disable NVIC UART IRQ. More...
 
void UART_EnableFlowCtrl (UART_T *uart)
 The function is used to Enable UART auto flow control. More...
 
void UART_EnableInt (UART_T *uart, uint32_t u32InterruptFlag)
 The function is used to enable UART specified interrupt and disable NVIC UART IRQ. More...
 
void UART_Open (UART_T *uart, uint32_t u32baudrate)
 This function use to enable UART function and set baud-rate. More...
 
uint32_t UART_Read (UART_T *uart, uint8_t *pu8RxBuf, uint32_t u32ReadBytes)
 The function is used to read Rx data from RX FIFO and the data will be stored in pu8RxBuf. More...
 
void UART_SetLine_Config (UART_T *uart, uint32_t u32baudrate, uint32_t u32data_width, uint32_t u32parity, uint32_t u32stop_bits)
 This function use to config UART line setting. More...
 
void UART_SetTimeoutCnt (UART_T *uart, uint32_t u32TOC)
 This function use to set Rx timeout count. More...
 
void UART_SelectIrDAMode (UART_T *uart, uint32_t u32Buadrate, uint32_t u32Direction)
 The function is used to configure IrDA relative settings. It consists of TX or RX mode and baudrate. More...
 
void UART_SelectRS485Mode (UART_T *uart, uint32_t u32Mode, uint32_t u32Addr)
 The function is used to set RS485 relative setting. More...
 
uint32_t UART_Write (UART_T *uart, uint8_t *pu8TxBuf, uint32_t u32WriteBytes)
 The function is to write data into TX buffer to transmit data by UART. More...
 

Detailed Description

Macro Definition Documentation

◆ UART_BAUD_MODE0

#define UART_BAUD_MODE0   (0)

Calculate UART baudrate mode0 divider.

Parameters
None
Returns
UART baudrate mode0 register setting value

Definition at line 95 of file uart.h.

◆ UART_BAUD_MODE0_DIVIDER

#define UART_BAUD_MODE0_DIVIDER (   u32SrcFreq,
  u32BaudRate 
)    (((u32SrcFreq + (u32BaudRate*8)) / u32BaudRate >> 4)-2)

Calculate UART baudrate mode0 divider.

Parameters
u32SrcFreqUART clock frequency
u32BaudRateBaudrate of UART module
Returns
UART baudrate mode0 divider

Definition at line 117 of file uart.h.

◆ UART_BAUD_MODE2

#define UART_BAUD_MODE2   (UART_BAUD_DIV_X_EN_Msk | UART_BAUD_DIV_X_ONE_Msk)

Calculate UART baudrate mode0 divider.

Parameters
None
Returns
UART baudrate mode2 register setting value

Definition at line 105 of file uart.h.

◆ UART_BAUD_MODE2_DIVIDER

#define UART_BAUD_MODE2_DIVIDER (   u32SrcFreq,
  u32BaudRate 
)    (((u32SrcFreq + (u32BaudRate/2)) / u32BaudRate)-2)

Calculate UART baudrate mode2 divider.

Parameters
u32SrcFreqUART clock frequency
u32BaudRateBaudrate of UART module
Returns
UART baudrate mode2 divider

Definition at line 127 of file uart.h.

◆ UART_DISABLE_INT

#define UART_DISABLE_INT (   uart,
  u32eIntSel 
)    (uart->IER &= ~ (u32eIntSel))

Disable specified interrupt.

Parameters
uartThe base address of UART module
u32eIntSelInterrupt type select
  • UART_IER_TIME_OUT_EN_Msk : Rx Time Out interrupt
  • UART_IER_WAKE_EN_Msk : Wakeup interrupt
  • UART_IER_BUF_ERR_IEN_Msk : Buffer Error interrupt
  • UART_IER_RTO_IEN_Msk : Rx time-out interrupt
  • UART_IER_MODEM_IEN_Msk : Modem interrupt
  • UART_IER_RLS_IEN_Msk : Rx Line status interrupt
  • UART_IER_THRE_IEN_Msk : Tx empty interrupt
  • UART_IER_RDA_IEN_Msk : Rx ready interrupt
Returns
None

Definition at line 278 of file uart.h.

◆ UART_ENABLE_INT

#define UART_ENABLE_INT (   uart,
  u32eIntSel 
)    (uart->IER |= (u32eIntSel))

Enable specified interrupt.

Parameters
uartThe base address of UART module
u32eIntSelInterrupt type select
  • UART_IER_TIME_OUT_EN_Msk : Rx Time Out interrupt
  • UART_IER_WAKE_EN_Msk : Wakeup interrupt
  • UART_IER_BUF_ERR_IEN_Msk : Buffer Error interrupt
  • UART_IER_RTO_IEN_Msk : Rx time-out interrupt
  • UART_IER_MODEM_IEN_Msk : Modem interrupt
  • UART_IER_RLS_IEN_Msk : Rx Line status interrupt
  • UART_IER_THRE_IEN_Msk : Tx empty interrupt
  • UART_IER_RDA_IEN_Msk : Rx ready interrupt
Returns
None

Definition at line 260 of file uart.h.

◆ UART_GET_INT_FLAG

#define UART_GET_INT_FLAG (   uart,
  u32eIntTypeFlag 
)    ((uart->ISR & (u32eIntTypeFlag))?1:0)

Get specified interrupt flag/status.

Parameters
uartThe base address of UART module
u32eIntTypeFlagInterrupt Type Flag,should be
  • UART_IER_TIME_OUT_EN_Msk : Rx Time Out interrupt
  • UART_IER_WAKE_EN_Msk : Wakeup interrupt
  • UART_IER_BUF_ERR_IEN_Msk : Buffer Error interrupt
  • UART_IER_RTO_IEN_Msk : Rx time-out interrupt
  • UART_IER_MODEM_IEN_Msk : Modem interrupt
  • UART_IER_RLS_IEN_Msk : Rx Line status interrupt
  • UART_IER_THRE_IEN_Msk : Tx empty interrupt
  • UART_IER_RDA_IEN_Msk : Rx ready interrupt
Returns
0 = The specified interrupt is not happened. 1 = The specified interrupt is happened.

Definition at line 299 of file uart.h.

◆ UART_GET_RX_EMPTY

#define UART_GET_RX_EMPTY (   uart)    (uart->FSR & UART_FSR_RX_EMPTY_Msk)

Get Rx empty register value.

Parameters
uartThe base address of UART module
Returns
Rx empty register value.

Definition at line 167 of file uart.h.

◆ UART_GET_RX_FULL

#define UART_GET_RX_FULL (   uart)    (uart->FSR & UART_FSR_RX_FULL_Msk)

Get Rx full register value.

Parameters
uartThe base address of UART module
Returns
Rx full register value

Definition at line 241 of file uart.h.

◆ UART_GET_TX_EMPTY

#define UART_GET_TX_EMPTY (   uart)    (uart->FSR & UART_FSR_TX_EMPTY_Msk)

Get Tx empty register value.

Parameters
uartThe base address of UART module
Returns
Tx empty register value.

Definition at line 157 of file uart.h.

◆ UART_GET_TX_FULL

#define UART_GET_TX_FULL (   uart)    (uart->FSR & UART_FSR_TX_FULL_Msk)

Get Tx full register value.

Parameters
uartThe base address of UART module
Returns
Tx full register value

Definition at line 231 of file uart.h.

◆ UART_IS_RX_FULL

#define UART_IS_RX_FULL (   uart)    ((uart->FSR & UART_FSR_RX_FULL_Msk)>>UART_FSR_RX_FULL_Pos)

Check RX FIFO is full or not.

Parameters
uartThe base address of UART module
Returns
1 = RX FIFO is full 0 = RX FIFO is not full

Definition at line 221 of file uart.h.

◆ UART_IS_RX_READY

#define UART_IS_RX_READY (   uart)    ((uart->ISR & UART_ISR_RDA_IF_Msk)>>UART_ISR_RDA_IF_Pos)

Check RDA_IF is set or not.

Parameters
uartThe base address of UART module
Returns
0 : The number of bytes in the RX FIFO is less than the RFITL 1 : The number of bytes in the RX FIFO equals or larger than RFITL

Definition at line 197 of file uart.h.

◆ UART_IS_TX_EMPTY

#define UART_IS_TX_EMPTY (   uart)    ((uart->FSR & UART_FSR_TE_FLAG_Msk) >> UART_FSR_TE_FLAG_Pos)

Check specified uart port transmission is over.

Parameters
uartThe base address of UART module
Returns
TE_Flag.

Definition at line 176 of file uart.h.

◆ UART_IS_TX_FULL

#define UART_IS_TX_FULL (   uart)    ((uart->FSR & UART_FSR_TX_FULL_Msk)>>UART_FSR_TX_FULL_Pos)

Check TX FIFO is full or not.

Parameters
uartThe base address of UART module
Returns
1 = TX FIFO is full 0 = TX FIFO is not full

Definition at line 209 of file uart.h.

◆ UART_READ

#define UART_READ (   uart)    (uart->RBR)

Read Rx data register.

Parameters
uartThe base address of UART module.
Returns
The oldest data byte in RX FIFO

Definition at line 147 of file uart.h.

◆ UART_RS485_CLEAR_ADDR_FLAG

#define UART_RS485_CLEAR_ADDR_FLAG (   uart)    (uart->FSR |= UART_FSR_RS485_ADD_DETF_Msk)

Clear RS-485 Address Byte Detection Flag.

Parameters
uartThe base address of UART module
Returns
None

Definition at line 331 of file uart.h.

◆ UART_RS485_GET_ADDR_FLAG

#define UART_RS485_GET_ADDR_FLAG (   uart)    ((uart->FSR & UART_FSR_RS485_ADD_DETF_Msk) >> UART_FSR_RS485_ADD_DETF_Pos)

Get RS-485 Address Byte Detection Flag.

Parameters
uartThe base address of UART module
Returns
RS-485 Address Byte Detection Flag

Definition at line 340 of file uart.h.

◆ UART_WAIT_TX_EMPTY

#define UART_WAIT_TX_EMPTY (   uart)    while(!(((uart->FSR) & UART_FSR_TE_FLAG_Msk) >> UART_FSR_TE_FLAG_Pos))

Wait specified uart port transmission is over.

Parameters
uartThe base address of UART module
Returns
None

Definition at line 186 of file uart.h.

◆ UART_WRITE

#define UART_WRITE (   uart,
  u8Data 
)    (uart->THR = (u8Data))

Write Data to Tx data register.

Parameters
uartThe base address of UART module.
u8DataData byte to transmit
Returns
None

Definition at line 138 of file uart.h.

Function Documentation

◆ UART_CLEAR_RTS()

__INLINE void UART_CLEAR_RTS ( UART_T uart)

Set RTS pin is low.

Parameters
uartThe base address of UART module
Returns
None

Definition at line 308 of file uart.h.

◆ UART_ClearIntFlag()

void UART_ClearIntFlag ( UART_T uart,
uint32_t  u32InterruptFlag 
)

The function is used to clear UART specified interrupt flag.

Parameters
uartThe base address of UART module.
u32InterruptFlagThe specified interrupt of UART module..
Returns
None

Definition at line 37 of file uart.c.

◆ UART_Close()

void UART_Close ( UART_T uart)

The function is used to disable UART.

Parameters
uartThe base address of UART module.
Returns
None

Definition at line 67 of file uart.c.

◆ UART_DisableFlowCtrl()

void UART_DisableFlowCtrl ( UART_T uart)

The function is used to disable UART auto flow control.

Parameters
uartThe base address of UART module.
Returns
None

Definition at line 80 of file uart.c.

◆ UART_DisableInt()

void UART_DisableInt ( UART_T uart,
uint32_t  u32InterruptFlag 
)

The function is used to disable UART specified interrupt and disable NVIC UART IRQ.

Parameters
uartThe base address of UART module.
u32InterruptFlagThe specified interrupt of UART module.
  • UART_IER_TIME_OUT_EN_Msk : Rx Time Out interrupt
  • UART_IER_WAKE_EN_Msk : Wakeup interrupt
  • UART_IER_BUF_ERR_IEN_Msk : Buffer Error interrupt
  • UART_IER_RTO_IEN_Msk : Rx time-out interrupt
  • UART_IER_MODEM_IEN_Msk : Modem interrupt
  • UART_IER_RLS_IEN_Msk : Rx Line status interrupt
  • UART_IER_THRE_IEN_Msk : Tx empty interrupt
  • UART_IER_RDA_IEN_Msk : Rx ready interrupt
Returns
None

Definition at line 102 of file uart.c.

◆ UART_EnableFlowCtrl()

void UART_EnableFlowCtrl ( UART_T uart)

The function is used to Enable UART auto flow control.

Parameters
uartThe base address of UART module.
Returns
None

Definition at line 116 of file uart.c.

◆ UART_EnableInt()

void UART_EnableInt ( UART_T uart,
uint32_t  u32InterruptFlag 
)

The function is used to enable UART specified interrupt and disable NVIC UART IRQ.

Parameters
uartThe base address of UART module.
u32InterruptFlagThe specified interrupt of UART module:
  • UART_IER_TIME_OUT_EN_Msk : Rx Time Out interrupt
  • UART_IER_WAKE_EN_Msk : Wakeup interrupt
  • UART_IER_BUF_ERR_IEN_Msk : Buffer Error interrupt
  • UART_IER_RTO_IEN_Msk : Rx time-out interrupt
  • UART_IER_MODEM_IEN_Msk : Modem interrupt
  • UART_IER_RLS_IEN_Msk : Rx Line status interrupt
  • UART_IER_THRE_IEN_Msk : Tx empty interrupt
  • UART_IER_RDA_IEN_Msk : Rx ready interrupt
Returns
None

Definition at line 141 of file uart.c.

◆ UART_Open()

void UART_Open ( UART_T uart,
uint32_t  u32baudrate 
)

This function use to enable UART function and set baud-rate.

Parameters
uartThe base address of UART module.
u32baudrateThe baudrate of UART module.
Returns
None

Definition at line 155 of file uart.c.

◆ UART_Read()

uint32_t UART_Read ( UART_T uart,
uint8_t *  pu8RxBuf,
uint32_t  u32ReadBytes 
)

The function is used to read Rx data from RX FIFO and the data will be stored in pu8RxBuf.

Parameters
uartThe base address of UART module.
pu8RxBufThe buffer to receive the data of receive FIFO.
u32ReadBytesThe the read bytes number of data.
Returns
u32Count: Receive byte count

Definition at line 188 of file uart.c.

◆ UART_SelectIrDAMode()

void UART_SelectIrDAMode ( UART_T uart,
uint32_t  u32Buadrate,
uint32_t  u32Direction 
)

The function is used to configure IrDA relative settings. It consists of TX or RX mode and baudrate.

Parameters
uartThe base address of UART module.
u32BuadrateThe baudrate of UART module.
u32DirectionThe direction(transmit:1/receive:0) of UART module in IrDA mode.
Returns
None

Definition at line 267 of file uart.c.

◆ UART_SelectRS485Mode()

void UART_SelectRS485Mode ( UART_T uart,
uint32_t  u32Mode,
uint32_t  u32Addr 
)

The function is used to set RS485 relative setting.

Parameters
uartThe base address of UART module.
u32ModeThe operation mode(NMM/AUD/AAD).
u32AddrThe RS485 address.
Returns
None

Definition at line 287 of file uart.c.

◆ UART_SET_RTS()

__INLINE void UART_SET_RTS ( UART_T uart)

Set RTS pin is high.

Parameters
uartThe base address of UART module
Returns
None

Definition at line 320 of file uart.h.

◆ UART_SetLine_Config()

void UART_SetLine_Config ( UART_T uart,
uint32_t  u32baudrate,
uint32_t  u32data_width,
uint32_t  u32parity,
uint32_t  u32stop_bits 
)

This function use to config UART line setting.

Parameters
uartThe base address of UART module.
u32baudrateThe register value of baudrate of UART module. if u32baudrate = 0, UART baudrate will not change.
u32data_widthThe data length of UART module.
u32parityThe parity setting (odd/even/none) of UART module.
u32stop_bitsThe stop bit length (1/1.5 bit) of UART module.
Returns
None

Definition at line 222 of file uart.c.

◆ UART_SetTimeoutCnt()

void UART_SetTimeoutCnt ( UART_T uart,
uint32_t  u32TOC 
)

This function use to set Rx timeout count.

Parameters
uartThe base address of UART module.
u32TOCRx timeout counter.
Returns
None

Definition at line 251 of file uart.c.

◆ UART_Write()

uint32_t UART_Write ( UART_T uart,
uint8_t *  pu8TxBuf,
uint32_t  u32WriteBytes 
)

The function is to write data into TX buffer to transmit data by UART.

Parameters
uartThe base address of UART module.
pu8TxBufThe buffer to send the data to UART transmission FIFO.
u32WriteBytesThe byte number of data.
Returns
u32Count: transfer byte count

Definition at line 304 of file uart.c.