CC13xx Driver Library
[uart] Universal Asynchronous Receiver/Transmitter

Functions

static void UARTParityModeSet (uint32_t ui32Base, uint32_t ui32Parity)
 Sets the type of parity. More...
 
static uint32_t UARTParityModeGet (uint32_t ui32Base)
 Gets the type of parity currently being used. More...
 
static void UARTFIFOLevelSet (uint32_t ui32Base, uint32_t ui32TxLevel, uint32_t ui32RxLevel)
 Sets the FIFO level at which interrupts are generated. More...
 
void UARTFIFOLevelGet (uint32_t ui32Base, uint32_t *pui32TxLevel, uint32_t *pui32RxLevel)
 Gets the FIFO level at which interrupts are generated. More...
 
void UARTConfigSetExpClk (uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t ui32Baud, uint32_t ui32Config)
 Sets the configuration of a UART. More...
 
void UARTConfigGetExpClk (uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t *pui32Baud, uint32_t *pui32Config)
 Gets the current configuration of a UART. More...
 
static void UARTEnable (uint32_t ui32Base)
 Enables transmitting and receiving. More...
 
void UARTDisable (uint32_t ui32Base)
 Disables transmitting and receiving. More...
 
static void UARTFIFOEnable (uint32_t ui32Base)
 Enables the transmit and receive FIFOs. More...
 
static void UARTFIFODisable (uint32_t ui32Base)
 Disables the transmit and receive FIFOs. More...
 
static bool UARTCharsAvail (uint32_t ui32Base)
 Determines if there are any characters in the receive FIFO. More...
 
static bool UARTSpaceAvail (uint32_t ui32Base)
 Determines if there is any space in the transmit FIFO. More...
 
int32_t UARTCharGetNonBlocking (uint32_t ui32Base)
 Receives a character from the specified port. More...
 
int32_t UARTCharGet (uint32_t ui32Base)
 Waits for a character from the specified port. More...
 
bool UARTCharPutNonBlocking (uint32_t ui32Base, uint8_t ui8Data)
 Sends a character to the specified port. More...
 
void UARTCharPut (uint32_t ui32Base, uint8_t ui8Data)
 Waits to send a character from the specified port. More...
 
static bool UARTBusy (uint32_t ui32Base)
 Determines whether the UART transmitter is busy or not. More...
 
static void UARTBreakCtl (uint32_t ui32Base, bool bBreakState)
 Causes a BREAK to be sent. More...
 
void UARTIntRegister (uint32_t ui32Base, void(*pfnHandler)(void))
 Registers an interrupt handler for a UART interrupt. More...
 
void UARTIntUnregister (uint32_t ui32Base)
 Unregisters an interrupt handler for a UART interrupt. More...
 
static void UARTIntEnable (uint32_t ui32Base, uint32_t ui32IntFlags)
 Enables individual UART interrupt sources. More...
 
static void UARTIntDisable (uint32_t ui32Base, uint32_t ui32IntFlags)
 Disables individual UART interrupt sources. More...
 
static uint32_t UARTIntStatus (uint32_t ui32Base, bool bMasked)
 Gets the current interrupt status. More...
 
static void UARTIntClear (uint32_t ui32Base, uint32_t ui32IntFlags)
 Clears UART interrupt sources. More...
 
static void UARTDMAEnable (uint32_t ui32Base, uint32_t ui32DMAFlags)
 Enable UART DMA operation. More...
 
static void UARTDMADisable (uint32_t ui32Base, uint32_t ui32DMAFlags)
 Disable UART DMA operation. More...
 
static uint32_t UARTRxErrorGet (uint32_t ui32Base)
 Gets current receiver errors. More...
 
static void UARTRxErrorClear (uint32_t ui32Base)
 Clears all reported receiver errors. More...
 
static void UARTHwFlowControlEnable (uint32_t ui32Base)
 Enables hardware flow control for both CTS and RTS. More...
 
