CC23x0R5DriverLibrary
[uart.h] Universal Asynchronous Receiver/Transmitter
Collaboration diagram for [uart.h] Universal Asynchronous Receiver/Transmitter:

Macros

#define UART_INT_EOT   (UART_IMSC_EOTIM)
 End Of Transmission Interrupt Mask. More...
 
#define UART_INT_OE   (UART_IMSC_OEIM)
 Overrun Error Interrupt Mask. More...
 
#define UART_INT_BE   (UART_IMSC_BEIM)
 Break Error Interrupt Mask. More...
 
#define UART_INT_PE   (UART_IMSC_PEIM)
 Parity Error Interrupt Mask. More...
 
#define UART_INT_FE   (UART_IMSC_FEIM)
 Framing Error Interrupt Mask. More...
 
#define UART_INT_RT   (UART_IMSC_RTIM)
 Receive Timeout Interrupt Mask. More...
 
#define UART_INT_RX   (UART_IMSC_RXIM)
 Receive Interrupt Mask. More...
 
#define UART_INT_TX   (UART_IMSC_TXIM)
 Transmit Interrupt Mask. More...
 
#define UART_INT_CTS   (UART_IMSC_CTSMIM)
 CTS Modem Interrupt Mask. More...
 
#define UART_INT_TXDMADONE   (UART_IMSC_TXDMADONEIM)
 Tx DMA done interrupt mask. More...
 
#define UART_INT_RXDMADONE   (UART_IMSC_RXDMADONEIM)
 Rx DMA done interrupt mask. More...
 
#define UART_CONFIG_WLEN_MASK   0x00000060
 Mask for extracting word length. More...
 
#define UART_CONFIG_WLEN_8   0x00000060
 8 bit data More...
 
#define UART_CONFIG_WLEN_7   0x00000040
 7 bit data More...
 
#define UART_CONFIG_WLEN_6   0x00000020
 6 bit data More...
 
#define UART_CONFIG_WLEN_5   0x00000000
 5 bit data More...
 
#define UART_CONFIG_STOP_MASK   0x00000008
 Mask for extracting stop bits. More...
 
#define UART_CONFIG_STOP_ONE   0x00000000
 One stop bit. More...
 
#define UART_CONFIG_STOP_TWO   0x00000008
 Two stop bits. More...
 
#define UART_CONFIG_PAR_MASK   0x00000086
 Mask for extracting parity. More...
 
#define UART_CONFIG_PAR_NONE   0x00000000
 No parity. More...
 
#define UART_CONFIG_PAR_EVEN   0x00000006
 Even parity. More...
 
#define UART_CONFIG_PAR_ODD   0x00000002
 Odd parity. More...
 
#define UART_CONFIG_PAR_ONE   0x00000082
 Parity bit is one. More...
 
#define UART_CONFIG_PAR_ZERO   0x00000086
 Parity bit is zero. More...
 
#define UART_FIFO_TX2_8   0x00000001
 Transmit interrupt at 1/4 Full. More...
 
#define UART_FIFO_TX4_8   0x00000002
 Transmit interrupt at 1/2 Full. More...
 
#define UART_FIFO_TX6_8   0x00000003
 Transmit interrupt at 3/4 Full. More...
 
#define UART_FIFO_RX2_8   0x00000008
 Receive interrupt at 1/4 Full. More...
 
#define UART_FIFO_RX4_8   0x00000010
 Receive interrupt at 1/2 Full. More...
 
#define UART_FIFO_RX6_8   0x00000018
 Receive interrupt at 3/4 Full. More...
 
#define UART_DMA_ERR_RXSTOP   0x00000004
 Stop DMA receive if UART error. More...
 
#define UART_DMA_TX   0x00000002
 Enable DMA for transmit. More...
 
#define UART_DMA_RX   0x00000001
 Enable DMA for receive. More...
 
#define UART_RXERROR_OVERRUN   0x00000008
 
#define UART_RXERROR_BREAK   0x00000004
 
#define UART_RXERROR_PARITY   0x00000002
 
#define UART_RXERROR_FRAMING   0x00000001
 

Functions

__STATIC_INLINE void UARTSetFifoLevel (uint32_t base, uint32_t txLevel, uint32_t rxLevel)
 Sets the FIFO level at which interrupts are generated. More...
 
