Data Structures | Macros | Typedefs | Functions
UART

eUSCI Universal Asynchronous Receiver/Transmitter (UART) serial communication module. More...

Data Structures

struct  _eUSCI_eUSCI_UART_Config
 Type definition for _eUSCI_UART_Config structure. More...
 

Macros

#define DEFAULT_SYNC   0x00
 
#define EUSCI_A_UART_AUTOMATICBAUDRATE_SYNC   0x55
 
#define EUSCI_A_UART_NO_PARITY   0x00
 
#define EUSCI_A_UART_ODD_PARITY   0x01
 
#define EUSCI_A_UART_EVEN_PARITY   0x02
 
#define EUSCI_A_UART_MSB_FIRST   EUSCI_A_CTLW0_MSB
 
#define EUSCI_A_UART_LSB_FIRST   0x00
 
#define EUSCI_A_UART_MODE   EUSCI_A_CTLW0_MODE_0
 
#define EUSCI_A_UART_IDLE_LINE_MULTI_PROCESSOR_MODE   EUSCI_A_CTLW0_MODE_1
 
#define EUSCI_A_UART_ADDRESS_BIT_MULTI_PROCESSOR_MODE   EUSCI_A_CTLW0_MODE_2
 
#define EUSCI_A_UART_AUTOMATIC_BAUDRATE_DETECTION_MODE   EUSCI_A_CTLW0_MODE_3
 
#define EUSCI_A_UART_CLOCKSOURCE_SMCLK   EUSCI_A_CTLW0_SSEL__SMCLK
 
#define EUSCI_A_UART_CLOCKSOURCE_ACLK   EUSCI_A_CTLW0_SSEL__ACLK
 
#define EUSCI_A_UART_ONE_STOP_BIT   0x00
 
#define EUSCI_A_UART_TWO_STOP_BITS   EUSCI_A_CTLW0_SPB
 
#define EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION   0x01
 
#define EUSCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION   0x00
 
#define EUSCI_A_UART_RECEIVE_INTERRUPT   EUSCI_A_IE_RXIE
 
#define EUSCI_A_UART_TRANSMIT_INTERRUPT   EUSCI_A_IE_TXIE
 
#define EUSCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT   EUSCI_A_CTLW0_RXEIE
 
#define EUSCI_A_UART_BREAKCHAR_INTERRUPT   EUSCI_A_CTLW0_BRKIE
 
#define EUSCI_A_UART_STARTBIT_INTERRUPT   EUSCI_A_IE_STTIE
 
#define EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT   EUSCI_B_IE_STPIE
 
#define EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG   EUSCI_A_IFG_RXIFG
 
#define EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG   EUSCI_A_IFG_TXIFG
 
#define EUSCI_A_UART_STARTBIT_INTERRUPT_FLAG   EUSCI_A_IFG_STTIFG
 
#define EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT_FLAG   EUSCI_A_IFG_TXCPTIFG
 
#define EUSCI_A_UART_LISTEN_ENABLE   EUSCI_A_STATW_LISTEN
 
#define EUSCI_A_UART_FRAMING_ERROR   EUSCI_A_STATW_FE
 
#define EUSCI_A_UART_OVERRUN_ERROR   EUSCI_A_STATW_OE
 
#define EUSCI_A_UART_PARITY_ERROR   EUSCI_A_STATW_PE
 
#define EUSCI_A_UART_BREAK_DETECT   EUSCI_A_STATW_BRK
 
#define EUSCI_A_UART_RECEIVE_ERROR   EUSCI_A_STATW_RXERR
 
#define EUSCI_A_UART_ADDRESS_RECEIVED   EUSCI_A_STATW_ADDR_IDLE
 
#define EUSCI_A_UART_IDLELINE   EUSCI_A_STATW_ADDR_IDLE
 
#define EUSCI_A_UART_BUSY   EUSCI_A_STATW_BUSY
 
