189#ifdef HAL_I2S_MODULE_ENABLED 
  202#define I2S_TIMEOUT_FLAG          100U          
  269  uint32_t packetlength;
 
  272#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
  300#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
  304#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
  305    hi2s->TxRxCpltCallback     = HAL_I2SEx_TxRxCpltCallback;      
 
  309#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
  310    hi2s->TxRxHalfCpltCallback = HAL_I2SEx_TxRxHalfCpltCallback;  
 
  314    if (hi2s->MspInitCallback == NULL)
 
  320    hi2s->MspInitCallback(hi2s);
 
  331  CLEAR_BIT(hi2s->
Instance->I2SCFGR, (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CKPOL | \
 
  332                                      SPI_I2SCFGR_I2SSTD | SPI_I2SCFGR_PCMSYNC | SPI_I2SCFGR_I2SCFG | \
 
  333                                      SPI_I2SCFGR_I2SE | SPI_I2SCFGR_I2SMOD));
 
  356      packetlength = packetlength * 2U;
 
  360#if defined(I2S_APB1_APB2_FEATURE) 
  361    if (IS_I2S_APB1_INSTANCE(hi2s->
Instance))
 
  379        tmp = (uint32_t)(((((i2sclk / (packetlength * 4U)) * 10U) / hi2s->
Init.
AudioFreq)) + 5U);
 
  383        tmp = (uint32_t)(((((i2sclk / (packetlength * 8U)) * 10U) / hi2s->
Init.
AudioFreq)) + 5U);
 
  389      tmp = (uint32_t)(((((i2sclk / packetlength) * 10U) / hi2s->
Init.
AudioFreq)) + 5U);
 
  396    i2sodd = (uint32_t)(tmp & (uint32_t)1U);
 
  399    i2sdiv = (uint32_t)((tmp - i2sodd) / 2U);
 
  402    i2sodd = (uint32_t)(i2sodd << 8U);
 
  412  if ((i2sdiv < 2U) || (i2sdiv > 0xFFU))
 
  422  hi2s->