void UARTConfigSetExpClk (uint32_t base, uint32_t UARTClkFreq, uint32_t baudFreq, uint32_t config)
 Sets the configuration of a UART. More...
 
void UARTDisable (uint32_t base)
 Disables transmitting and receiving. More...
 
__STATIC_INLINE void UARTEnableFifo (uint32_t base)
 Enables the transmit and receive FIFOs. More...
 
__STATIC_INLINE void UARTDisableFIFO (uint32_t base)
 Disables the transmit and receive FIFOs. More...
 
__STATIC_INLINE bool UARTCharAvailable (uint32_t base)
 Determines if there are any characters in the receive FIFO. More...
 
__STATIC_INLINE uint8_t UARTGetCharNonBlocking (uint32_t base)
 Receives a character from the specified port. More...
 
uint8_t UARTGetChar (uint32_t base)
 Waits for a character from the specified port. More...
 
__STATIC_INLINE bool UARTSpaceAvailable (uint32_t base)
 Determines if there is any space in the transmit FIFO. More...
 
__STATIC_INLINE void UARTPutCharNonBlocking (uint32_t base, uint8_t data)
 Sends a character to the specified port. More...
 
void UARTPutChar (uint32_t base, uint8_t data)
 Waits to send a character to the specified port. More...
 
__STATIC_INLINE bool UARTBusy (uint32_t base)
 Determines whether the UART transmitter is busy or not. More...
 
__STATIC_INLINE void UARTEnableInt (uint32_t base, uint32_t intFlags)
 Enables individual UART interrupt sources. More...
 
__STATIC_INLINE void UARTDisableInt (uint32_t base, uint32_t intFlags)
 Disables individual UART interrupt sources. More...
 
__STATIC_INLINE uint32_t UARTIntStatus (uint32_t base, bool masked)
 Gets the current interrupt status. More...
 
__STATIC_INLINE void UARTClearInt (uint32_t base, uint32_t intFlags)
 Clears UART interrupt sources. More...
 
__STATIC_INLINE void UARTEnableDMA (uint32_t base, uint32_t dmaFlags)
 Enable UART DMA operation. More...
 
__STATIC_INLINE void UARTDisableDMA (uint32_t base, uint32_t dmaFlags)
 Disable UART DMA operation. More...
 
__STATIC_INLINE uint32_t UARTGetRxError (uint32_t base)
 Gets current receiver errors. More...
 
__STATIC_INLINE void UARTClearRxError (uint32_t base)
 Clears all reported receiver errors. More...
 
__STATIC_INLINE void UARTEnableCTS (uint32_t base)
 Enable CTS flow control. More...
 
__STATIC_INLINE void UARTEnableRTS (uint32_t base)
 Enable RTS flow control. More...
 
__STATIC_INLINE void UARTDisableCTS (uint32_t base)
 Disable CTS flow control. More...
 
__STATIC_INLINE void UARTDisableRTS (uint32_t base)
 Disable RTS flow control. More...
 

Detailed Description

Macro Definition Documentation

§ UART_INT_EOT

#define UART_INT_EOT   (UART_IMSC_EOTIM)

End Of Transmission Interrupt Mask.

§ UART_INT_OE

#define UART_INT_OE   (UART_IMSC_OEIM)

Overrun Error Interrupt Mask.

§ UART_INT_BE

#define UART_INT_BE   (UART_IMSC_BEIM)

Break Error Interrupt Mask.

§ UART_INT_PE

#define UART_INT_PE   (UART_IMSC_PEIM)

Parity Error Interrupt Mask.

§ UART_INT_FE

#define UART_INT_FE   (UART_IMSC_FEIM)

Framing Error Interrupt Mask.

§ UART_INT_RT

#define UART_INT_RT   (UART_IMSC_RTIM)

Receive Timeout Interrupt Mask.

§ UART_INT_RX

#define UART_INT_RX   (UART_IMSC_RXIM)

Receive Interrupt Mask.

§ UART_INT_TX

#define UART_INT_TX   (UART_IMSC_TXIM)

Transmit Interrupt Mask.

§ UART_INT_CTS

