TWI HAL
- group nrf_twi_hal
Hardware access layer for managing the TWI peripheral.
Defines
-
NRF_TWI_INST_GET(idx)
Macro getting pointer to the structure of registers of the TWI peripheral.
- Parameters:
idx – [in] TWI instance index.
- Returns:
Pointer to the structure of registers of the TWI peripheral.
Enums
-
enum nrf_twi_task_t
TWI tasks.
Values:
-
enumerator NRF_TWI_TASK_STARTRX
Start TWI receive sequence.
-
enumerator NRF_TWI_TASK_STARTTX
Start TWI transmit sequence.
-
enumerator NRF_TWI_TASK_STOP
Stop TWI transaction.
-
enumerator NRF_TWI_TASK_SUSPEND
Suspend TWI transaction.
-
enumerator NRF_TWI_TASK_RESUME
Resume TWI transaction.
-
enumerator NRF_TWI_TASK_STARTRX
-
enum nrf_twi_event_t
TWI events.
Values:
-
enumerator NRF_TWI_EVENT_STOPPED
TWI stopped.
-
enumerator NRF_TWI_EVENT_RXDREADY
TWI RXD byte received.
-
enumerator NRF_TWI_EVENT_TXDSENT
TWI TXD byte sent.
-
enumerator NRF_TWI_EVENT_ERROR
TWI error.
-
enumerator NRF_TWI_EVENT_BB
TWI byte boundary, generated before each byte that is sent or received.
-
enumerator NRF_TWI_EVENT_SUSPENDED
TWI entered the suspended state.
-
enumerator NRF_TWI_EVENT_STOPPED
-
enum nrf_twi_short_mask_t
TWI shortcuts.
Values:
-
enumerator NRF_TWI_SHORT_BB_SUSPEND_MASK
Shortcut between BB event and SUSPEND task.
-
enumerator NRF_TWI_SHORT_BB_STOP_MASK
Shortcut between BB event and STOP task.
-
enumerator NRF_TWI_ALL_SHORTS_MASK
All TWI shortcuts.
-
enumerator NRF_TWI_SHORT_BB_SUSPEND_MASK
-
enum nrf_twi_int_mask_t
TWI interrupts.
Values:
-
enumerator NRF_TWI_INT_STOPPED_MASK
Interrupt on STOPPED event.
-
enumerator NRF_TWI_INT_RXDREADY_MASK
Interrupt on RXDREADY event.
-
enumerator NRF_TWI_INT_TXDSENT_MASK
Interrupt on TXDSENT event.
-
enumerator NRF_TWI_INT_ERROR_MASK
Interrupt on ERROR event.
-
enumerator NRF_TWI_INT_BB_MASK
Interrupt on BB event.
-
enumerator NRF_TWI_INT_SUSPENDED_MASK
Interrupt on SUSPENDED event.
-
enumerator NRF_TWI_ALL_INTS_MASK
All TWI interrupts.
-
enumerator NRF_TWI_INT_STOPPED_MASK
-
enum nrf_twi_error_t
TWI error source.
Values:
-
enumerator NRF_TWI_ERROR_ADDRESS_NACK
NACK received after sending the address.
-
enumerator NRF_TWI_ERROR_DATA_NACK
NACK received after sending a data byte.
-
enumerator NRF_TWI_ERROR_OVERRUN
Overrun error.
A new byte was received before the previous byte was read from the RXD register (previous data is lost).
-
enumerator NRF_TWI_ERROR_ADDRESS_NACK
Functions
-
NRF_STATIC_INLINE void nrf_twi_task_trigger(NRF_TWI_Type *p_reg, nrf_twi_task_t task)
Function for activating the specified TWI task.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] Task to be activated.
-
NRF_STATIC_INLINE uint32_t nrf_twi_task_address_get(NRF_TWI_Type const *p_reg, nrf_twi_task_t task)
Function for getting the address of the specified TWI task register.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] The specified task.
- Returns:
Address of the specified task register.
-
NRF_STATIC_INLINE void nrf_twi_event_clear(NRF_TWI_Type *p_reg, nrf_twi_event_t event)
Function for clearing the specified TWI event.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event to clear.
-
NRF_STATIC_INLINE bool nrf_twi_event_check(NRF_TWI_Type const *p_reg, nrf_twi_event_t event)
Function for retrieving the state of the TWI event.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event to be checked.
- Return values:
true – The event has been generated.
false – The event has not been generated.
-
NRF_STATIC_INLINE uint32_t nrf_twi_event_address_get(NRF_TWI_Type const *p_reg, nrf_twi_event_t event)
Function for getting the address of the specified TWI event register.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] The specified event.
- Returns:
Address of the specified event register.
-
NRF_STATIC_INLINE void nrf_twi_shorts_enable(NRF_TWI_Type *p_reg, uint32_t mask)
Function for enabling the specified shortcuts.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be enabled.
-
NRF_STATIC_INLINE void nrf_twi_shorts_disable(NRF_TWI_Type *p_reg, uint32_t mask)
Function for disabling the specified shortcuts.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be disabled.
-
NRF_STATIC_INLINE void nrf_twi_int_enable(NRF_TWI_Type *p_reg, uint32_t mask)
Function for enabling the specified interrupts.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be enabled.
-
NRF_STATIC_INLINE void nrf_twi_int_disable(NRF_TWI_Type *p_reg, uint32_t mask)
Function for disabling the specified interrupts.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be disabled.
-
NRF_STATIC_INLINE uint32_t nrf_twi_int_enable_check(NRF_TWI_Type const *p_reg, uint32_t mask)
Function for checking if the specified interrupts are enabled.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be checked.
- Returns:
Mask of enabled interrupts.
-
NRF_STATIC_INLINE void nrf_twi_enable(NRF_TWI_Type *p_reg)
Function for enabling the TWI peripheral.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
-
NRF_STATIC_INLINE void nrf_twi_disable(NRF_TWI_Type *p_reg)
Function for disabling the TWI peripheral.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
-
NRF_STATIC_INLINE void nrf_twi_pins_set(NRF_TWI_Type *p_reg, uint32_t scl_pin, uint32_t sda_pin)
Function for configuring TWI pins.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
scl_pin – [in] SCL pin number.
sda_pin – [in] SDA pin number.
-
NRF_STATIC_INLINE uint32_t nrf_twi_scl_pin_get(NRF_TWI_Type const *p_reg)
Function for retrieving the SCL pin selection.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns:
SCL pin selection.
-
NRF_STATIC_INLINE uint32_t nrf_twi_sda_pin_get(NRF_TWI_Type const *p_reg)
Function for retrieving the SDA pin selection.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns:
SDA pin selection.
-
NRF_STATIC_INLINE void nrf_twi_frequency_set(NRF_TWI_Type *p_reg, nrf_twi_frequency_t frequency)
Function for setting the TWI master clock frequency.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
frequency – [in] TWI frequency.
-
NRF_STATIC_INLINE uint32_t nrf_twi_errorsrc_get_and_clear(NRF_TWI_Type *p_reg)
Function for checking the TWI error source.
The error flags are cleared after reading.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns:
Mask with error source flags.
-
NRF_STATIC_INLINE void nrf_twi_address_set(NRF_TWI_Type *p_reg, uint8_t address)
Function for setting the address to be used in TWI transfers.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
address – [in] Address to be used in transfers.
-
NRF_STATIC_INLINE uint8_t nrf_twi_rxd_get(NRF_TWI_Type const *p_reg)
Function for reading data received by TWI.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns:
Received data.
-
NRF_STATIC_INLINE void nrf_twi_txd_set(NRF_TWI_Type *p_reg, uint8_t data)
Function for writing data to be transmitted by TWI.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
data – [in] Data to be transmitted.
-
NRF_STATIC_INLINE void nrf_twi_shorts_set(NRF_TWI_Type *p_reg, uint32_t mask)
Function for setting the specified shortcuts.
- Parameters:
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be set.
-
NRF_TWI_INST_GET(idx)