static void UARTHwFlowControlDisable (uint32_t ui32Base)
 Disables hardware flow control for both CTS and RTS. More...
 

Detailed Description

Function Documentation

static void UARTBreakCtl ( uint32_t  ui32Base,
bool  bBreakState 
)
inlinestatic

Causes a BREAK to be sent.

Note
For proper transmission of a break command, the break must be asserted for at least two complete frames.
Parameters
ui32Baseis the base address of the UART port.
bBreakStatecontrols the output level.
  • true : Asserts a break condition on the UART.
  • false : Removes the break condition.
Returns
None

Definition at line 700 of file uart.h.

static bool UARTBusy ( uint32_t  ui32Base)
inlinestatic

Determines whether the UART transmitter is busy or not.

Allows the caller to determine whether all transmitted bytes have cleared the transmitter hardware. If false is returned, the transmit FIFO is empty and all bits of the last transmitted character, including all stop bits, have left the hardware shift register.

Parameters
ui32Baseis the base address of the UART port.
Returns
Returns status of UART transmitter.
  • true : UART is transmitting.
  • false : All transmissions are complete.

Definition at line 670 of file uart.h.

int32_t UARTCharGet ( uint32_t  ui32Base)

Waits for a character from the specified port.

This function gets a character from the receive FIFO for the specified port. If there are no characters available, this function waits until a character is received before returning.

Parameters
ui32Baseis the base address of the UART port.
Returns
Returns the character read from the specified port, cast as an int32_t.

Definition at line 239 of file uart.c.

int32_t UARTCharGetNonBlocking ( uint32_t  ui32Base)

Receives a character from the specified port.

This function gets a character from the receive FIFO for the specified port.

Note
The UARTCharsAvail() function should be called before attempting to call this function.
Parameters
ui32Baseis the base address of the UART port.
Returns
Returns the character read from the specified port, cast as an int32_t. A -1 is returned if there are no characters present in the receive FIFO.
See also
UARTCharsAvail()

Definition at line 207 of file uart.c.

void UARTCharPut ( uint32_t  ui32Base,
uint8_t  ui8Data 
)

Waits to send a character from the specified port.

This function sends the character ui8Data to the transmit FIFO for the specified port. If there is no space available in the transmit FIFO, this function waits until there is space available before returning.

Parameters
ui32Baseis the base address of the UART port.
ui8Datais the character to be transmitted.
Returns
None

Definition at line 302 of file uart.c.

bool UARTCharPutNonBlocking ( uint32_t  ui32Base,
uint8_t  ui8Data 
)

Sends a character to the specified port.

This function writes the character ui8Data to the transmit FIFO for the specified port. This function does not block, so if there is no space available, then a false is returned, and the application must retry the function later.

Parameters
ui32Baseis the base address of the UART port.
ui8Datais the character to be transmitted.
Returns
Returns status of the character transmit.
  • true : The character was successfully placed in the transmit FIFO.
  • false : There was no space available in the transmit FIFO. Try again later.

Definition at line 265 of file uart.c.

static bool UARTCharsAvail ( uint32_t  ui32Base)
inlinestatic

Determines if there are any characters in the receive FIFO.

This function returns a flag indicating whether or not there is data available in the receive FIFO.

Parameters
ui32Baseis the base address of the UART port.
Returns
Returns status of the receive FIFO.
  • true : There is data in the receive FIFO.
  • false : There is no data in the receive FIFO.

Definition at line 540 of file uart.h.

void UARTConfigGetExpClk ( uint32_t  ui32Base,
uint32_t  ui32UARTClk,
uint32_t *  pui32Baud,
uint32_t *  pui32Config 
)

Gets the current configuration of a UART.

The baud rate and data format for the UART is determined, given an explicitly provided peripheral clock (hence the ExpClk suffix). The returned baud rate is the actual baud rate; it may not be the exact baud rate requested or an "official" baud rate. The data format returned in pui32Config is enumerated the same as the ui32Config parameter of UARTConfigSetExpClk().