#define EUSCI_A_UART_DEGLITCH_TIME_2ns   0x00
 
#define EUSCI_A_UART_DEGLITCH_TIME_50ns   0x0001
 
#define EUSCI_A_UART_DEGLITCH_TIME_100ns   0x0002
 
#define EUSCI_A_UART_DEGLITCH_TIME_200ns   (0x0001 + 0x0002)
 
#define EUSCI_A_UART_transmitData   UART_transmitData
 
#define EUSCI_A_UART_receiveData   UART_receiveData
 
#define EUSCI_A_UART_enableInterrupt   UART_enableInterrupt
 
#define EUSCI_A_UART_disableInterrupt   UART_disableInterrupt
 
#define EUSCI_A_UART_getInterruptStatus   UART_getInterruptStatus
 
#define EUSCI_A_UART_clearInterruptFlag   UART_clearInterruptFlag
 
#define EUSCI_A_UART_enable   UART_enableModule
 
#define EUSCI_A_UART_disable   UART_disableModule
 
#define EUSCI_A_UART_queryStatusFlags   UART_queryStatusFlags
 
#define EUSCI_A_UART_setDormant   UART_setDormant
 
#define EUSCI_A_UART_resetDormant   UART_resetDormant
 
#define EUSCI_A_UART_transmitAddress   UART_transmitAddress
 
#define EUSCI_A_UART_transmitBreak   UART_transmitBreak
 
#define EUSCI_A_UART_getReceiveBufferAddressForDMA   UART_getReceiveBufferAddressForDMA
 
#define EUSCI_A_UART_getTransmitBufferAddressForDMA   UART_getTransmitBufferAddressForDMA
 
#define EUSCI_A_UART_selectDeglitchTime   UART_selectDeglitchTime
 

Typedefs

typedef struct
_eUSCI_eUSCI_UART_Config 
eUSCI_UART_Config
 

Functions

bool UART_initModule (uint32_t moduleInstance, const eUSCI_UART_Config *config)
 
void UART_transmitData (uint32_t moduleInstance, uint_fast8_t transmitData)
 
uint8_t UART_receiveData (uint32_t moduleInstance)
 
void UART_enableModule (uint32_t moduleInstance)
 
void UART_disableModule (uint32_t moduleInstance)
 
uint_fast8_t UART_queryStatusFlags (uint32_t moduleInstance, uint_fast8_t mask)
 
void UART_setDormant (uint32_t moduleInstance)
 
void UART_resetDormant (uint32_t moduleInstance)
 
void UART_transmitAddress (uint32_t moduleInstance, uint_fast8_t transmitAddress)
 
void UART_transmitBreak (uint32_t moduleInstance)
 
uint32_t UART_getReceiveBufferAddressForDMA (uint32_t moduleInstance)
 
uint32_t UART_getTransmitBufferAddressForDMA (uint32_t moduleInstance)
 
void UART_selectDeglitchTime (uint32_t moduleInstance, uint32_t deglitchTime)
 
void UART_enableInterrupt (uint32_t moduleInstance, uint_fast8_t mask)
 
void UART_disableInterrupt (uint32_t moduleInstance, uint_fast8_t mask)
 
uint_fast8_t UART_getInterruptStatus (uint32_t moduleInstance, uint8_t mask)
 
uint_fast8_t UART_getEnabledInterruptStatus (uint32_t moduleInstance)
 
void UART_clearInterruptFlag (uint32_t moduleInstance, uint_fast8_t mask)
 
void UART_registerInterrupt (uint32_t moduleInstance, void(*intHandler)(void))
 
void UART_unregisterInterrupt (uint32_t moduleInstance)
 

Detailed Description

eUSCI Universal Asynchronous Receiver/Transmitter (UART) serial communication module.


Module Operation


The MSPWare library for UART mode features include:

The modes of operations supported by the UART and the library include