Instance->I2SPR = (uint32_t)((uint32_t)i2sdiv | (uint32_t)(i2sodd | (uint32_t)hi2s->
Init.
MCLKOutput));
 
  426  MODIFY_REG(hi2s->
Instance->I2SCFGR, (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN | \
 
  427                                       SPI_I2SCFGR_CKPOL | SPI_I2SCFGR_I2SSTD | \
 
  428                                       SPI_I2SCFGR_PCMSYNC | SPI_I2SCFGR_I2SCFG | \
 
  429                                       SPI_I2SCFGR_I2SE  | SPI_I2SCFGR_I2SMOD), \
 
  430             (SPI_I2SCFGR_I2SMOD | hi2s->
Init.
Mode | \
 
  434#if defined(SPI_I2SCFGR_ASTRTEN) 
  438    SET_BIT(hi2s->
Instance->I2SCFGR, SPI_I2SCFGR_ASTRTEN);
 
  442#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
  453    CLEAR_BIT(I2SxEXT(hi2s->
Instance)->I2SCFGR, (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CKPOL | \
 
  454                                                 SPI_I2SCFGR_I2SSTD | SPI_I2SCFGR_PCMSYNC | SPI_I2SCFGR_I2SCFG | \
 
  455                                                 SPI_I2SCFGR_I2SE | SPI_I2SCFGR_I2SMOD));
 
  456    I2SxEXT(hi2s->
Instance)->I2SPR = 2U;
 
  459    tmpreg = I2SxEXT(hi2s->
Instance)->I2SCFGR;
 
  472    tmpreg |= (uint16_t)((uint16_t)SPI_I2SCFGR_I2SMOD    | \
 
  479    WRITE_REG(I2SxEXT(hi2s->
Instance)->I2SCFGR, tmpreg);
 
 
  511#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
  512  if (hi2s->MspDeInitCallback == NULL)
 
  518  hi2s->MspDeInitCallback(hi2s);
 
 
  565#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
  576                                           pI2S_CallbackTypeDef pCallback)
 
  580  if (pCallback == NULL)
 
  583    hi2s->
ErrorCode |= HAL_I2S_ERROR_INVALID_CALLBACK;
 
  594      case HAL_I2S_TX_COMPLETE_CB_ID :
 
  595        hi2s->TxCpltCallback = pCallback;
 
  598      case HAL_I2S_RX_COMPLETE_CB_ID :
 
  599        hi2s->RxCpltCallback = pCallback;
 
  602#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
  603      case HAL_I2S_TX_RX_COMPLETE_CB_ID :
 
  604        hi2s->TxRxCpltCallback = pCallback;
 
  608      case HAL_I2S_TX_HALF_COMPLETE_CB_ID :
 
  609        hi2s->TxHalfCpltCallback = pCallback;
 
  612      case HAL_I2S_RX_HALF_COMPLETE_CB_ID :
 
  613        hi2s->RxHalfCpltCallback = pCallback;
 
  616#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
  617      case HAL_I2S_TX_RX_HALF_COMPLETE_CB_ID :
 
  618        hi2s->TxRxHalfCpltCallback = pCallback;
 
  622      case HAL_I2S_ERROR_CB_ID :
 
  623        hi2s->ErrorCallback = pCallback;
 
  626      case HAL_I2S_MSPINIT_CB_ID :
 
  627        hi2s->MspInitCallback = pCallback;
 
  630      case HAL_I2S_MSPDEINIT_CB_ID :
 
  631        hi2s->MspDeInitCallback = pCallback;
 
  636        SET_BIT(hi2s->
ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK);
 
  647      case HAL_I2S_MSPINIT_CB_ID :
 
  648        hi2s->MspInitCallback = pCallback;
 
  651      case HAL_I2S_MSPDEINIT_CB_ID :
 
  652        hi2s->MspDeInitCallback = pCallback;
 
  657        SET_BIT(hi2s->
ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK);
 
  667    SET_BIT(hi2s->
ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK);
 
  697      case HAL_I2S_TX_COMPLETE_CB_ID :
 
  701      case HAL_I2S_RX_COMPLETE_CB_ID :
 
  705#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
  706      case HAL_I2S_TX_RX_COMPLETE_CB_ID :
 
  707        hi2s->TxRxCpltCallback = HAL_I2SEx_TxRxCpltCallback;          
 
  711      case HAL_I2S_TX_HALF_COMPLETE_CB_ID :
 
  715      case HAL_I2S_RX_HALF_COMPLETE_CB_ID :
 
  719#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
  720      case HAL_I2S_TX_RX_HALF_COMPLETE_CB_ID :
 
  721        hi2s->TxRxHalfCpltCallback = HAL_I2SEx_TxRxHalfCpltCallback;  
 
  725      case HAL_I2S_ERROR_CB_ID :
 
  729      case HAL_I2S_MSPINIT_CB_ID :
 
  733      case HAL_I2S_MSPDEINIT_CB_ID :
 
  739        SET_BIT(hi2s->
ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK);
 
  750      case HAL_I2S_MSPINIT_CB_ID :
 
  754      case HAL_I2S_MSPDEINIT_CB_ID :
 
  760        SET_BIT(hi2s->
ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK);
 
  770    SET_BIT(hi2s->
ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK);
 
  844  uint32_t tmpreg_cfgr;
 
  846  if ((pData == NULL) || (Size == 0U))
 
  864  tmpreg_cfgr = hi2s->
Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN);
 
  877  tmpreg_cfgr = hi2s->
Instance->I2SCFGR;
 
  880  if ((hi2s->
Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE)
 
 
  962  uint32_t tmpreg_cfgr;
 
  964  if ((pData == NULL) || (Size == 0U))
 
  982  tmpreg_cfgr = hi2s->
Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN);
 
  996  if ((hi2s->
Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE)
 
 
 1059  uint32_t tmpreg_cfgr;
 
 1061  if ((pData == NULL) || (Size == 0U))
 
 1079  tmpreg_cfgr = hi2s->
Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN);
 
 1098  if ((hi2s->
Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE)
 
 
 1125  uint32_t tmpreg_cfgr;
 
 1127  if ((pData == NULL) || (Size == 0U))
 
 1145  tmpreg_cfgr = hi2s->
Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN);
 
 1164  if ((hi2s->
Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE)
 
 
 1189  uint32_t tmpreg_cfgr;
 
 1191  if ((pData == NULL) || (Size == 0U))
 
 1209  tmpreg_cfgr = hi2s->
Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN);
 
 1251    SET_BIT(hi2s->
Instance->CR2, SPI_CR2_TXDMAEN);
 
 
 1280  uint32_t tmpreg_cfgr;
 
 1282  if ((pData == NULL) || (Size == 0U))
 
 1300  tmpreg_cfgr = hi2s->
Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN);
 
 1348    SET_BIT(hi2s->
Instance->CR2, SPI_CR2_RXDMAEN);
 
 
 1375    CLEAR_BIT(hi2s->
Instance->CR2, SPI_CR2_TXDMAEN);
 
 1380    CLEAR_BIT(hi2s->
Instance->CR2, SPI_CR2_RXDMAEN);
 
 1382#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
 1386    CLEAR_BIT(hi2s->
Instance->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN));
 
 1387    CLEAR_BIT(I2SxEXT(hi2s->
Instance)->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN));
 
 
 1415    SET_BIT(hi2s->
Instance->CR2, SPI_CR2_TXDMAEN);
 
 1420    SET_BIT(hi2s->
Instance->CR2, SPI_CR2_RXDMAEN);
 
 1422#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
 1426    SET_BIT(hi2s->
Instance->CR2, (SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN));
 
 1427    SET_BIT(I2SxEXT(hi2s->
Instance)->CR2, (SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN));
 
 1430    if ((I2SxEXT(hi2s->
Instance)->I2SCFGR & SPI_I2SCFGR_I2SE) == 0U)
 
 1433      __HAL_I2SEXT_ENABLE(hi2s);
 
 
 1463#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
 1476    if (hi2s->
hdmatx != NULL)
 
 1511    CLEAR_BIT(hi2s->
Instance->CR2, SPI_CR2_TXDMAEN);
 
 1513#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
 1518      if (hi2s->
hdmarx != NULL)
 
 1529      __HAL_I2SEXT_DISABLE(hi2s);
 
 1532      __HAL_I2SEXT_CLEAR_OVRFLAG(hi2s);
 
 1535      CLEAR_BIT(I2SxEXT(hi2s->
Instance)->CR2, SPI_CR2_RXDMAEN);
 
 1549        READ_REG(I2SxEXT(hi2s->
Instance)->DR);
 
 1558    if (hi2s->
hdmarx != NULL)
 
 1567#if defined (SPI_I2S_FULLDUPLEX_SUPPORT) 
 1572      if (hi2s->
hdmatx != NULL)
 
 1585      while (__HAL_I2SEXT_GET_FLAG(hi2s, 
I2S_FLAG_TXE) != SET)
 
 1599      while (__HAL_I2SEXT_GET_FLAG(hi2s, 
I2S_FLAG_BSY) != RESET)
 
 1613      __HAL_I2SEXT_DISABLE(hi2s);
 
 1616      __HAL_I2SEXT_CLEAR_UDRFLAG(hi2s);
 
 1619      CLEAR_BIT(I2SxEXT(hi2s->
Instance)->CR2, SPI_CR2_TXDMAEN);
 
 1630    CLEAR_BIT(hi2s->
Instance->CR2, SPI_CR2_RXDMAEN);
 
 
 1810    CLEAR_BIT(hi2s->
Instance->CR2, SPI_CR2_TXDMAEN);
 
 1816#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 1817  hi2s->TxCpltCallback(hi2s);
 
 
 1834#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 1835  hi2s->TxHalfCpltCallback(hi2s);
 
 
 1855    CLEAR_BIT(hi2s->
Instance->CR2, SPI_CR2_RXDMAEN);
 
 1860#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 1861  hi2s->RxCpltCallback(hi2s);
 
 
 1878#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 1879  hi2s->RxHalfCpltCallback(hi2s);
 
 
 1896  CLEAR_BIT(hi2s->
Instance->CR2, (SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN));
 
 1905#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 1906  hi2s->ErrorCallback(hi2s);
 
 
 1932#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 1933    hi2s->TxCpltCallback(hi2s);
 
 
 1960#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 1961    hi2s->RxCpltCallback(hi2s);
 
 
 1976  __IO uint32_t i2ssr = hi2s->