#define UART_INT_CTS   (UART_IMSC_CTSMIM)

CTS Modem Interrupt Mask.

§ UART_INT_TXDMADONE

#define UART_INT_TXDMADONE   (UART_IMSC_TXDMADONEIM)

Tx DMA done interrupt mask.

§ UART_INT_RXDMADONE

#define UART_INT_RXDMADONE   (UART_IMSC_RXDMADONEIM)

Rx DMA done interrupt mask.

§ UART_CONFIG_WLEN_MASK

#define UART_CONFIG_WLEN_MASK   0x00000060

Mask for extracting word length.

§ UART_CONFIG_WLEN_8

#define UART_CONFIG_WLEN_8   0x00000060

8 bit data

§ UART_CONFIG_WLEN_7

#define UART_CONFIG_WLEN_7   0x00000040

7 bit data

§ UART_CONFIG_WLEN_6

#define UART_CONFIG_WLEN_6   0x00000020

6 bit data

§ UART_CONFIG_WLEN_5

#define UART_CONFIG_WLEN_5   0x00000000

5 bit data

§ UART_CONFIG_STOP_MASK

#define UART_CONFIG_STOP_MASK   0x00000008

Mask for extracting stop bits.

§ UART_CONFIG_STOP_ONE

#define UART_CONFIG_STOP_ONE   0x00000000

One stop bit.

§ UART_CONFIG_STOP_TWO

#define UART_CONFIG_STOP_TWO   0x00000008

Two stop bits.

§ UART_CONFIG_PAR_MASK

#define UART_CONFIG_PAR_MASK   0x00000086

Mask for extracting parity.

§ UART_CONFIG_PAR_NONE

#define UART_CONFIG_PAR_NONE   0x00000000

No parity.

§ UART_CONFIG_PAR_EVEN

#define UART_CONFIG_PAR_EVEN   0x00000006

Even parity.

§ UART_CONFIG_PAR_ODD

#define UART_CONFIG_PAR_ODD   0x00000002

Odd parity.

§ UART_CONFIG_PAR_ONE

#define UART_CONFIG_PAR_ONE   0x00000082

Parity bit is one.

§ UART_CONFIG_PAR_ZERO

#define UART_CONFIG_PAR_ZERO   0x00000086

Parity bit is zero.

§ UART_FIFO_TX2_8

#define UART_FIFO_TX2_8   0x00000001

Transmit interrupt at 1/4 Full.

Referenced by UARTSetFifoLevel().

§ UART_FIFO_TX4_8

#define UART_FIFO_TX4_8   0x00000002

Transmit interrupt at 1/2 Full.

Referenced by UARTSetFifoLevel().

§ UART_FIFO_TX6_8

#define UART_FIFO_TX6_8   0x00000003

Transmit interrupt at 3/4 Full.

Referenced by UARTSetFifoLevel().

§ UART_FIFO_RX2_8

#define UART_FIFO_RX2_8   0x00000008

Receive interrupt at 1/4 Full.

Referenced by UARTSetFifoLevel().

§ UART_FIFO_RX4_8

#define UART_FIFO_RX4_8   0x00000010

Receive interrupt at 1/2 Full.

Referenced by UARTSetFifoLevel().

§ UART_FIFO_RX6_8

#define UART_FIFO_RX6_8   0x00000018

Receive interrupt at 3/4 Full.

Referenced by UARTSetFifoLevel().

§ UART_DMA_ERR_RXSTOP

#define UART_DMA_ERR_RXSTOP   0x00000004

Stop DMA receive if UART error.

§ UART_DMA_TX

#define UART_DMA_TX   0x00000002

Enable DMA for transmit.

§ UART_DMA_RX

#define UART_DMA_RX   0x00000001

Enable DMA for receive.

§ UART_RXERROR_OVERRUN

#define UART_RXERROR_OVERRUN   0x00000008

§ UART_RXERROR_BREAK

#define UART_RXERROR_BREAK   0x00000004

§ UART_RXERROR_PARITY

#define UART_RXERROR_PARITY   0x00000002

§ UART_RXERROR_FRAMING

#define UART_RXERROR_FRAMING   0x00000001

Function Documentation

§ UARTSetFifoLevel()