In UART mode, the USCI transmits and receives characters at a bit rate asynchronous to another device. Timing for each character is based on the selected baud rate of the USCI. The transmit and receive functions use the same baud-rate frequency.


Programming Example


The DriverLib package contains a variety of different code examples that demonstrate the usage of the UART module. These code examples are accessible under the examples/ folder of the MSPWare release as well as through TI Resource Explorer if using Code Composer Studio. These code examples provide a comprehensive list of use cases as well as practical applications involving each module.

Below is a very brief code example showing how to configure and enable the UART module. In the case of this example, we assume the MCLK is operating off of the DCO and the DCO is tuned to 12MHz. This makes the configuration parameters so that the baud rate is 9600.

Below is an example of the UART configuration parameter:

/* UART Configuration Parameter. These are the configuration parameters to
* make the eUSCI A UART module to operate with a 9600 baud rate. These
* values were calculated using the online calculator that TI provides
* at:
*https://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430BaudRateConverter/index.html
*/
const eUSCI_UART_Config uartConfig =
{
EUSCI_A_UART_CLOCKSOURCE_SMCLK, // SMCLK Clock Source
78, // BRDIV = 78
2, // UCxBRF = 2
0, // UCxBRS = 0
EUSCI_A_UART_NO_PARITY, // No Parity
EUSCI_A_UART_LSB_FIRST, // LSB First
EUSCI_A_UART_ONE_STOP_BIT, // One stop bit
EUSCI_A_UART_MODE, // UART mode
};

This code snippet is the actual configuration of the UART module using the DriverLib APIs:

/* Configuring UART Module */
MAP_UART_initModule(EUSCI_A0_BASE, &uartConfig);
/* Enable UART module */
MAP_UART_enableModule(EUSCI_A0_BASE);
/* Enabling interrupts */

Macro Definition Documentation

#define DEFAULT_SYNC   0x00

Referenced by UART_transmitBreak().

#define EUSCI_A_UART_AUTOMATICBAUDRATE_SYNC   0x55

Referenced by UART_transmitBreak().

#define EUSCI_A_UART_NO_PARITY   0x00

Referenced by UART_initModule().

#define EUSCI_A_UART_ODD_PARITY   0x01

Referenced by UART_initModule().

#define EUSCI_A_UART_EVEN_PARITY   0x02

Referenced by UART_initModule().

#define EUSCI_A_UART_MSB_FIRST   EUSCI_A_CTLW0_MSB

Referenced by UART_initModule().

#define EUSCI_A_UART_LSB_FIRST   0x00

Referenced by UART_initModule().

#define EUSCI_A_UART_MODE   EUSCI_A_CTLW0_MODE_0

Referenced by UART_initModule().

#define EUSCI_A_UART_IDLE_LINE_MULTI_PROCESSOR_MODE   EUSCI_A_CTLW0_MODE_1

Referenced by UART_initModule().

#define EUSCI_A_UART_ADDRESS_BIT_MULTI_PROCESSOR_MODE   EUSCI_A_CTLW0_MODE_2

Referenced by UART_initModule().

#define EUSCI_A_UART_AUTOMATIC_BAUDRATE_DETECTION_MODE   EUSCI_A_CTLW0_MODE_3
#define EUSCI_A_UART_CLOCKSOURCE_SMCLK   EUSCI_A_CTLW0_SSEL__SMCLK

Referenced by UART_initModule().

#define EUSCI_A_UART_CLOCKSOURCE_ACLK   EUSCI_A_CTLW0_SSEL__ACLK

Referenced by UART_initModule().

#define EUSCI_A_UART_ONE_STOP_BIT   0x00

Referenced by UART_initModule().

#define EUSCI_A_UART_TWO_STOP_BITS   EUSCI_A_CTLW0_SPB

Referenced by UART_initModule().

