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