Instance->SR;
 
 2002#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 2003      hi2s->ErrorCallback(hi2s);
 
 2033#if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U) 
 2034      hi2s->ErrorCallback(hi2s);
 
 
 2064      if (((
HAL_GetTick() - tickstart) >= Timeout) || (Timeout == 0U))
 
 
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
 
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
 
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
 
#define I2S_AUDIOFREQ_DEFAULT
 
#define HAL_I2S_ERROR_BUSY_LINE_RX
 
#define HAL_I2S_ERROR_UDR
 
#define HAL_I2S_ERROR_NONE
 
#define HAL_I2S_ERROR_DMA
 
#define HAL_I2S_ERROR_PRESCALER
 
#define HAL_I2S_ERROR_TIMEOUT
 
#define HAL_I2S_ERROR_OVR
 
void HAL_I2S_MspInit(I2S_HandleTypeDef *hi2s)
I2S MSP Init.
 
void HAL_I2S_MspDeInit(I2S_HandleTypeDef *hi2s)
I2S MSP DeInit.
 
HAL_StatusTypeDef HAL_I2S_Init(I2S_HandleTypeDef *hi2s)
Initializes the I2S according to the specified parameters in the I2S_InitTypeDef and create the assoc...
 
HAL_StatusTypeDef HAL_I2S_DeInit(I2S_HandleTypeDef *hi2s)
DeInitializes the I2S peripheral.
 