Note
The peripheral clock is not necessarily the same as the processor clock. The frequency of the peripheral clock is set by the system control.
Parameters
ui32Baseis the base address of the UART port.
ui32UARTClkis the rate of the clock supplied to the UART module.
pui32Baudis a pointer to storage for the baud rate.
pui32Configis a pointer to storage for the data format.
Returns
None

Definition at line 143 of file uart.c.

void UARTConfigSetExpClk ( uint32_t  ui32Base,
uint32_t  ui32UARTClk,
uint32_t  ui32Baud,
uint32_t  ui32Config 
)

Sets the configuration of a UART.

This function configures the UART for operation in the specified data format.

Note
The peripheral clock is not necessarily the same as the processor clock. The frequency of the peripheral clock is set by the system control.
Parameters
ui32Baseis the base address of the UART port.
ui32UARTClkis the rate of the clock supplied to the UART module.
ui32Baudis the desired baud rate.
  • Minimum baud rate: ui32Baud >= ceil(ui32UARTClk / 1,048,559.875)
  • Maximum baud rate: ui32Baud <= floor(ui32UARTClk / 15.875)
ui32Configis the data format for the port. The parameter is the bitwise OR of three values:
Returns
None

Definition at line 104 of file uart.c.

Here is the call graph for this function:

void UARTDisable ( uint32_t  ui32Base)

Disables transmitting and receiving.

This function clears the UARTEN, TXE, and RXE bits, waits for the end of transmission of the current character, and flushes the transmit FIFO.

Parameters
ui32Baseis the base address of the UART port.
Returns
None

Definition at line 174 of file uart.c.

Referenced by UARTConfigSetExpClk().

static void UARTDMADisable ( uint32_t  ui32Base,
uint32_t  ui32DMAFlags 
)
inlinestatic

Disable UART DMA operation.

This function is used to disable UART DMA features that were enabled by UARTDMAEnable(). The specified UART DMA features are disabled.

Parameters
ui32Baseis the base address of the UART port.
ui32DMAFlagsis a bit mask of the DMA features to disable. The parameter is the bitwise OR of any of the following values:
  • UART_DMA_RX : Enable DMA for receive.
  • UART_DMA_TX : Enable DMA for transmit.
  • UART_DMA_ERR_RXSTOP : Disable DMA receive on UART error.
Returns
None

Definition at line 979 of file uart.h.

static void UARTDMAEnable ( uint32_t  ui32Base,
uint32_t  ui32DMAFlags 
)
inlinestatic

Enable UART DMA operation.

The specified UART DMA features are enabled. The UART can be configured to use DMA for transmit or receive, and to disable receive if an error occurs.

Note
The uDMA controller must also be set up before DMA can be used with the UART.
Parameters
ui32Baseis the base address of the UART port.
ui32DMAFlagsis a bit mask of the DMA features to enable. The parameter is the bitwise OR of any of the following values:
  • UART_DMA_RX : Enable DMA for receive.
  • UART_DMA_TX : Enable DMA for transmit.
  • UART_DMA_ERR_RXSTOP : Disable DMA receive on UART error.
Returns
None

Definition at line 948 of file uart.h.

static void UARTEnable ( uint32_t  ui32Base)
inlinestatic

Enables transmitting and receiving.

This function sets the UARTEN, TXE, and RXE bits, and enables the transmit and receive FIFOs.

Parameters
ui32Baseis the base address of the UART port.
Returns
None

Definition at line 442 of file uart.h.

static void UARTFIFODisable ( uint32_t  ui32Base)
inlinestatic

Disables the transmit and receive FIFOs.

This functions disables the transmit and receive FIFOs in the UART.

Parameters
ui32Baseis the base address of the UART port.
Returns
None

Definition at line 512 of file uart.h.

static void UARTFIFOEnable ( uint32_t  ui32Base)
inlinestatic

Enables the transmit and receive FIFOs.

This functions enables the transmit and receive FIFOs in the UART.