#define EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION   0x01
#define EUSCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION   0x00
#define EUSCI_A_UART_RECEIVE_INTERRUPT   EUSCI_A_IE_RXIE
#define EUSCI_A_UART_TRANSMIT_INTERRUPT   EUSCI_A_IE_TXIE
#define EUSCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT   EUSCI_A_CTLW0_RXEIE
#define EUSCI_A_UART_BREAKCHAR_INTERRUPT   EUSCI_A_CTLW0_BRKIE
#define EUSCI_A_UART_STARTBIT_INTERRUPT   EUSCI_A_IE_STTIE
#define EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT   EUSCI_B_IE_STPIE
#define EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG   EUSCI_A_IFG_RXIFG
#define EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG   EUSCI_A_IFG_TXIFG
#define EUSCI_A_UART_STARTBIT_INTERRUPT_FLAG   EUSCI_A_IFG_STTIFG
#define EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT_FLAG   EUSCI_A_IFG_TXCPTIFG
#define EUSCI_A_UART_LISTEN_ENABLE   EUSCI_A_STATW_LISTEN

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_FRAMING_ERROR   EUSCI_A_STATW_FE

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_OVERRUN_ERROR   EUSCI_A_STATW_OE

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_PARITY_ERROR   EUSCI_A_STATW_PE

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_BREAK_DETECT   EUSCI_A_STATW_BRK

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_RECEIVE_ERROR   EUSCI_A_STATW_RXERR

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_ADDRESS_RECEIVED   EUSCI_A_STATW_ADDR_IDLE

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_IDLELINE   EUSCI_A_STATW_ADDR_IDLE

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_BUSY   EUSCI_A_STATW_BUSY

Referenced by UART_queryStatusFlags().

#define EUSCI_A_UART_DEGLITCH_TIME_2ns   0x00

Referenced by UART_selectDeglitchTime().

#define EUSCI_A_UART_DEGLITCH_TIME_50ns   0x0001

Referenced by UART_selectDeglitchTime().

#define EUSCI_A_UART_DEGLITCH_TIME_100ns   0x0002

Referenced by UART_selectDeglitchTime().

#define EUSCI_A_UART_DEGLITCH_TIME_200ns   (0x0001 + 0x0002)

Referenced by UART_selectDeglitchTime().

#define EUSCI_A_UART_transmitData   UART_transmitData
#define EUSCI_A_UART_receiveData   UART_receiveData
#define EUSCI_A_UART_enableInterrupt   UART_enableInterrupt
#define EUSCI_A_UART_disableInterrupt   UART_disableInterrupt
#define EUSCI_A_UART_getInterruptStatus   UART_getInterruptStatus
#define EUSCI_A_UART_clearInterruptFlag   UART_clearInterruptFlag
#define EUSCI_A_UART_enable   UART_enableModule
#define EUSCI_A_UART_disable   UART_disableModule
#define EUSCI_A_UART_queryStatusFlags   UART_queryStatusFlags
#define EUSCI_A_UART_setDormant   UART_setDormant
#define EUSCI_A_UART_resetDormant   UART_resetDormant
#define EUSCI_A_UART_transmitAddress   UART_transmitAddress
#define EUSCI_A_UART_transmitBreak   UART_transmitBreak
#define EUSCI_A_UART_getReceiveBufferAddressForDMA   UART_getReceiveBufferAddressForDMA
#define EUSCI_A_UART_getTransmitBufferAddressForDMA   UART_getTransmitBufferAddressForDMA
#define EUSCI_A_UART_selectDeglitchTime   UART_selectDeglitchTime

Typedef Documentation

Function Documentation

bool UART_initModule ( uint32_t  moduleInstance,
const eUSCI_UART_Config config 
)

Initialization routine for the UART block. The values to be written into the UCAxBRW and UCAxMCTLW registers should be pre-computed and passed into the initialization function

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
configConfiguration structure for the UART module

Configuration options for eUSCI_UART_Config structure.



It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode.

