# SCI Module

The SCI driver provides functions which can configure the data word length, baud rate, parity, and stop bits of the SCI communication. It can also be used to perform an autobaud lock, enable or disable loopback mode, enable the FIFO enhancement, configure interrupts, and send and receive data. If FIFO enhancement is enabled, the application must use the provided FIFO read and write functions to guarantee proper execution.

group `sci_api`

  Defines

  `SCI_INT_RXERR` 0x01U

    RXERR interrupt.

  `SCI_INT_RXRDY_BRKDT` 0x02U

    RXRDY interrupt.

  `SCI_INT_TXRDY` 0x04U

    TXRDY interrupt.

  `SCI_INT_TXFF` 0x08U

    TX FIFO level interrupt.

  `SCI_INT_RXFF` 0x10U

    RX FIFO level interrupt.

  `SCI_INT_FE` 0x20U

    Frame Error.

  `SCI_INT_OE` 0x40U

    Overrun Error.

  `SCI_INT_PE` 0x80U

    Parity Error.

  `SCI_CONFIG_WLEN_MASK` 0x0007U

    Mask for extracting word length.

  `SCI_CONFIG_WLEN_8` 0x0007U

    8 bit data

  `SCI_CONFIG_WLEN_7` 0x0006U

    7 bit data

  `SCI_CONFIG_WLEN_6` 0x0005U

    6 bit data

  `SCI_CONFIG_WLEN_5` 0x0004U

    5 bit data

  `SCI_CONFIG_WLEN_4` 0x0003U

    4 bit data

  `SCI_CONFIG_WLEN_3` 0x0002U

    3 bit data

  `SCI_CONFIG_WLEN_2` 0x0001U

    2 bit data

  `SCI_CONFIG_WLEN_1` 0x0000U

    1 bit data

  `SCI_CONFIG_STOP_MASK` 0x0080U

    Mask for extracting stop bits.

  `SCI_CONFIG_STOP_ONE` 0x0000U

    One stop bit.

  `SCI_CONFIG_STOP_TWO` 0x0080U

    Two stop bits.

  `SCI_CONFIG_PAR_MASK` 0x0060U

    Parity Mask.

  `SCI_RXSTATUS_WAKE` 0x0002U

    Receiver wake up detect.

  `SCI_RXSTATUS_PARITY` 0x0004U

    Parity error.

  `SCI_RXSTATUS_OVERRUN` 0x0008U

    Overrun error.

  `SCI_RXSTATUS_FRAMING` 0x0010U

    Framing error.

  `SCI_RXSTATUS_BREAK` 0x0020U

    Break detect.

  `SCI_RXSTATUS_READY` 0x0040U

    Receiver ready.

  `SCI_RXSTATUS_ERROR` 0x0080U

    Receiver error.

  Enums

  enum `SCI_ParityType`

    Values that can be used with SCI_setParityMode() and SCI_getParityMode() to describe the parity of the SCI communication.

    Values:

    enumerator `SCI_CONFIG_PAR_NONE` = 0x0000U

      No parity.

    enumerator `SCI_CONFIG_PAR_EVEN` = 0x0060U

      Even parity.

    enumerator `SCI_CONFIG_PAR_ODD` = 0x0020U

      Odd parity.

  enum `SCI_TxFIFOLevel`

    Values that can be passed to SCI_setFIFOInterruptLevel() as the txLevel parameter and returned by SCI_getFIFOInteruptLevel() and SCI_getTxFIFOStatus().

    Values:

    enumerator `SCI_FIFO_TX0` = 0x0000U

      Transmit interrupt empty.

    enumerator `SCI_FIFO_TX1` = 0x0001U

      Transmit interrupt 1/16 full.

    enumerator `SCI_FIFO_TX2` = 0x0002U

      Transmit interrupt 2/16 full.

    enumerator `SCI_FIFO_TX3` = 0x0003U

      Transmit interrupt 3/16 full.

    enumerator `SCI_FIFO_TX4` = 0x0004U

      Transmit interrupt 4/16 full.

    enumerator `SCI_FIFO_TX5` = 0x0005U

      Transmit interrupt 5/16 full.

    enumerator `SCI_FIFO_TX6` = 0x0006U

      Transmit interrupt 6/16 full.

    enumerator `SCI_FIFO_TX7` = 0x0007U

      Transmit interrupt 7/16 full.

    enumerator `SCI_FIFO_TX8` = 0x0008U

      Transmit interrupt 8/16 full.

    enumerator `SCI_FIFO_TX9` = 0x0009U

      Transmit interrupt 9/16 full.

    enumerator `SCI_FIFO_TX10` = 0x000AU

      Transmit interrupt 10/16 full.

    enumerator `SCI_FIFO_TX11` = 0x000BU

      Transmit interrupt 11/16 full.

    enumerator `SCI_FIFO_TX12` = 0x000CU

      Transmit interrupt 12/16 full.

    enumerator `SCI_FIFO_TX13` = 0x000DU

      Transmit interrupt 13/16 full.

    enumerator `SCI_FIFO_TX14` = 0x000EU

      Transmit interrupt 14/16 full.

    enumerator `SCI_FIFO_TX15` = 0x000FU

      Transmit interrupt 15/16 full.

    enumerator `SCI_FIFO_TX16` = 0x0010U

      Transmit interrupt full.

  enum `SCI_RxFIFOLevel`

    Values that can be passed to SCI_setFIFOInterruptLevel() as the rxLevel parameter and returned by SCI_getFIFOInterruptLevel() and SCI_getRxFIFOStatus().

    Values:

    enumerator `SCI_FIFO_RX0` = 0x0000U

      Receive interrupt empty.

    enumerator `SCI_FIFO_RX1` = 0x0001U

      Receive interrupt 1/16 full.

    enumerator `SCI_FIFO_RX2` = 0x0002U

      Receive interrupt 2/16 full.

    enumerator `SCI_FIFO_RX3` = 0x0003U

      Receive interrupt 3/16 full.

    enumerator `SCI_FIFO_RX4` = 0x0004U

      Receive interrupt 4/16 full.

    enumerator `SCI_FIFO_RX5` = 0x0005U

      Receive interrupt 5/16 full.

    enumerator `SCI_FIFO_RX6` = 0x0006U

      Receive interrupt 6/16 full.

    enumerator `SCI_FIFO_RX7` = 0x0007U

      Receive interrupt 7/16 full.

    enumerator `SCI_FIFO_RX8` = 0x0008U

      Receive interrupt 8/16 full.

    enumerator `SCI_FIFO_RX9` = 0x0009U

      Receive interrupt 9/16 full.

    enumerator `SCI_FIFO_RX10` = 0x000AU

      Receive interrupt 10/16 full.

    enumerator `SCI_FIFO_RX11` = 0x000BU

      Receive interrupt 11/16 full.

    enumerator `SCI_FIFO_RX12` = 0x000CU

      Receive interrupt 12/16 full.

    enumerator `SCI_FIFO_RX13` = 0x000DU

      Receive interrupt 13/16 full.

    enumerator `SCI_FIFO_RX14` = 0x000EU

      Receive interrupt 14/16 full.

    enumerator `SCI_FIFO_RX15` = 0x000FU

      Receive interrupt 15/16 full.

    enumerator `SCI_FIFO_RX16` = 0x0010U

      Receive interrupt full.

  Functions

  void `SCI_setParityMode`(uint32_t base, SCI_ParityType parity)

    Sets the type of parity.

    Sets the type of parity to use for transmitting and expect when receiving. The

    parity parameter must be one of the following: SCI_CONFIG_PAR_NONE, SCI_CONFIG_PAR_EVEN, SCI_CONFIG_PAR_ODD.
    Parameters

      - `base`: is the base address of the SCI port.

      - `parity`: specifies the type of parity to use.

    Return

      None.

  SCI_ParityType `SCI_getParityMode`(uint32_t base)

    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

      - `base`: is the base address of the SCI port.

    Return

      Returns the current parity settings, specified as one of the following: SCI_CONFIG_PAR_NONE, SCI_CONFIG_PAR_EVEN, SCI_CONFIG_PAR_ODD.

  void `SCI_setAddrMultiProcessorMode`(uint32_t base)

    Sets the multiprocessor protocol to address-bit mode.

    This function sets the multi-processor protocol to address-bit mode.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_setIdleMultiProcessorMode`(uint32_t base)

    Sets the multiprocessor protocol to idle-line mode.

    This function sets the multi-processor protocol to idle-line protocol.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_lockAutobaud`(uint32_t base)

    Locks Autobaud.

    This function performs an autobaud lock for the SCI.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_setFIFOInterruptLevel`(uint32_t base, SCI_TxFIFOLevel txLevel, SCI_RxFIFOLevel rxLevel)

    Sets the FIFO interrupt level at which interrupts are generated.

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

    Parameters

      - `base`: is the base address of the SCI port.

      - `txLevel`: is the transmit FIFO interrupt level, specified as one of the following: SCI_FIFO_TX0, SCI_FIFO_TX1, SCI_FIFO_TX2, … or SCI_FIFO_TX16.

      - `rxLevel`: is the receive FIFO interrupt level, specified as one of the following SCI_FIFO_RX0, SCI_FIFO_RX1, SCI_FIFO_RX2, … or SCI_FIFO_RX16.

    Return

      None.

  void `SCI_getFIFOInterruptLevel`(uint32_t base, SCI_TxFIFOLevel *txLevel, SCI_RxFIFOLevel *rxLevel)

    Gets the FIFO interrupt level at which interrupts are generated.

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

    Parameters

      - `base`: is the base address of the SCI port.

      - `txLevel`: is a pointer to storage for the transmit FIFO interrupt level, returned as one of the following: SCI_FIFO_TX0, SCI_FIFO_TX1, SCI_FIFO_TX2, … or SCI_FIFO_TX16.

      - `rxLevel`: is a pointer to storage for the receive FIFO interrupt level, returned as one of the following: SCI_FIFO_RX0, SCI_FIFO_RX1, SCI_FIFO_RX2, … or SCI_FIFO_RX16.

    Return

      None.

  void `SCI_getConfig`(uint32_t base, uint32_t lspclkHz, uint32_t *baud, uint32_t *config)

    Gets the current configuration of a SCI.

    The baud rate and data format for the SCI 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 config is enumerated the same as the config parameter of SCI_setConfig().
    Parameters

      - `base`: is the base address of the SCI port.

      - `lspclkHz`: is the rate of the clock supplied to the SCI module. This is the LSPCLK.

      - `baud`: is a pointer to storage for the baud rate.

      - `config`: is a pointer to storage for the data format.

    The peripheral clock is the low speed peripheral clock. This will be the value returned by SysCtl_getLowSeedClock(), or it can be explicitly hard coded if it is constant and known (to save the code/execution overhead of a call to SysCtl_getLowSpeedClock()).

    Return

      None.

  void `SCI_enableModule`(uint32_t base)

    Enables transmitting and receiving.

    Enables SCI by taking SCI out of the software reset. Sets the TXENA, and RXENA bits which enables transmit and receive.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_disableModule`(uint32_t base)

    Disables transmitting and receiving.

    Clears the SCIEN, TXE, and RXE bits. The user should ensure that all the data has been sent before disable the module during transmission.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_enableTxModule`(uint32_t base)

    Enables transmitting.

    Enables SCI by taking SCI out of the software reset. Sets the TXENA bit which enables transmit.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_disableTxModule`(uint32_t base)

    Disables transmitting.

    Disables SCI by taking SCI out of the software reset. Clears the TXENA bit which disables transmit.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_enableRxModule`(uint32_t base)

    Enables receiving.

    Enables SCI by taking SCI out of the software reset. Sets the RXENA bit which enables receive.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_disableRxModule`(uint32_t base)

    Disables receiving.

    Disables SCI by taking SCI out of the software reset. Clears the RXENA bit which disables receive.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_enableSleepMode`(uint32_t base)

    Enables Sleep Mode

    Enables the sleep mode in SCI by setting the SLEEP bit in SCICTL1 register

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_disableSleepMode`(uint32_t base)

    Disables Sleep Mode

    Disables the sleep mode in SCI by clearing the SLEEP bit in SCICTL1 register

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_enableFIFO`(uint32_t base)

    Enables the transmit and receive FIFOs.

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

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_disableFIFO`(uint32_t base)

    Disables the transmit and receive FIFOs.

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

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  bool `SCI_isFIFOEnabled`(uint32_t base)

    Determines if the FIFO enhancement is enabled.

    This function returns a flag indicating whether or not the FIFO enhancement is enabled.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns true if the FIFO enhancement is enabled or false if the FIFO enhancement is disabled.

  void `SCI_resetRxFIFO`(uint32_t base)

    Resets the receive FIFO.

    This functions resets the receive FIFO of the SCI.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_resetTxFIFO`(uint32_t base)

    Resets the transmit FIFO.

    This functions resets the transmit FIFO of the SCI.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_resetChannels`(uint32_t base)

    Resets the SCI Transmit and Receive Channels

    This functions resets transmit and receive channels in the SCI.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  bool `SCI_isDataAvailableNonFIFO`(uint32_t base)

    Determines if there are any characters in the receive buffer when the FIFO enhancement is not enabled.

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

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns true if there is data in the receive buffer or false if there is no data in the receive buffer.

  bool `SCI_isSpaceAvailableNonFIFO`(uint32_t base)

    Determines if there is any space in the transmit buffer when the FIFO enhancement is not enabled.

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

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns true if there is space available in the transmit buffer or false if there is no space available in the transmit buffer.

  SCI_TxFIFOLevel `SCI_getTxFIFOStatus`(uint32_t base)

    Get the transmit FIFO status

    This functions gets the current number of words in the transmit FIFO.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns the current number of words in the transmit FIFO specified as one of the following: SCI_FIFO_TX0, SCI_FIFO_TX1, SCI_FIFO_TX2, SCI_FIFO_TX3 SCI_FIFO_TX4, …, or SCI_FIFO_TX16

  SCI_RxFIFOLevel `SCI_getRxFIFOStatus`(uint32_t base)

    Get the receive FIFO status

    This functions gets the current number of words in the receive FIFO.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns the current number of words in the receive FIFO specified as one of the following: SCI_FIFO_RX0, SCI_FIFO_RX1, SCI_FIFO_RX2, SCI_FIFO_RX3 SCI_FIFO_RX4, …, or SCI_FIFO_RX16

  bool `SCI_isTransmitterBusy`(uint32_t base)

    Determines whether the SCI transmitter is busy or not.

    Allows the caller to determine whether all transmitted bytes have cleared the transmitter hardware when the FIFO is not enabled. When the FIFO is enabled, this function allows the caller to determine whether there is any data in the FIFO.

    Parameters

      - `base`: is the base address of the SCI port.

    Without the FIFO enabled, if false is returned, the transmit buffer and shift registers are empty and the transmitter is not busy. With the FIFO enabled, if false is returned, the FIFO is empty. This does not necessarily mean that the transmitter is not busy. The empty FIFO does not reflect the status of the transmitter shift register. The FIFO may be empty while the transmitter is still transmitting data.

    Return

      Returns true if the SCI is transmitting or false if transmissions are complete.

  void `SCI_writeCharBlockingFIFO`(uint32_t base, uint16_t data)

    Waits to send a character from the specified port when the FIFO enhancement is enabled.

    Sends the character

    data to the transmit buffer for the specified port. If there is no space available in the transmit FIFO, this function waits until there is space available before returning. data is a uint16_t but only 8 bits are written to the SCI port. SCI only transmits 8 bit characters.
    Parameters

      - `base`: is the base address of the SCI port.

      - `data`: is the character to be transmitted.

    Return

      None.

  void `SCI_writeCharBlockingNonFIFO`(uint32_t base, uint16_t data)

    Waits to send a character from the specified port.

    Sends the character

    data to the transmit buffer for the specified port. If there is no space available in the transmit buffer, or the transmit FIFO if it is enabled, this function waits until there is space available before returning. data is a uint16_t but only 8 bits are written to the SCI port. SCI only transmits 8 bit characters.
    Parameters

      - `base`: is the base address of the SCI port.

      - `data`: is the character to be transmitted.

    Return

      None.

  void `SCI_writeCharNonBlocking`(uint32_t base, uint16_t data)

    Sends a character to the specified port.

    Writes the character

    data to the transmit buffer for the specified port. This function does not block and only writes to the transmit buffer. The user should use SCI_isSpaceAvailableNonFIFO() or SCI_getTxFIFOStatus() to determine if the transmit buffer or FIFO have space available. data is a uint16_t but only 8 bits are written to the SCI port. SCI only transmits 8 bit characters.
    Parameters

      - `base`: is the base address of the SCI port.

      - `data`: is the character to be transmitted.

    Return

      None.

  uint16_t `SCI_getRxStatus`(uint32_t base)

    Gets current receiver status flags.

    This function returns the current receiver status flags. The returned error flags are equivalent to the error bits returned via the previous reading or receiving of a character with the exception that the overrun error is set immediately the overrun occurs rather than when a character is next read.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns a bitwise OR combination of the receiver status flags, SCI_RXSTATUS_WAKE, SCI_RXSTATUS_PARITY, SCI_RXSTATUS_OVERRUN, SCI_RXSTATUS_FRAMING, SCI_RXSTATUS_BREAK, SCI_RXSTATUS_READY, and SCI_RXSTATUS_ERROR.

  uint16_t `SCI_readCharBlockingFIFO`(uint32_t base)

    Waits for a character from the specified port when the FIFO enhancement is enabled.

    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. Returns immediately in case of Error.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns the character read from the specified port as uint16_t or 0x0 in case of Error. The application must use SCI_getRxStatus() API to check if some error occurred before consuming the data

  uint16_t `SCI_readCharBlockingNonFIFO`(uint32_t base)

    Waits for a character from the specified port when the FIFO enhancement is not enabled.

    Gets a character from the receive buffer for the specified port. If there is no characters available, this function waits until a character is received before returning.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns the character read from the specified port as uint16_t.

  uint16_t `SCI_readCharNonBlocking`(uint32_t base)

    Receives a character from the specified port.

    Gets a character from the receive buffer for the specified port. This function does not block and only reads the receive buffer. The user should use

    SCI_isDataAvailableNonFIFO() or SCI_getRxFIFOStatus() to determine if the receive buffer or FIFO have data available.
    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns uin16_t which is read from the receive buffer.

  void `SCI_performSoftwareReset`(uint32_t base)

    Performs a software reset of the SCI and Clears all reported receiver status flags.

    This function performs a software reset of the SCI port. It affects the operating flags of the SCI, but it neither affects the configuration bits nor restores the reset values.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_enableLoopback`(uint32_t base)

    Enables Loop Back Test Mode

    Enables the loop back test mode where the Tx pin is internally connected to the Rx pin.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_disableLoopback`(uint32_t base)

    Disables Loop Back Test Mode

    Disables the loop back test mode where the Tx pin is no longer internally connected to the Rx pin.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  bool `SCI_getOverflowStatus`(uint32_t base)

    Get the receive FIFO Overflow flag status

    This functions gets the receive FIFO overflow flag status.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      Returns true if overflow has occurred, else returned false if an overflow hasn’t occurred.

  void `SCI_clearOverflowStatus`(uint32_t base)

    Clear the receive FIFO Overflow flag status

    This functions clears the receive FIFO overflow flag status.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

  void `SCI_setConfig`(uint32_t base, uint32_t lspclkHz, uint32_t baud, uint32_t config)

    Sets the configuration of a SCI.

    This function configures the SCI for operation in the specified data format. The baud rate is provided in the

    baud parameter and the data format in the config parameter.
    Parameters

      - `base`: is the base address of the SCI port.

      - `lspclkHz`: is the rate of the clock supplied to the SCI module. This is the LSPCLK.

      - `baud`: is the desired baud rate.

      - `config`: is the data format for the port (number of data bits, number of stop bits, and parity).

    The config parameter is the bitwise OR of three values: the number of data bits, the number of stop bits, and the parity. SCI_CONFIG_WLEN_8, SCI_CONFIG_WLEN_7, SCI_CONFIG_WLEN_6, SCI_CONFIG_WLEN_5, SCI_CONFIG_WLEN_4, SCI_CONFIG_WLEN_3, SCI_CONFIG_WLEN_2, and SCI_CONFIG_WLEN_1. Select from eight to one data bits per byte (respectively). SCI_CONFIG_STOP_ONE and SCI_CONFIG_STOP_TWO select one or two stop bits (respectively). SCI_CONFIG_PAR_NONE, SCI_CONFIG_PAR_EVEN, SCI_CONFIG_PAR_ODD, select the parity mode (no parity bit, even parity bit, odd parity bit respectively).

    The peripheral clock is the low speed peripheral clock. This will be the value returned by SysCtl_getLowSpeedClock(), or it can be explicitly hard coded if it is constant and known (to save the code/execution overhead of a call to SysCtl_getLowSpeedClock()).

    A baud rate divider (BRR) is used in this function to calculate the baud rate. The value of BRR is calculated in float and type casted as int to be fed in the SCIHBAUD and SCILBAUD registers. This conversion brings an error in the calculated baud rate and the requested. Error will be significant when operating at higher baud rates. The error is due to lower BRR integer value granularity at higher baud rates.

    Return

      None.

  void `SCI_writeCharArray`(uint32_t base, const uint16_t *const array, uint16_t length)

    Waits to send an array of characters from the specified port.

    Sends the number of characters specified by

    length, starting at the address array, out of the transmit buffer for the specified port. If there is no space available in the transmit buffer, or the transmit FIFO if it is enabled, this function waits until there is space available and length number of characters are transmitted before returning. array is a pointer to uint16_ts but only the least significant 8 bits are written to the SCI port. SCI only transmits 8 bit characters.
    Parameters

      - `base`: is the base address of the SCI port.

      - `array`: is the address of the array of characters to be transmitted. It is pointer to the array of characters to be transmitted.

      - `length`: is the length of the array, or number of characters in the array to be transmitted.

    Return

      None.

  void `SCI_readCharArray`(uint32_t base, uint16_t *const array, uint16_t length)

    Waits to receive an array of characters from the specified port.

    Receives an array of characters from the receive buffer for the specified port, and stores them as an array of characters starting at address

    array. This function waits until the length number of characters are received before returning.
    Parameters

      - `base`: is the base address of the SCI port.

      - `array`: is the address of the array of characters to be received. It is a pointer to the array of characters to be received.

      - `length`: is the length of the array, or number of characters in the array to be received.

    Return

      None.

  void `SCI_enableInterrupt`(uint32_t base, uint32_t intFlags)

    Enables individual SCI interrupt sources.

    Enables the indicated SCI interrupt sources. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

    Parameters

      - `base`: is the base address of the SCI port.

      - `intFlags`: is the bit mask of the interrupt sources to be enabled.

    The intFlags parameter is the bitwise OR of any of the following:

    - SCI_INT_RXERR - RXERR Interrupt

    - SCI_INT_RXRDY_BRKDT - RXRDY/BRKDT Interrupt

    - SCI_INT_TXRDY - TXRDY Interrupt

    - SCI_INT_TXFF - TX FIFO Level Interrupt

    - SCI_INT_RXFF - RX FIFO Level Interrupt

    - SCI_INT_FE - Frame Error

    - SCI_INT_OE - Overrun Error

    - SCI_INT_PE - Parity Error

    Return

      None.

  void `SCI_disableInterrupt`(uint32_t base, uint32_t intFlags)

    Disables individual SCI interrupt sources.

    Disables the indicated SCI interrupt sources. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

    Parameters

      - `base`: is the base address of the SCI port.

      - `intFlags`: is the bit mask of the interrupt sources to be disabled.

    The intFlags parameter has the same definition as the intFlags parameter to SCI_enableInterrupt().

    Return

      None.

  uint32_t `SCI_getInterruptStatus`(uint32_t base)

    Gets the current interrupt status.

    Return

      Returns the current interrupt status, enumerated as a bit field of values described in SCI_enableInterrupt().

    Parameters

      - `base`: is the base address of the SCI port.

  void `SCI_clearInterruptStatus`(uint32_t base, uint32_t intFlags)

    Clears SCI interrupt sources.

    The specified SCI 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.

    Parameters

      - `base`: is the base address of the SCI port.

      - `intFlags`: is a bit mask of the interrupt sources to be cleared.

    The intFlags parameter has the same definition as the intFlags parameter to SCI_enableInterrupt().

    Return

      None.

  void `SCI_setBaud`(uint32_t base, uint32_t lspclkHz, uint32_t baud)

    Sets SCI Baud rate.

    This function configures the SCI for operation in the specified baud rate The baud rate is provided in the

    baud parameter.
    Parameters

      - `base`: is the base address of the SCI port.

      - `lspclkHz`: is the rate of the clock supplied to the SCI module. This is the LSPCLK.

      - `baud`: is the desired baud rate.

    The peripheral clock is the low speed peripheral clock. This will be the value returned by SysCtl_getLowSpeedClock()

    Return

      None.

  void `SCI_setWakeFlag`(uint32_t base)

    Sets the SCI TXWAKE flag

    This function sets the TXWAKE flag bit to indicate that the next frame is an address frame. TXWAKE bit controls selection of data-transmit feature based on which mode is selected from idle-line and address-bit.

    Parameters

      - `base`: is the base address of the SCI port.

    Return

      None.

The code for this module is contained in driverlib/sci.c, with driverlib/sci.h containing the API declarations for use by applications.