Parameters
ui32Baseis the base address of the UART port.
Returns
None

Definition at line 487 of file uart.h.

void UARTFIFOLevelGet ( uint32_t  ui32Base,
uint32_t *  pui32TxLevel,
uint32_t *  pui32RxLevel 
)

Gets the FIFO level at which interrupts are generated.

This function gets the FIFO level at which transmit and receive interrupts are generated.

Parameters
ui32Baseis the base address of the UART port.
pui32TxLevelis a pointer to storage for the transmit FIFO level, returned as one of:
pui32RxLevelis a pointer to storage for the receive FIFO level, returned as one of:
Returns
None

Definition at line 76 of file uart.c.

static void UARTFIFOLevelSet ( uint32_t  ui32Base,
uint32_t  ui32TxLevel,
uint32_t  ui32RxLevel 
)
inlinestatic

Sets the FIFO level at which interrupts are generated.

This function sets the FIFO level at which transmit and receive interrupts are generated.

Parameters
ui32Baseis the base address of the UART port.
ui32TxLevelis the transmit FIFO interrupt level, specified as one of:
ui32RxLevelis the receive FIFO interrupt level, specified as one of:
Returns
None

Definition at line 313 of file uart.h.

static void UARTHwFlowControlDisable ( uint32_t  ui32Base)
inlinestatic

Disables hardware flow control for both CTS and RTS.

Hardware flow control is disabled by default.

Parameters
ui32Baseis the base address of the UART port.
Returns
None

Definition at line 1088 of file uart.h.

static void UARTHwFlowControlEnable ( uint32_t  ui32Base)
inlinestatic

Enables hardware flow control for both CTS and RTS.

Hardware flow control is disabled by default.

Parameters
ui32Baseis the base address of the UART port.
Returns
None

Definition at line 1066 of file uart.h.

static void UARTIntClear ( uint32_t  ui32Base,
uint32_t  ui32IntFlags 
)
inlinestatic

Clears UART interrupt sources.

The specified UART interrupt sources are cleared, so that they no longer assert. This function must be called in the interrupt handler to keep the interrupt from being recognized again immediately upon exit.

Note
Due to write buffers and synchronizers in the system it may take several clock cycles from a register write clearing an event in a module and until the event is actually cleared in the NVIC of the system CPU. It is recommended to clear the event source early in the interrupt service routine (ISR) to allow the event clear to propagate to the NVIC before returning from the ISR. At the same time, an early event clear allows new events of the same type to be pended instead of ignored if the event is cleared later in the ISR. It is the responsibility of the programmer to make sure that enough time has passed before returning from the ISR to avoid false re-triggering of the cleared event. A simple, although not necessarily optimal, way of clearing an event before returning from the ISR is:
  1. Write to clear event (interrupt source). (buffered write)
  2. Dummy read from the event source module. (making sure the write has propagated)
  3. Wait two system CPU clock cycles (user code or two NOPs). (allowing cleared event to propagate through any synchronizers)
Parameters
ui32Baseis the base address of the UART port.
ui32IntFlagsis a bit mask of the interrupt sources to be cleared.
Returns
None

Definition at line 913 of file uart.h.

static void UARTIntDisable ( uint32_t  ui32Base,
uint32_t  ui32IntFlags 
)
inlinestatic

Disables individual UART interrupt sources.

This function disables the indicated UART interrupt sources. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

Parameters
ui32Baseis the base address of the UART port.
ui32IntFlagsis the bit mask of the interrupt sources to be disabled.
Returns
None

Definition at line 816 of file uart.h.

static void UARTIntEnable ( uint32_t  ui32Base,
uint32_t  ui32IntFlags 
)
inlinestatic

Enables individual UART interrupt sources.

This function enables the indicated UART interrupt sources. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

Parameters
ui32Baseis the base address of the UART port.
ui32IntFlagsis the bit mask of the interrupt sources to be enabled. The parameter is the bitwise OR of any of the following:
Returns
None