Parameters
selectClockSourceselects Clock source. Valid values are
  • EUSCI_A_UART_CLOCKSOURCE_SMCLK
  • EUSCI_A_UART_CLOCKSOURCE_ACLK
clockPrescalaris the value to be written into UCBRx bits
firstModRegis First modulation stage register setting. This value is a pre-calculated value which can be obtained from the Device User Guide.This value is written into UCBRFx bits of UCAxMCTLW.
secondModRegis Second modulation stage register setting. This value is a pre-calculated value which can be obtained from the Device User Guide. This value is written into UCBRSx bits of UCAxMCTLW.
parityis the desired parity. Valid values are
  • EUSCI_A_UART_NO_PARITY [Default Value],
  • EUSCI_A_UART_ODD_PARITY,
  • EUSCI_A_UART_EVEN_PARITY
msborLsbFirstcontrols direction of receive and transmit shift register. Valid values are
  • EUSCI_A_UART_MSB_FIRST
  • EUSCI_A_UART_LSB_FIRST [Default Value]
numberofStopBitsindicates one/two STOP bits Valid values are
  • EUSCI_A_UART_ONE_STOP_BIT [Default Value]
  • EUSCI_A_UART_TWO_STOP_BITS
uartModeselects the mode of operation Valid values are
  • EUSCI_A_UART_MODE [Default Value],
  • EUSCI_A_UART_IDLE_LINE_MULTI_PROCESSOR_MODE,
  • EUSCI_A_UART_ADDRESS_BIT_MULTI_PROCESSOR_MODE,
  • EUSCI_A_UART_AUTOMATIC_BAUDRATE_DETECTION_MODE
overSamplingindicates low frequency or oversampling baud generation Valid values are
  • EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION
  • EUSCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION

Upon successful initialization of the UART block, this function will have initialized the module, but the UART block still remains disabled and must be enabled with UART_enableModule()

Refer to this calculator for help on calculating values for the parameters.

Modified bits are UCPEN, UCPAR, UCMSB, UC7BIT, UCSPB, UCMODEx, UCSYNC bits of UCAxCTL0 and UCSSELx, UCSWRST bits of UCAxCTL1

Returns
true or STATUS_FAIL of the initialization process

References ASSERT, _eUSCI_eUSCI_UART_Config::clockPrescalar, EUSCI_A_CMSIS, EUSCI_A_UART_ADDRESS_BIT_MULTI_PROCESSOR_MODE, EUSCI_A_UART_AUTOMATIC_BAUDRATE_DETECTION_MODE, EUSCI_A_UART_CLOCKSOURCE_ACLK, EUSCI_A_UART_CLOCKSOURCE_SMCLK, EUSCI_A_UART_EVEN_PARITY, EUSCI_A_UART_IDLE_LINE_MULTI_PROCESSOR_MODE, EUSCI_A_UART_LSB_FIRST, EUSCI_A_UART_MODE, EUSCI_A_UART_MSB_FIRST, EUSCI_A_UART_NO_PARITY, EUSCI_A_UART_ODD_PARITY, EUSCI_A_UART_ONE_STOP_BIT, EUSCI_A_UART_TWO_STOP_BITS, _eUSCI_eUSCI_UART_Config::firstModReg, _eUSCI_eUSCI_UART_Config::msborLsbFirst, _eUSCI_eUSCI_UART_Config::numberofStopBits, _eUSCI_eUSCI_UART_Config::overSampling, _eUSCI_eUSCI_UART_Config::parity, _eUSCI_eUSCI_UART_Config::secondModReg, _eUSCI_eUSCI_UART_Config::selectClockSource, and _eUSCI_eUSCI_UART_Config::uartMode.

void UART_transmitData ( uint32_t  moduleInstance,
uint_fast8_t  transmitData 
)

Transmits a byte from the UART Module.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
transmitDatadata to be transmitted from the UART module

This function will place the supplied data into UART transmit data register to start transmission

Modified register is UCAxTXBUF

Returns
None.