__STATIC_INLINE void UARTSetFifoLevel ( uint32_t  base,
uint32_t  txLevel,
uint32_t  rxLevel 
)

Sets the FIFO level at which interrupts are generated.

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

Parameters
baseis the base address of the UART port.
txLevelis the transmit FIFO interrupt level, specified as one of:
rxLevelis the receive FIFO interrupt level, specified as one of:
Returns
None

References ASSERT, HWREG, UART_FIFO_RX2_8, UART_FIFO_RX4_8, UART_FIFO_RX6_8, UART_FIFO_TX2_8, UART_FIFO_TX4_8, UART_FIFO_TX6_8, UART_O_IFLS, UARTConfigSetExpClk(), and UARTDisable().

§ UARTConfigSetExpClk()

void UARTConfigSetExpClk ( uint32_t  base,
uint32_t  UARTClkFreq,
uint32_t  baudFreq,
uint32_t  config 
)

Sets the configuration of a UART.

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

Parameters
baseis the base address of the UART port.
UARTClkFreqis the rate of the clock supplied to the UART module.
baudFreqis the desired baud rate.
  • Minimum baud rate: baudFreq >= ceil(UARTClkFreq / 1,048,559.875)
  • Maximum baud rate: baudFreq <= floor(UARTClkFreq / 15.875)
configis the data format for the port. The parameter is the bitwise OR of three values:
Returns
None

References ASSERT, HWREG, UART_O_FBRD, UART_O_IBRD, UART_O_LCRH, and UARTDisable().

Referenced by UARTSetFifoLevel().

§ UARTDisable()

void UARTDisable ( uint32_t  base)

Disables transmitting and receiving.

This function waits until all data in the TX FIFO has been transmitted, and then clears the UARTEN, TXE, and RXE bits, and disables the FIFO.

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

References HWREG, UART_CTL_RXE, UART_CTL_TXE, UART_CTL_UARTEN, UART_FR_BUSY, UART_LCRH_FEN, UART_O_CTL, UART_O_FR, and UART_O_LCRH.

Referenced by UARTConfigSetExpClk(), and UARTSetFifoLevel().

§ UARTEnableFifo()

__STATIC_INLINE void UARTEnableFifo ( uint32_t  base)

Enables the transmit and receive FIFOs.

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

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

References HWREG, UART_LCRH_FEN, and UART_O_LCRH.

§ UARTDisableFIFO()

__STATIC_INLINE void UARTDisableFIFO ( uint32_t  base)

Disables the transmit and receive FIFOs.

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

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

References HWREG, UART_LCRH_FEN, and UART_O_LCRH.

§ UARTCharAvailable()

__STATIC_INLINE bool UARTCharAvailable ( uint32_t  base)

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
baseis 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.

References HWREG, UART_FR_RXFE, and UART_O_FR.

§ UARTGetCharNonBlocking()

__STATIC_INLINE uint8_t UARTGetCharNonBlocking ( uint32_t  base)

Receives a character from the specified port.

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

Note
The UARTCharAvailable() function should be called before attempting to call this function.
Parameters
[in]baseis the base address of the UART port.
Returns
Returns the character read from the specified port
See also
UARTCharAvailable()

References HWREGB, UART_O_DR, and UARTGetChar().

§ UARTGetChar()

uint8_t UARTGetChar ( uint32_t  base)

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
baseis the base address of the UART port.
Returns
Returns the character read from the specified port

References HWREG, UART_FR_RXFE, UART_O_DR, and UART_O_FR.

Referenced by UARTGetCharNonBlocking().

§ UARTSpaceAvailable()

__STATIC_INLINE bool UARTSpaceAvailable ( uint32_t  base)

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
baseis 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.

References HWREG, UART_FR_TXFF, and UART_O_FR.

§ UARTPutCharNonBlocking()

__STATIC_INLINE void UARTPutCharNonBlocking ( uint32_t  base,
uint8_t  data 
)

Sends a character to the specified port.

This function writes the character data to the transmit FIFO for the specified port.

Note
The UARTSpaceAvailable() function should be called before attempting to call this function.
Parameters
baseis the base address of the UART port.
datais the character to be transmitted.
Returns
None
See also
UARTSpaceAvailable()

