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#
Initilize the USART/UART module.
Uninitialize the USART/UART module.
Register the user callback function.
Unregister the user callback function.
This function registers the user callback function for multiple usart instances i.e., to use different instance (USART_O, UART_1, ULP_UART) this API need to use.
Unregister the user callback function in case of multiple usart insatances.
Send the USART data when USART/UART is configured.
To Send the data in async mode when USART/UART is configured.
To receive the data when USART/UART is configured.
To receive the data in async mode when USART/UART is configured.
To send and receive the data when USART in Synchronous mode is enabled.
To get the TX data count of USART/UART This function will return the USART data transferred count.
To get the RX data count of USART/UART This function will return the USART/UART data received count.
To control and configure the USART/UART module in different configurations.
To get the USART/UART status.
This function will set the USART modem control line.
This function return USART modem control status.
This function is used to know the USART version.
Get the USART configurations set in the module such as baudrate, parity bit stop bits etc.
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)
Initilize the USART/UART module.
[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 initialization of the DMA for UART/USART, if DMA is enabled for data transfers.
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
195
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)
Uninitialize the USART/UART module.
[in] | usart_handle | Pointer to the USART/UART driver |
This function will disable the clocks for USART/UART module and also Deinit 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
207
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 |
If another callback is registered without unregistering previous callback then, it returns an error code, so it is mandatory to unregister the callback before registering to another callback.
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
224
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 )
Unregister the user callback function.
[in] |
Unregister the user callback function before regsitering new callback function.
Returns
none
233
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_multiple_instance_register_event_callback#
sl_status_t sl_si91x_usart_multiple_instance_register_event_callback (usart_peripheral_t usart_instance, sl_usart_signal_event_t callback_event)
This function registers the user callback function for multiple usart instances i.e., to use different instance (USART_O, UART_1, ULP_UART) this API need to use.
[in] | usart_instance | Usart Instance |
[in] | callback_event | Pointer to the function which needs to be called at the time of interrupt |
Returns
status 0 if successful, else error code SL_STATUS_OK (0x0000) - Success SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer SL_STATUS_BUSY (0x0004) - Driver is busy
248
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_multiple_instance_unregister_event_callback#
void sl_si91x_usart_multiple_instance_unregister_event_callback (usart_peripheral_t usart_instance)
Unregister the user callback function in case of multiple usart insatances.
[in] | usart_instance | Usart Instance |
Returns
none
257
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)
Send the USART data when USART/UART is configured.
[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 enables the DMA channel , then transfer's the data pointed to it else it fill the data to the transfer FIFO and transfer the data
Returns
status 0 if successful, else error code SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is invalid argument SL_STATUS_FAIL (0x0001) - Fail , Data transfer failed SL_STATUS_BUSY (0x0004) - Busy ,already data transfer is going on SL_STATUS _OK (0X000) - Success ,UART/USART initialization done properly
278
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_async_send_data#
sl_status_t sl_si91x_usart_async_send_data (sl_usart_handle_t usart_handle, const void * data, uint32_t data_length)
To Send the data in async mode when USART/UART is configured.
[in] | usart_handle | Pointer to the USART/UART driver |
[in] | data | Pointer to the variable which will store the transferred data |
[in] | data_length | Data_length to transfer |
This function returns immediately(non blocking) and data transfer happens asyncronously. Once the data transfer compeletes , registered user callback get invoked
Returns
status 0 if successful, else error code SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is invalid argument SL_STATUS_FAIL (0x0001) - Fail , Data transfer failed SL_STATUS_BUSY (0x0004) - Busy ,already data transfer is going on SL_STATUS _OK (0X000) - Success ,UART/USART initialization done properly
299
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)
To receive the data when USART/UART is configured.
[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 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
319
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h
sl_si91x_usart_async_receive_data#
sl_status_t sl_si91x_usart_async_receive_data (sl_usart_handle_t usart_handle, void * data, uint32_t data_length)
To receive the data in async mode when USART/UART is configured.
[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 |
This function returns immediately(Non blocking) and data reception happens asyncronously. Once the data reception compeletes, registered user callback get invoked
Returns
status 0 if successful, else error code SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is invalid argument SL_STATUS_FAIL (0x0001) - Fail , Data transfer failed SL_STATUS_BUSY (0x0004) - Busy ,already data transfer is going on SL_STATUS _OK (0X000) - Success ,UART/USART initialization done properly
340
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)
To send and receive the data when USART in Synchronous mode is enabled.
[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 sends and receives the data to and from usart transmitter and receiver in synchronous mode of operation. Configure the DMA channel and enables the DMA channel, if DMA mode is set and transfer's the data pointed to it else transfer the data from 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
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()
366
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)
To get the TX data count of USART/UART This function will return the USART data transferred count.
[in] | usart_handle | Pointer to the USART/UART driver |
Returns
return the no of bytes transferred
378
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)
To get the RX data count of USART/UART This function will return the USART/UART data received count.
[in] | usart_handle | Pointer to the USART/UART driver |
Returns
return the no of bytes received
387
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)
To control and configure the USART/UART module in different configurations.
[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
SL_STATUS_BUSY (0x0004) - Busy ,already data transfer is going on
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is invalid argument
SL_STATUS_INVALID_MODE (0x0024) - USART Invalid mode of operation
SL_STATUS_NOT_SUPPORTED(0x000F) - Feature not supported
SL_STATUS _OK (0X000) - Success ,UART/USART initialization done properly
403
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)
N/A | usart_handle | |
N/A | control_configuration |
421
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)
To get the USART/UART 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
433
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)
This function will set the USART modem control line.
[in] | usart_handle | Pointer to the USART/UART driver |
[in] | control | usart modem control |
Returns
status 0 if successful, else error code
SL_STATUS_NOT_SUPPORTED(0x000F) - Feature not supported
SL_STATUS _OK (0x000) - Success ,UART/USART initialization done properly
445
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)
This function return USART modem control status.
[in] | usart_handle | Pointer to the USART/UART driver |
Returns
usart modem status states are active or not
453
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 )
This function is used to know the USART version.
[in] |
Returns
sl_usart_version_t type version
461
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 the module such as baudrate, parity bit stop bits etc.
[in] | usart_module | USART peripheral type
|
[in] | usart_config | Pointer to the USART configurations structure |
Returns
status 0 if successful, else error code
SL_STATUS_NULL_POINTER(0x0022) - Invalid NULL pointer received as argument \
SL_STATUS _OK (0x000) - Success ,UART/USART configurations retrieved successfully \
477
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_usart.h