References EUSCI_A_CMSIS.

uint8_t UART_receiveData ( uint32_t  moduleInstance)

Receives a byte that has been sent to the UART Module.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode

This function reads a byte of data from the UART receive data Register.

Modified register is UCAxRXBUF

Returns
Returns the byte received from by the UART module, cast as an uint8_t.

References EUSCI_A_CMSIS.

void UART_enableModule ( uint32_t  moduleInstance)

Enables the UART block.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode

This will enable operation of the UART block.

Modified register is UCAxCTL1

Returns
None.

References EUSCI_A_CMSIS.

void UART_disableModule ( uint32_t  moduleInstance)

Disables the UART block.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode

This will disable operation of the UART block.

Modified register is UCAxCTL1

Returns
None.

References EUSCI_A_CMSIS.

uint_fast8_t UART_queryStatusFlags ( uint32_t  moduleInstance,
uint_fast8_t  mask 
)

Gets the current UART status flags.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
maskis the masked interrupt flag status to be returned.

This returns the status for the UART module based on which flag is passed. mask parameter can be either any of the following selection.

  • EUSCI_A_UART_LISTEN_ENABLE
  • EUSCI_A_UART_FRAMING_ERROR
  • EUSCI_A_UART_OVERRUN_ERROR
  • EUSCI_A_UART_PARITY_ERROR
  • eUARTBREAK_DETECT
  • EUSCI_A_UART_RECEIVE_ERROR
  • EUSCI_A_UART_ADDRESS_RECEIVED
  • EUSCI_A_UART_IDLELINE
  • EUSCI_A_UART_BUSY

Modified register is UCAxSTAT

Returns
the masked status flag

References ASSERT, EUSCI_A_CMSIS, EUSCI_A_UART_ADDRESS_RECEIVED, EUSCI_A_UART_BREAK_DETECT, EUSCI_A_UART_BUSY, EUSCI_A_UART_FRAMING_ERROR, EUSCI_A_UART_IDLELINE, EUSCI_A_UART_LISTEN_ENABLE, EUSCI_A_UART_OVERRUN_ERROR, EUSCI_A_UART_PARITY_ERROR, and EUSCI_A_UART_RECEIVE_ERROR.

void UART_setDormant ( uint32_t  moduleInstance)

Sets the UART module in dormant mode

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode

Puts USCI in sleep mode Only characters that are preceded by an idle-line or with address bit set UCRXIFG. In UART mode with automatic baud-rate detection, only the combination of a break and synch field sets UCRXIFG.

Modified register is UCAxCTL1

Returns
None.

References EUSCI_A_CMSIS.

void UART_resetDormant ( uint32_t  moduleInstance)

Re-enables UART module from dormant mode

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode

Not dormant. All received characters set UCRXIFG.

Modified bits are UCDORM of UCAxCTL1 register.

Returns
None.

References EUSCI_A_CMSIS.

void UART_transmitAddress ( uint32_t  moduleInstance,
uint_fast8_t  transmitAddress 
)

Transmits the next byte to be transmitted marked as address depending on selected multiprocessor mode

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
transmitAddressis the next byte to be transmitted

Modified register is UCAxCTL1, UCAxTXBUF

Returns
None.

References EUSCI_A_CMSIS.

void UART_transmitBreak ( uint32_t  moduleInstance)

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud-rate detection, EUSCI_A_UART_AUTOMATICBAUDRATE_SYNC(0x55) must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise, DEFAULT_SYNC(0x00) must be written into the transmit buffer. Also ensures module is ready for transmitting the next data

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such asEUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode

Modified register is UCAxCTL1, UCAxTXBUF

Returns
None.

References DEFAULT_SYNC, EUSCI_A_CMSIS, EUSCI_A_UART_AUTOMATIC_BAUDRATE_DETECTION_MODE, and EUSCI_A_UART_AUTOMATICBAUDRATE_SYNC.