HAL_StatusTypeDef HAL_I2S_Receive_IT(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size)
Receive an amount of data in non-blocking mode with Interrupt.
 
HAL_StatusTypeDef HAL_I2S_DMAPause(I2S_HandleTypeDef *hi2s)
Pauses the audio DMA Stream/Channel playing from the Media.
 
HAL_StatusTypeDef HAL_I2S_Receive(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size, uint32_t Timeout)
Receive an amount of data in blocking mode.
 
HAL_StatusTypeDef HAL_I2S_Transmit_IT(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size)
Transmit an amount of data in non-blocking mode with Interrupt.
 
void HAL_I2S_TxHalfCpltCallback(I2S_HandleTypeDef *hi2s)
Tx Transfer Half completed callbacks.
 
void HAL_I2S_RxCpltCallback(I2S_HandleTypeDef *hi2s)
Rx Transfer completed callbacks.
 
HAL_StatusTypeDef HAL_I2S_Transmit_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size)
Transmit an amount of data in non-blocking mode with DMA.
 
void HAL_I2S_TxCpltCallback(I2S_HandleTypeDef *hi2s)
Tx Transfer completed callbacks.
 
HAL_StatusTypeDef HAL_I2S_DMAResume(I2S_HandleTypeDef *hi2s)
Resumes the audio DMA Stream/Channel playing from the Media.
 
void HAL_I2S_ErrorCallback(I2S_HandleTypeDef *hi2s)
I2S error callbacks.
 
HAL_StatusTypeDef HAL_I2S_Receive_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size)
Receive an amount of data in non-blocking mode with DMA.
 
void HAL_I2S_RxHalfCpltCallback(I2S_HandleTypeDef *hi2s)
Rx Transfer half completed callbacks.
 
HAL_StatusTypeDef HAL_I2S_Transmit(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size, uint32_t Timeout)
Transmit an amount of data in blocking mode.
 
void HAL_I2S_IRQHandler(I2S_HandleTypeDef *hi2s)
This function handles I2S interrupt request.
 
HAL_StatusTypeDef HAL_I2S_DMAStop(I2S_HandleTypeDef *hi2s)
Stops the audio DMA Stream/Channel playing from the Media.
 
uint32_t HAL_I2S_GetError(I2S_HandleTypeDef *hi2s)
Return the I2S error code.
 
HAL_I2S_StateTypeDef HAL_I2S_GetState(I2S_HandleTypeDef *hi2s)
Return the I2S state.
 
HAL_I2S_StateTypeDef
HAL State structures definition.
 
@ HAL_I2S_STATE_BUSY_TX_RX
 
#define __HAL_I2S_ENABLE(__HANDLE__)
Enable the specified SPI peripheral (in I2S mode).
 
