91 #include "stm32f4xx_hal.h"
97 #ifdef HAL_I2S_MODULE_ENABLED
104 #if defined (SPI_I2S_FULLDUPLEX_SUPPORT)
113 I2S_USE_I2SEXT = 0x01U,
133 uint32_t
State, uint32_t Timeout, I2S_UseTypeDef i2sUsed);
206 uint16_t Size, uint32_t Timeout)
217 if ((pTxData ==
NULL) || (pRxData ==
NULL) || (Size == 0U))
258 __HAL_I2SEXT_ENABLE(hi2s);
268 __HAL_I2SEXT_CLEAR_OVRFLAG(hi2s);
276 if (I2SEx_FullDuplexWaitFlagStateUntilTimeout(hi2s,
I2S_FLAG_TXE,
SET, Timeout, I2S_USE_I2S) !=
HAL_OK)
300 if (I2SEx_FullDuplexWaitFlagStateUntilTimeout(hi2s,
I2S_FLAG_RXNE,
SET, Timeout, I2S_USE_I2SEXT) !=
HAL_OK)
308 (*pRxData++) = I2SxEXT(hi2s->
Instance)->DR;
327 I2SxEXT(hi2s->
Instance)->DR = (*pTxData++);
331 __HAL_I2SEXT_ENABLE(hi2s);
349 if (I2SEx_FullDuplexWaitFlagStateUntilTimeout(hi2s,
I2S_FLAG_TXE,
SET, Timeout, I2S_USE_I2SEXT) !=
HAL_OK)
357 I2SxEXT(hi2s->
Instance)->DR = (*pTxData++);
435 if ((pTxData ==
NULL) || (pRxData ==
NULL) || (Size == 0U))
508 __HAL_I2SEXT_ENABLE(hi2s);
536 uint32_t *tmp =
NULL;
546 if ((pTxData ==
NULL) || (pRxData ==
NULL) || (Size == 0U))
603 tmp = (uint32_t *)&pRxData;
610 tmp = (uint32_t *)&pTxData;
620 __HAL_I2SEXT_ENABLE(hi2s);
636 tmp = (uint32_t *)&pTxData;
643 tmp = (uint32_t *)&pRxData;
653 __HAL_I2SEXT_ENABLE(hi2s);
684 I2SEx_TxISR_I2S(hi2s);
692 I2SEx_RxISR_I2SExt(hi2s);
713 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
714 hi2s->ErrorCallback(hi2s);
738 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
739 hi2s->ErrorCallback(hi2s);
753 I2SEx_TxISR_I2SExt(hi2s);
761 I2SEx_RxISR_I2S(hi2s);
779 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
780 hi2s->ErrorCallback(hi2s);
801 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
802 hi2s->ErrorCallback(hi2s);
863 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
864 hi2s->TxRxHalfCpltCallback(hi2s);
903 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
904 hi2s->TxRxCpltCallback(hi2s);
931 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
932 hi2s->TxRxCpltCallback(hi2s);
962 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
963 hi2s->ErrorCallback(hi2s);
989 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
990 hi2s->TxRxCpltCallback(hi2s);
1018 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
1019 hi2s->TxRxCpltCallback(hi2s);
1047 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
1048 hi2s->TxRxCpltCallback(hi2s);
1076 #if (USE_HAL_I2S_REGISTER_CALLBACKS == 1U)
1077 hi2s->TxRxCpltCallback(hi2s);
1095 uint32_t
State, uint32_t Timeout, I2S_UseTypeDef i2sUsed)
1099 if (i2sUsed == I2S_USE_I2S)
1106 if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
1122 while (((__HAL_I2SEXT_GET_FLAG(hi2s, Flag)) ?
SET :
RESET) !=
State)
1126 if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))