USART#
Modules#
sl_si91x_usart_control_config_t
Enumerations#
USART/UART Events.
General power states.
Databit selection.
Parity selection.
USART Modem control selection.
Stop bits selection, used for asynchronous operation.
Hardware Flow Control Selection.
USART Mode selection.
USART misc control selection.
Typedefs#
Functions#
Initialize USART/UART interface.
Deinit USART/UART interface.
Register the user callback function.
Un-register the user callback function.
Start sending data to USART transmitter.
Start receiving data from USART receiver.
Start sending/receiving data to/from USART transmitter/receiver.
Get the USART/UART transfer data count.
Get the USART/UART received data count.
Configure the different configurations of USART Interface.
This is an internal function used to configure the different configurations of USART Interface, this API will not pick the configurations from USART UC.
Get USART status.
Set USART Modem Control line state.
Get USART Modem Control line state.
Get the USART version.
Get the USART configurations set.
Enumeration Documentation#
usart_event_typedef_t#
usart_event_typedef_t
USART/UART Events.
Enumerator | |
---|---|
SL_USART_EVENT_SEND_COMPLETE | Send complete event. |
SL_USART_EVENT_RECEIVE_COMPLETE | Receive complete event. |
SL_USART_EVENT_TRANSFER_COMPLETE | Transfer complete event. |
SL_USART_EVENT_TX_COMPLETE | Tx complete event event. |
SL_USART_EVENT_TX_UNDERFLOW | TX underflow event. |
SL_USART_EVENT_RX_OVERFLOW | RX overflow event. |
SL_USART_EVENT_RX_TIMEOUT | RX timeout event. |
SL_USART_EVENT_RX_BREAK | RX break event. |
SL_USART_EVENT_RX_FRAMING_ERROR | RX Framing error event. |
SL_USART_EVENT_RX_PARITY_ERROR | RX parity error event. |
SL_USART_EVENT_CTS | CTS event. |
SL_USART_EVENT_DSR | DSR EVENT. |
SL_USART_EVENT_DCD | DCD event. |
SL_USART_EVENT_RI | RI Event. |
67
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
power_mode_typedef_t#
power_mode_typedef_t
General power states.
Enumerator | |
---|---|
SL_POWER_OFF | Power Off. |
SL_POWER_LOW | Power low. |
SL_POWER_FULL | Power Full. |
SL_POWER_MODE_LAST |
85
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
usart_databits_typedef_t#
usart_databits_typedef_t
Databit selection.
Enumerator | |
---|---|
SL_USART_DATA_BITS_5 | 5 data bits |
SL_USART_DATA_BITS_6 | 6 data bits |
SL_USART_DATA_BITS_7 | 7 data bits |
SL_USART_DATA_BITS_8 | 8 data bits |
SL_USART_DATA_BITS_9 | 9 data bits |
93
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
usart_parity_typedef_t#
usart_parity_typedef_t
Parity selection.
Enumerator | |
---|---|
SL_USART_NO_PARITY | No parity. |
SL_USART_EVEN_PARITY | Even parity. |
SL_USART_ODD_PARITY | Odd parity. |
102
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
usart_modem_control_typedef_t#
usart_modem_control_typedef_t
USART Modem control selection.
Enumerator | |
---|---|
SL_USART_RTS_CLEAR | RTS clear. |
SL_USART_RTS_SET | RTS Set. |
SL_USART_DTR_CLEAR | DTR Clear. |
SL_USART_DTR_SET | Activate DTR. |
SL_USART_MODEM_CONTROL_LAST |
109
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
usart_stopbit_typedef_t#
usart_stopbit_typedef_t
Stop bits selection, used for asynchronous operation.
Enumerator | |
---|---|
SL_USART_STOP_BITS_1 | 1 stop bits. |
SL_USART_STOP_BITS_1_5 | 1.5 stop bits. |
SL_USART_STOP_BITS_2 | 2 stop bits |
118
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
usart_hwflowcontol_typedef_t#
usart_hwflowcontol_typedef_t
Hardware Flow Control Selection.
Enumerator | |
---|---|
SL_USART_FLOW_CONTROL_NONE | No hardware flow control. |
SL_USART_FLOW_CONTROL_CTS | CTS signal is enabled for TX flow control. |
SL_USART_FLOW_CONTROL_RTS | RTS signal is enabled for RX flow control. |
SL_USART_FLOW_CONTROL_RTS_CTS | CTS and RTS signals are enabled for TX and RX flow control. |
125
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
usart_mode_typedef_t#
usart_mode_typedef_t
USART Mode selection.
Enumerator | |
---|---|
SL_USART_MODE_ASYNCHRONOUS | Asynchronous mode. |
SL_USART_MODE_SYNCHRONOUS_MASTER | Synchronous mode master. |
SL_USART_MODE_SYNCHRONOUS_SLAVE | Synchronous mode slave. |
SL_USART_MODE_SINGLE_WIRE | UART Single-wire (half-duplex); arg = Baudrate. |
SL_USART_MODE_IRDA | UART IrDA; arg = Baudrate. |
134
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
usart_misc_control_typedef_t#
usart_misc_control_typedef_t
USART misc control selection.
Enumerator | |
---|---|
SL_USART_MISC_CONTROL_NONE | |
SL_USART_SET_DEFAULT_TX_VALUE | Set default TX value. |
SL_USART_CONTROL_TX | Set transfer line. |
SL_USART_CONTROL_RX | Set receive line. |
SL_USART_CONTROL_BREAK | Set USART control break. |
SL_USART_ABORT_SEND | Abort send. |
SL_USART_ABORT_RECEIVE | Abort receive. |
SL_USART_ABORT_TRANSFER | Abort transfer. |
143
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
Typedef Documentation#
sl_usart_signal_event_t#
typedef ARM_USART_SignalEvent_t sl_usart_signal_event_t
53
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_usart_status_t#
typedef ARM_USART_STATUS sl_usart_status_t
54
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_usart_power_state_t#
typedef ARM_POWER_STATE sl_usart_power_state_t
55
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_usart_modem_control_t#
typedef ARM_USART_MODEM_CONTROL sl_usart_modem_control_t
56
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_usart_modem_status_t#
typedef ARM_USART_MODEM_STATUS sl_usart_modem_status_t
57
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_usart_capabilities_t#
typedef ARM_USART_CAPABILITIES sl_usart_capabilities_t
58
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_usart_driver_t#
typedef ARM_DRIVER_USART sl_usart_driver_t
59
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
usart_resources_t#
typedef USART_RESOURCES usart_resources_t
60
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_usart_handle_t#
typedef const void* sl_usart_handle_t
61
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
Function Documentation#
sl_si91x_usart_init#
sl_status_t sl_si91x_usart_init (usart_peripheral_t usart_instance, sl_usart_handle_t * usart_handle)
Initialize USART/UART interface.
[in] | usart_instance | Pointer to the USART/UART driver |
[in] | usart_handle | Callback function which needs to be called on data transfer |
This function will configure the clocks for USART/UART module and also initialize the DMA for UART/USART if DMA is enabled for data transfers.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_FAIL (0x0001) - Fail, UART/USART initialization failed
SL_STATUS_OK (0x0000) - Success, UART/USART initialization done properly
193
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_deinit#
sl_status_t sl_si91x_usart_deinit (sl_usart_handle_t usart_handle)
Deinit USART/UART interface.
[in] | usart_handle | Pointer to the USART/UART driver |
This function will disable the clocks for USART/UART module and also deinitialize the DMA for UART/USART if DMA is enabled for data transfers.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_FAIL (0x0001) - Fail, UART/USART Deinitialization failed
SL_STATUS_OK (0x0000) - Success, UART/USART Deinitialization done properly
206
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_register_event_callback#
sl_status_t sl_si91x_usart_register_event_callback (sl_usart_signal_event_t callback_event)
Register the user callback function.
[in] | callback_event | Pointer to the function which needs to be called at the time of interrupt |
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_BUSY (0x0004) - Driver is busy
220
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_unregister_event_callback#
void sl_si91x_usart_unregister_event_callback (void )
Un-register the user callback function.
[in] |
Returns
none
228
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_send_data#
sl_status_t sl_si91x_usart_send_data (sl_usart_handle_t usart_handle, const void * data, uint32_t data_length)
Start sending data to USART transmitter.
[in] | usart_handle | Pointer to the USART/UART driver |
[in] | data | Pointer to the variable which contains transfer data |
[in] | data_length | Data_length to Send |
If DMA mode is set, this function will configure the DMA channel and enable the DMA channel, then transfer the data pointed to it. If DMA mode is not set, it fills the data to the transfer FIFO and transfers the data.
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_FAIL (0x0001) - Fail, Data transfer failed
SL_STATUS_BUSY (0x0004) - Busy, already data transfer is going on
SL_STATUS_OK (0x0000) - Success, UART/USART initialization done properly
249
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_receive_data#
sl_status_t sl_si91x_usart_receive_data (sl_usart_handle_t usart_handle, void * data, uint32_t data_length)
Start receiving data from USART receiver.
[in] | usart_handle | Pointer to the USART/UART driver |
[in] | data | Pointer to the variable which will store the received data |
[in] | data_length | Data_length to receive |
If DMA mode is set, it configures the DMA channel, enables the DMA channel, and receives data via DMA. If DMA mode is not set, it receives the data from the FIFO.
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_FAIL (0x0001) - Fail, Data transfer failed
SL_STATUS_BUSY (0x0004) - Busy, already data transfer is going on
SL_STATUS_OK (0x0000) - Success, UART/USART initialization done properly
270
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_transfer_data#
sl_status_t sl_si91x_usart_transfer_data (sl_usart_handle_t usart_handle, const void * data_out, void * data_in, uint32_t data_length)
Start sending/receiving data to/from USART transmitter/receiver.
[in] | usart_handle | Pointer to the USART/UART driver |
[in] | data_out | Pointer to the variable which will store the data to be transferred |
[in] | data_in | Pointer to the variable which will store the received data |
[in] | data_length | Data_length to receive |
This function will configure the DMA channel and enable the DMA channel, DMA if DMA mode is set and transfer's the data pointed to it.
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_FAIL (0x0001) - Fail, Data transfer failed
SL_STATUS_BUSY (0x0004) - Busy, already data transfer is going on
SL_STATUS_OK (0x0000) - Success, UART/USART initialization done properly
Note
This function to be used in USART mode only, i.e., synchronous mode only in asynchronous mode use sl_si91x_usart_receive_data() and sl_si91x_usart_send_data()
295
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_get_tx_data_count#
uint32_t sl_si91x_usart_get_tx_data_count (sl_usart_handle_t usart_handle)
Get the USART/UART transfer data count.
[in] | usart_handle | Pointer to the USART/UART driver |
This function will return the USART data transferred count.
Returns
return the no of bytes transferred
308
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_get_rx_data_count#
uint32_t sl_si91x_usart_get_rx_data_count (sl_usart_handle_t usart_handle)
Get the USART/UART received data count.
[in] | usart_handle | Pointer to the USART/UART driver |
This function will return the USART/UART data received count.
Returns
return the no of bytes received
318
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_set_configuration#
sl_status_t sl_si91x_usart_set_configuration (sl_usart_handle_t usart_handle, sl_si91x_usart_control_config_t * control_configuration)
Configure the different configurations of USART Interface.
[in] | usart_handle | Pointer to the USART/UART driver |
[in] | control_configuration | pointer to the USART configurations |
This function configure the USART in different configurations such as USART mode, Data Bits, Parity, stop bits, flow control and baud rate.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_BUSY (0x0004) - Busy, already data transfer is going on
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_INVALID_MODE (0x0024) - USART Invalid mode of operation
SL_STATUS_NOT_SUPPORTED (0x000F) - Feature not supported
SL_STATUS_OK (0x0000) - Success, UART/USART initialization done properly
335
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sli_si91x_usart_set_non_uc_configuration#
sl_status_t sli_si91x_usart_set_non_uc_configuration (sl_usart_handle_t usart_handle, sl_si91x_usart_control_config_t * control_configuration)
This is an internal function used to configure the different configurations of USART Interface, this API will not pick the configurations from USART UC.
[in] | usart_handle | Pointer to the USART/UART driver |
[in] | control_configuration | pointer to the USART configurations |
This function configure the USART in different configurations such as USART mode, Data Bits, Parity, stop bits, flow control and baud rate.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_BUSY (0x0004) - Busy, already data transfer is going on
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_INVALID_MODE (0x0024) - USART Invalid mode of operation
SL_STATUS_NOT_SUPPORTED (0x000F) - Feature not supported
SL_STATUS_OK (0x0000) - Success, UART/USART initialization done properly
354
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_get_status#
sl_usart_status_t sl_si91x_usart_get_status (sl_usart_handle_t usart_handle)
Get USART status.
[in] | usart_handle | Pointer to the USART/UART driver |
This function will return USART/UART transfer and receive status.
Returns
USART line status: TX busy, RX busy, TX underflow, RX overflow, RX break, RX framing error, RX parity error
366
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_set_modem_control#
sl_status_t sl_si91x_usart_set_modem_control (sl_usart_handle_t usart_handle, sl_usart_modem_control_t control)
Set USART Modem Control line state.
[in] | usart_handle | Pointer to the USART/UART driver |
[in] | control | USART modem control |
This function will set the USART modem control line.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NOT_SUPPORTED (0x000F) - Feature not supported
SL_STATUS_OK (0x0000) - Success, UART/USART initialization done properly
379
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_get_modem_status#
sl_usart_modem_status_t sl_si91x_usart_get_modem_status (sl_usart_handle_t usart_handle)
Get USART Modem Control line state.
[in] | usart_handle | Pointer to the USART/UART driver |
This function returns USART modem control status.
Returns
USART modem status states are active or not
389
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_get_version#
sl_usart_version_t sl_si91x_usart_get_version (void )
Get the USART version.
[in] |
This function is used to know the USART version.
Returns
sl_usart_version_t type version
399
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_get_configurations#
sl_status_t sl_si91x_usart_get_configurations (uint8_t usart_module, sl_si91x_usart_control_config_t * usart_config)
Get the USART configurations set.
[in] | usart_module | USART peripheral type
|
[in] | usart_config | Pointer to the USART configurations structure |
Get the USART configurations set in the module such as baud rate, parity bit, stop bits etc.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NULL_POINTER (0x0022) - Invalid NULL pointer received as an argument
SL_STATUS_OK (0x0000) - Success, UART/USART configurations retrieved successfully
416
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h