uint32_t UART_getReceiveBufferAddressForDMA ( uint32_t  moduleInstance)

Returns the address of the RX Buffer of the UART for the DMA module.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode

Returns the address of the UART RX Buffer. This can be used in conjunction with the DMA to store the received data directly to memory.

Returns
None

References EUSCI_A_CMSIS.

uint32_t UART_getTransmitBufferAddressForDMA ( uint32_t  moduleInstance)

Returns the address of the TX Buffer of the UART for the DMA module.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode

Returns the address of the UART TX Buffer. This can be used in conjunction with the DMA to obtain transmitted data directly from memory.

Returns
None

References EUSCI_B_CMSIS.

void UART_selectDeglitchTime ( uint32_t  moduleInstance,
uint32_t  deglitchTime 
)

Sets the deglitch time

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
deglitchTimeis the selected deglitch time Valid values are
  • EUSCI_A_UART_DEGLITCH_TIME_2ns
  • EUSCI_A_UART_DEGLITCH_TIME_50ns
  • EUSCI_A_UART_DEGLITCH_TIME_100ns
  • EUSCI_A_UART_DEGLITCH_TIME_200ns

Returns the address of the UART TX Buffer. This can be used in conjunction with the DMA to obtain transmitted data directly from memory.

Returns
None

References ASSERT, EUSCI_A_CMSIS, EUSCI_A_UART_DEGLITCH_TIME_100ns, EUSCI_A_UART_DEGLITCH_TIME_200ns, EUSCI_A_UART_DEGLITCH_TIME_2ns, and EUSCI_A_UART_DEGLITCH_TIME_50ns.

void UART_enableInterrupt ( uint32_t  moduleInstance,
uint_fast8_t  mask 
)

Enables individual UART interrupt sources.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
maskis the bit mask of the interrupt sources to be enabled.

Enables the indicated UART interrupt sources. The interrupt flag is first and then the corresponding interrupt is enabled. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

The mask parameter is the logical OR of any of the following:

  • EUSCI_A_UART_RECEIVE_INTERRUPT -Receive interrupt
  • EUSCI_A_UART_TRANSMIT_INTERRUPT - Transmit interrupt
  • EUSCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT - Receive erroneous-character interrupt enable
  • EUSCI_A_UART_BREAKCHAR_INTERRUPT - Receive break character interrupt enable

Modified register is UCAxIFG, UCAxIE and UCAxCTL1

Returns
None.

References ASSERT, EUSCI_A_CMSIS, EUSCI_A_UART_BREAKCHAR_INTERRUPT, EUSCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT, EUSCI_A_UART_RECEIVE_INTERRUPT, EUSCI_A_UART_STARTBIT_INTERRUPT, EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT, and EUSCI_A_UART_TRANSMIT_INTERRUPT.

void UART_disableInterrupt ( uint32_t  moduleInstance,
uint_fast8_t  mask 
)

Disables individual UART interrupt sources.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
maskis the bit mask of the interrupt sources to be disabled.

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.

The mask parameter is the logical OR of any of the following:

  • EUSCI_A_UART_RECEIVE_INTERRUPT -Receive interrupt
  • EUSCI_A_UART_TRANSMIT_INTERRUPT - Transmit interrupt
  • EUSCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT - Receive erroneous-character interrupt enable
  • EUSCI_A_UART_BREAKCHAR_INTERRUPT - Receive break character interrupt enable

Modified register is UCAxIFG, UCAxIE and UCAxCTL1

Returns
None.

References ASSERT, EUSCI_A_CMSIS, EUSCI_A_UART_BREAKCHAR_INTERRUPT, EUSCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT, EUSCI_A_UART_RECEIVE_INTERRUPT, EUSCI_A_UART_STARTBIT_INTERRUPT, EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT, and EUSCI_A_UART_TRANSMIT_INTERRUPT.