Definition at line 780 of file uart.h.

void UARTIntRegister ( uint32_t  ui32Base,
void(*)(void)  pfnHandler 
)

Registers an interrupt handler for a UART interrupt.

This function does the actual registering of the interrupt handler. This function enables the global interrupt in the interrupt controller; specific UART interrupts must be enabled via UARTIntEnable(). It is the interrupt handler's responsibility to clear the interrupt source.

Parameters
ui32Baseis the base address of the UART port.
pfnHandleris a pointer to the function to be called when the UART interrupt occurs.
Returns
None
See also
IntRegister() for important information about registering interrupt handlers.

Definition at line 328 of file uart.c.

Here is the call graph for this function:

static uint32_t UARTIntStatus ( uint32_t  ui32Base,
bool  bMasked 
)
inlinestatic

Gets the current interrupt status.

This function returns the interrupt status for the specified UART. Either the raw interrupt status or the status of interrupts that are allowed to reflect to the processor can be returned.

Parameters
ui32Baseis the base address of the UART port.
bMaskedselects either raw or masked interrupt.
  • true : Masked interrupt status is required.
  • false : Raw interrupt status is required.
Returns
Returns the current interrupt status, enumerated as a bit field of:

Definition at line 854 of file uart.h.

void UARTIntUnregister ( uint32_t  ui32Base)

Unregisters an interrupt handler for a UART interrupt.

This function does the actual unregistering of the interrupt handler. It clears the handler to be called when a UART interrupt occurs. This function also masks off the interrupt in the interrupt controller so that the interrupt handler no longer is called.

Parameters
ui32Baseis the base address of the UART port.
Returns
None
See also
IntRegister() for important information about registering interrupt handlers.

Definition at line 352 of file uart.c.

Here is the call graph for this function:

static uint32_t UARTParityModeGet ( uint32_t  ui32Base)
inlinestatic

Gets the type of parity currently being used.

This function gets the type of parity used for transmitting data and expected when receiving data.

Parameters
ui32Baseis the base address of the UART port.
Returns
Returns the current parity settings, specified as one of:

Definition at line 274 of file uart.h.

static void UARTParityModeSet ( uint32_t  ui32Base,
uint32_t  ui32Parity 
)
inlinestatic

Sets the type of parity.

This function sets the type of parity to use for transmitting and expect when receiving.

Parameters
ui32Baseis the base address of the UART port.
ui32Parityspecifies the type of parity to use. The last two allow direct control of the parity bit; it is always either one or zero based on the mode.
Returns
None

Definition at line 236 of file uart.h.

static void UARTRxErrorClear ( uint32_t  ui32Base)
inlinestatic

Clears all reported receiver errors.

This function is used to clear all receiver error conditions reported via UARTRxErrorGet(). If using the overrun, framing error, parity error or break interrupts, this function must be called after clearing the interrupt to ensure that later errors of the same type trigger another interrupt.

Parameters
ui32Baseis the base address of the UART port.
Returns
None

Definition at line 1040 of file uart.h.

static uint32_t UARTRxErrorGet ( uint32_t  ui32Base)
inlinestatic

Gets current receiver errors.

This function returns the current state of each of the 4 receiver error sources. The returned errors are equivalent to the four error bits returned via the previous call to UARTCharGet() or UARTCharGetNonBlocking() with the exception that the overrun error is set immediately the overrun occurs rather than when a character is next read.

Parameters
ui32Baseis the base address of the UART port.
Returns
Returns a bitwise OR combination of the receiver error flags:

Definition at line 1012 of file uart.h.

static bool UARTSpaceAvail ( uint32_t  ui32Base)
inlinestatic

Determines if there is any space in the transmit FIFO.

This function returns a flag indicating whether or not there is space available in the transmit FIFO.

Parameters
ui32Baseis the base address of the UART port.
Returns
Returns status of the transmit FIFO.
  • true : There is space available in the transmit FIFO.
  • false : There is no space available in the transmit FIFO.