#define __HAL_I2S_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
Checks if the specified I2S interrupt source is enabled or disabled.
 
#define __HAL_I2S_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disable the specified I2S interrupts.
 
#define __HAL_I2S_GET_FLAG(__HANDLE__, __FLAG__)
Checks whether the specified I2S flag is set or not.
 
#define __HAL_I2S_CLEAR_OVRFLAG(__HANDLE__)
Clears the I2S OVR pending flag.
 
#define __HAL_I2S_DISABLE(__HANDLE__)
Disable the specified SPI peripheral (in I2S mode).
 
#define __HAL_I2S_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the specified I2S interrupts.
 
#define __HAL_I2S_CLEAR_UDRFLAG(__HANDLE__)
Clears the I2S UDR pending flag.
 
#define I2S_FULLDUPLEXMODE_ENABLE
 
#define I2S_MCLKOUTPUT_ENABLE
 
#define I2S_MODE_SLAVE_RX
 
#define I2S_MODE_MASTER_TX
 
#define I2S_MODE_SLAVE_TX
 
#define I2S_MODE_MASTER_RX
 
static void I2S_DMATxCplt(DMA_HandleTypeDef *hdma)
DMA I2S transmit process complete callback.
 
static HAL_StatusTypeDef I2S_WaitFlagStateUntilTimeout(I2S_HandleTypeDef *hi2s, uint32_t Flag, FlagStatus State, uint32_t Timeout)
This function handles I2S Communication Timeout.
 
static void I2S_Receive_IT(I2S_HandleTypeDef *hi2s)
Receive an amount of data in non-blocking mode with Interrupt.
 
static void I2S_DMATxHalfCplt(DMA_HandleTypeDef *hdma)
DMA I2S transmit process half complete callback.
 
static void I2S_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
DMA I2S receive process half complete callback.
 
static void I2S_Transmit_IT(I2S_HandleTypeDef *hi2s)
Transmit an amount of data in non-blocking mode with Interrupt.
 
static void I2S_IRQHandler(I2S_HandleTypeDef *hi2s)
This function handles I2S interrupt request.
 
static void I2S_DMAError(DMA_HandleTypeDef *hdma)
DMA I2S communication error callback.
 
static void I2S_DMARxCplt(DMA_HandleTypeDef *hdma)
DMA I2S receive process complete callback.
 
#define IS_I2S_CLOCKSOURCE(CLOCK)
 
#define IS_I2S_MCLK_OUTPUT(__OUTPUT__)
 
#define IS_I2S_FULLDUPLEX_MODE(MODE)
 
#define IS_I2S_STANDARD(__STANDARD__)
 
#define IS_I2S_AUDIO_FREQ(__FREQ__)
 
#define IS_I2S_MODE(__MODE__)
Checks if I2S Mode parameter is in allowed range.
 
#define IS_I2S_CPOL(__CPOL__)
Checks if I2S Serial clock steady state parameter is in allowed range.
 
#define IS_I2S_DATA_FORMAT(__FORMAT__)
 
#define I2S_STANDARD_PCM_SHORT
 
#define I2S_STANDARD_PCM_LONG
 
uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk)
Return the peripheral clock frequency for a given peripheral(SAI..)
 
#define RCC_PERIPHCLK_I2S_APB1
 
#define RCC_PERIPHCLK_I2S_APB2
 
#define assert_param(expr)
 
This file contains all the functions prototypes for the HAL module driver.
 
HAL_StatusTypeDef
HAL Status structures definition
 
#define __HAL_UNLOCK(__HANDLE__)
 
#define HAL_IS_BIT_CLR(REG, BIT)
 
#define __HAL_LOCK(__HANDLE__)
 
DMA handle Structure definition.
 
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
 
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
 
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
 
I2S handle Structure definition.
 
__IO uint16_t RxXferCount
 
DMA_HandleTypeDef * hdmarx
 
__IO uint16_t TxXferCount
 
DMA_HandleTypeDef * hdmatx
 
__IO HAL_LockTypeDef Lock
 
void(* IrqHandlerISR)(struct __I2S_HandleTypeDef *hi2s)
 
__IO HAL_I2S_StateTypeDef State