uint_fast8_t UART_getInterruptStatus ( uint32_t  moduleInstance,
uint8_t  mask 
)

Gets the current UART interrupt status.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
maskis the masked interrupt flag status to be returned. Mask value is the logical OR of any of the following:
  • EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG
  • EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG
  • EUSCI_A_UART_STARTBIT_INTERRUPT_FLAG
  • EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT_FLAG
Returns
The current interrupt status as an ORed bit mask:
  • EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG -Receive interrupt flag
  • EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG - Transmit interrupt flag

References ASSERT, EUSCI_A_CMSIS, EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG, EUSCI_A_UART_STARTBIT_INTERRUPT_FLAG, EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT_FLAG, and EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG.

Referenced by UART_getEnabledInterruptStatus().

uint_fast8_t UART_getEnabledInterruptStatus ( uint32_t  moduleInstance)

Gets the current UART interrupt status masked with the enabled interrupts. This function is useful to call in ISRs to get a list of pending interrupts that are actually enabled and could have caused the ISR.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
Returns
The current interrupt status as an ORed bit mask:
  • EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG -Receive interrupt flag
  • EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG - Transmit interrupt flag

References EUSCI_A_CMSIS, EUSCI_A_UART_BREAKCHAR_INTERRUPT, EUSCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT, EUSCI_A_UART_RECEIVE_INTERRUPT, EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG, EUSCI_A_UART_TRANSMIT_INTERRUPT, EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG, and UART_getInterruptStatus().

void UART_clearInterruptFlag ( uint32_t  moduleInstance,
uint_fast8_t  mask 
)

Clears UART interrupt sources.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode
maskis a bit mask of the interrupt sources to be cleared.

The UART interrupt source is cleared, so that it no longer asserts. The highest interrupt flag is automatically cleared when an interrupt vector generator is used.

The mask parameter has the same definition as the mask parameter to EUSCI_A_UART_enableInterrupt().

Modified register is UCAxIFG

Returns
None.

References ASSERT, EUSCI_A_CMSIS, EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG, EUSCI_A_UART_STARTBIT_INTERRUPT_FLAG, EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT_FLAG, and EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG.

void UART_registerInterrupt ( uint32_t  moduleInstance,
void(*)(void)  intHandler 
)

Registers an interrupt handler for UART interrupts.

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode.
intHandleris a pointer to the function to be called when the timer capture compare interrupt occurs.

This function registers the handler to be called when an UART interrupt occurs. This function enables the global interrupt in the interrupt controller; specific UART interrupts must be enabled via UART_enableInterrupt(). It is the interrupt handler's responsibility to clear the interrupt source via UART_clearInterruptFlag().

Returns
None.

References ASSERT, INT_EUSCIA0, INT_EUSCIA1, INT_EUSCIA2, INT_EUSCIA3, Interrupt_enableInterrupt(), and Interrupt_registerInterrupt().

void UART_unregisterInterrupt ( uint32_t  moduleInstance)

Unregisters the interrupt handler for the UART module

Parameters
moduleInstanceis the instance of the eUSCI A (UART) module. Valid parameters vary from part to part, but can include:
  • EUSCI_A0_BASE
  • EUSCI_A1_BASE
  • EUSCI_A2_BASE
  • EUSCI_A3_BASE
    It is important to note that for eUSCI modules, only "A" modules such as EUSCI_A0 can be used. "B" modules such as EUSCI_B0 do not support the UART mode.

This function unregisters the handler to be called when timer interrupt occurs. This function also masks off the interrupt in the interrupt controller so that the interrupt handler no longer is called.

See also
Interrupt_registerInterrupt() for important information about registering interrupt handlers.
Returns
None.

References ASSERT, INT_EUSCIA0, INT_EUSCIA1, INT_EUSCIA2, INT_EUSCIA3, Interrupt_disableInterrupt(), and Interrupt_unregisterInterrupt().


Copyright 2016, Texas Instruments Incorporated