Definition at line 568 of file uart.h.

Macro Definition Documentation

#define UART_BUSY   0x00000001

Definition at line 184 of file uart.h.

Referenced by UARTBusy().

#define UART_CONFIG_PAR_EVEN   0x00000006

Definition at line 131 of file uart.h.

Referenced by UARTParityModeSet().

#define UART_CONFIG_PAR_MASK   0x00000086

Definition at line 129 of file uart.h.

#define UART_CONFIG_PAR_NONE   0x00000000

Definition at line 130 of file uart.h.

Referenced by UARTParityModeSet().

#define UART_CONFIG_PAR_ODD   0x00000002

Definition at line 132 of file uart.h.

Referenced by UARTParityModeSet().

#define UART_CONFIG_PAR_ONE   0x00000082

Definition at line 133 of file uart.h.

Referenced by UARTParityModeSet().

#define UART_CONFIG_PAR_ZERO   0x00000086

Definition at line 134 of file uart.h.

Referenced by UARTParityModeSet().

#define UART_CONFIG_STOP_MASK   0x00000008

Definition at line 126 of file uart.h.

#define UART_CONFIG_STOP_ONE   0x00000000

Definition at line 127 of file uart.h.

#define UART_CONFIG_STOP_TWO   0x00000008

Definition at line 128 of file uart.h.

#define UART_CONFIG_WLEN_5   0x00000000

Definition at line 125 of file uart.h.

#define UART_CONFIG_WLEN_6   0x00000020

Definition at line 124 of file uart.h.

#define UART_CONFIG_WLEN_7   0x00000040

Definition at line 123 of file uart.h.

#define UART_CONFIG_WLEN_8   0x00000060

Definition at line 122 of file uart.h.

#define UART_CONFIG_WLEN_MASK   0x00000060

Definition at line 121 of file uart.h.

#define UART_DMA_ERR_RXSTOP   0x00000004

Definition at line 165 of file uart.h.

#define UART_DMA_RX   0x00000001

Definition at line 167 of file uart.h.

#define UART_DMA_TX   0x00000002

Definition at line 166 of file uart.h.

#define UART_FIFO_RX1_8   0x00000000

Definition at line 154 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_RX2_8   0x00000008

Definition at line 155 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_RX4_8   0x00000010

Definition at line 156 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_RX6_8   0x00000018

Definition at line 157 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_RX7_8   0x00000020

Definition at line 158 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_TX1_8   0x00000000

Definition at line 142 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_TX2_8   0x00000001

Definition at line 143 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_TX4_8   0x00000002

Definition at line 144 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_TX6_8   0x00000003

Definition at line 145 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_FIFO_TX7_8   0x00000004

Definition at line 146 of file uart.h.

Referenced by UARTFIFOLevelSet().

#define UART_IDLE   0x00000000

Definition at line 185 of file uart.h.

Referenced by UARTBusy().

#define UART_INT_BE   0x200

Definition at line 104 of file uart.h.

#define UART_INT_CTS   0x002

Definition at line 110 of file uart.h.

#define UART_INT_FE   0x080

Definition at line 106 of file uart.h.

#define UART_INT_OE   0x400

Definition at line 103 of file uart.h.

#define UART_INT_PE   0x100

Definition at line 105 of file uart.h.

#define UART_INT_RT   0x040

Definition at line 107 of file uart.h.

#define UART_INT_RX   0x010

Definition at line 109 of file uart.h.

#define UART_INT_TX   0x020

Definition at line 108 of file uart.h.

#define UART_RXERROR_BREAK   0x00000004

Definition at line 175 of file uart.h.

#define UART_RXERROR_FRAMING   0x00000001

Definition at line 177 of file uart.h.

#define UART_RXERROR_OVERRUN   0x00000008

Definition at line 174 of file uart.h.

#define UART_RXERROR_PARITY   0x00000002

Definition at line 176 of file uart.h.