References HWREG, UART_O_DR, and UARTPutChar().

§ UARTPutChar()

void UARTPutChar ( uint32_t  base,
uint8_t  data 
)

Waits to send a character to the specified port.

This function sends the character data 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
baseis the base address of the UART port.
datais the character to be transmitted.
Returns
None

References HWREG, UART_FR_TXFF, UART_O_DR, and UART_O_FR.

Referenced by UARTPutCharNonBlocking().

§ UARTBusy()

__STATIC_INLINE bool UARTBusy ( uint32_t  base)

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
baseis the base address of the UART port.
Returns
Returns status of UART transmitter.
  • true : UART is transmitting.
  • false : All transmissions are complete.

References HWREG, UART_FR_BUSY, and UART_O_FR.

§ UARTEnableInt()

__STATIC_INLINE void UARTEnableInt ( uint32_t  base,
uint32_t  intFlags 
)

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
baseis the base address of the UART port.
intFlagsis the bit mask of the interrupt sources to be enabled. The parameter is the bitwise OR of any of the following:
Returns
None

References HWREG, and UART_O_IMSC.

§ UARTDisableInt()

__STATIC_INLINE void UARTDisableInt ( uint32_t  base,
uint32_t  intFlags 
)

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
baseis the base address of the UART port.
intFlagsis the bit mask of the interrupt sources to be disabled.
Returns
None

References HWREG, and UART_O_IMSC.

§ UARTIntStatus()

__STATIC_INLINE uint32_t UARTIntStatus ( uint32_t  base,
bool  masked 
)

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
baseis the base address of the UART port.
maskedselects 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:

References HWREG, UART_O_MIS, and UART_O_RIS.

§ UARTClearInt()

__STATIC_INLINE void UARTClearInt ( uint32_t  base,
uint32_t  intFlags 
)

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
baseis the base address of the UART port.
intFlagsis a bit mask of the interrupt sources to be cleared.
Returns
None

References HWREG, and UART_O_ICR.

§ UARTEnableDMA()

__STATIC_INLINE void UARTEnableDMA ( uint32_t  base,
uint32_t  dmaFlags 
)

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
baseis the base address of the UART port.
dmaFlagsis 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

References HWREG, and UART_O_DMACTL.

§ UARTDisableDMA()

__STATIC_INLINE void UARTDisableDMA ( uint32_t  base,
uint32_t  dmaFlags 
)

Disable UART DMA operation.

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

Parameters
baseis the base address of the UART port.
dmaFlagsis 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

References HWREG, and UART_O_DMACTL.

§ UARTGetRxError()

__STATIC_INLINE uint32_t UARTGetRxError ( uint32_t  base)

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 UARTGetChar() or UARTGetCharNonBlocking() with the exception that the overrun error is set immediately the overrun occurs rather than when a character is next read.

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

References HWREG, and UART_O_RSR_ECR.

§ UARTClearRxError()

__STATIC_INLINE void UARTClearRxError ( uint32_t  base)

Clears all reported receiver errors.

This function is used to clear all receiver error conditions reported via UARTGetRxError(). 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
baseis the base address of the UART port.
Returns
None

References HWREG, and UART_O_RSR_ECR.

§ UARTEnableCTS()

__STATIC_INLINE void UARTEnableCTS ( uint32_t  base)

Enable CTS flow control.

Hardware flow control is disabled by default.

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

References HWREG, UART_CTL_CTSEN, and UART_O_CTL.

§ UARTEnableRTS()

__STATIC_INLINE void UARTEnableRTS ( uint32_t  base)

Enable RTS flow control.

Hardware flow control is disabled by default.

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

References HWREG, UART_CTL_RTSEN, and UART_O_CTL.

§ UARTDisableCTS()

__STATIC_INLINE void UARTDisableCTS ( uint32_t  base)

Disable CTS flow control.

Hardware flow control is disabled by default.

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

References HWREG, UART_CTL_CTSEN, and UART_O_CTL.

§ UARTDisableRTS()

__STATIC_INLINE void UARTDisableRTS ( uint32_t  base)

Disable RTS flow control.

Hardware flow control is disabled by default.

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

References HWREG, UART_CTL_RTSEN, and UART_O_CTL.