STM32F4xx_HAL_Driver  1.8.3
I2S Extended IO operation functions

I2SEx IO operation functions. More...

+ Collaboration diagram for I2S Extended IO operation functions:

Functions

HAL_StatusTypeDef HAL_I2SEx_TransmitReceive (I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size, uint32_t Timeout)
 Full-Duplex Transmit/Receive data in blocking mode. More...
 
HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_IT (I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size)
 Full-Duplex Transmit/Receive data in non-blocking mode using Interrupt. More...
 
HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_DMA (I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size)
 Full-Duplex Transmit/Receive data in non-blocking mode using DMA. More...
 
void HAL_I2SEx_FullDuplex_IRQHandler (I2S_HandleTypeDef *hi2s)
 This function handles I2S/I2Sext interrupt requests in full-duplex mode. More...
 
void HAL_I2SEx_TxRxHalfCpltCallback (I2S_HandleTypeDef *hi2s)
 Tx and Rx Transfer half completed callback. More...
 
void HAL_I2SEx_TxRxCpltCallback (I2S_HandleTypeDef *hi2s)
 Tx and Rx Transfer completed callback. More...
 

Detailed Description

I2SEx IO operation functions.

 ===============================================================================
                       ##### IO operation functions#####
 ===============================================================================
    [..]
    This subsection provides a set of functions allowing to manage the I2S data
    transfers.

    (#) There are two modes of transfer:
       (++) Blocking mode : The communication is performed in the polling mode.
            The status of all data processing is returned by the same function
            after finishing transfer.
       (++) No-Blocking mode : The communication is performed using Interrupts
            or DMA. These functions return the status of the transfer startup.
            The end of the data processing will be indicated through the
            dedicated I2S IRQ when using Interrupt mode or the DMA IRQ when
            using DMA mode.

    (#) Blocking mode functions are :
        (++) HAL_I2SEx_TransmitReceive()

    (#) No-Blocking mode functions with Interrupt are :
        (++) HAL_I2SEx_TransmitReceive_IT()
        (++) HAL_I2SEx_FullDuplex_IRQHandler()

    (#) No-Blocking mode functions with DMA are :
        (++) HAL_I2SEx_TransmitReceive_DMA()

    (#) A set of Transfer Complete Callback are provided in non Blocking mode:
        (++) HAL_I2SEx_TxRxCpltCallback()

Function Documentation

◆ HAL_I2SEx_FullDuplex_IRQHandler()

void HAL_I2SEx_FullDuplex_IRQHandler ( I2S_HandleTypeDef hi2s)

This function handles I2S/I2Sext interrupt requests in full-duplex mode.

Parameters
hi2sI2S handle
Return values
HALstatus

Definition at line 673 of file stm32f4xx_hal_i2s_ex.c.

◆ HAL_I2SEx_TransmitReceive()

HAL_StatusTypeDef HAL_I2SEx_TransmitReceive ( I2S_HandleTypeDef hi2s,
uint16_t *  pTxData,
uint16_t *  pRxData,
uint16_t  Size,
uint32_t  Timeout 
)

Full-Duplex Transmit/Receive data in blocking mode.

Parameters
hi2spointer to a I2S_HandleTypeDef structure that contains the configuration information for I2S module
pTxDataa 16-bit pointer to the Transmit data buffer.
pRxDataa 16-bit pointer to the Receive data buffer.
Sizenumber of data sample to be sent:
Note
When a 16-bit data frame or a 16-bit data frame extended is selected during the I2S configuration phase, the Size parameter means the number of 16-bit data length in the transaction and when a 24-bit data frame or a 32-bit data frame is selected the Size parameter means the number of 16-bit data length.
Parameters
TimeoutTimeout duration
Note
The I2S is kept enabled at the end of transaction to avoid the clock de-synchronization between Master and Slave(example: audio streaming).
Return values
HALstatus

Definition at line 206 of file stm32f4xx_hal_i2s_ex.c.

◆ HAL_I2SEx_TransmitReceive_DMA()

HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_DMA ( I2S_HandleTypeDef hi2s,
uint16_t *  pTxData,
uint16_t *  pRxData,
uint16_t  Size 
)

Full-Duplex Transmit/Receive data in non-blocking mode using DMA.

Parameters
hi2spointer to a I2S_HandleTypeDef structure that contains the configuration information for I2S module
pTxDataa 16-bit pointer to the Transmit data buffer.
pRxDataa 16-bit pointer to the Receive data buffer.
Sizenumber of data sample to be sent:
Note
When a 16-bit data frame or a 16-bit data frame extended is selected during the I2S configuration phase, the Size parameter means the number of 16-bit data length in the transaction and when a 24-bit data frame or a 32-bit data frame is selected the Size parameter means the number of 16-bit data length.
The I2S is kept enabled at the end of transaction to avoid the clock de-synchronization between Master and Slave(example: audio streaming).
Return values
HALstatus

Definition at line 548 of file stm32f4xx_hal_i2s_ex.c.

◆ HAL_I2SEx_TransmitReceive_IT()

HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_IT ( I2S_HandleTypeDef hi2s,
uint16_t *  pTxData,
uint16_t *  pRxData,
uint16_t  Size 
)

Full-Duplex Transmit/Receive data in non-blocking mode using Interrupt.

Parameters
hi2spointer to a I2S_HandleTypeDef structure that contains the configuration information for I2S module
pTxDataa 16-bit pointer to the Transmit data buffer.
pRxDataa 16-bit pointer to the Receive data buffer.
Sizenumber of data sample to be sent:
Note
When a 16-bit data frame or a 16-bit data frame extended is selected during the I2S configuration phase, the Size parameter means the number of 16-bit data length in the transaction and when a 24-bit data frame or a 32-bit data frame is selected the Size parameter means the number of 16-bit data length.
The I2S is kept enabled at the end of transaction to avoid the clock de-synchronization between Master and Slave(example: audio streaming).
Return values
HALstatus

Definition at line 439 of file stm32f4xx_hal_i2s_ex.c.

◆ HAL_I2SEx_TxRxCpltCallback()

__weak void HAL_I2SEx_TxRxCpltCallback ( I2S_HandleTypeDef hi2s)

Tx and Rx Transfer completed callback.

Parameters
hi2sI2S handle
Return values
None

Definition at line 834 of file stm32f4xx_hal_i2s_ex.c.

◆ HAL_I2SEx_TxRxHalfCpltCallback()

__weak void HAL_I2SEx_TxRxHalfCpltCallback ( I2S_HandleTypeDef hi2s)

Tx and Rx Transfer half completed callback.

Parameters
hi2sI2S handle
Return values
None

Definition at line 819 of file stm32f4xx_hal_i2s_ex.c.