Lines Matching refs:hi2s

213 static void               I2S_Transmit_IT(I2S_HandleTypeDef *hi2s);
214 static void I2S_Receive_IT(I2S_HandleTypeDef *hi2s);
215 static HAL_StatusTypeDef I2S_WaitFlagStateUntilTimeout(I2S_HandleTypeDef *hi2s, uint32_t Flag, Fla…
262 HAL_StatusTypeDef HAL_I2S_Init(I2S_HandleTypeDef *hi2s) in HAL_I2S_Init() argument
271 if (hi2s == NULL) in HAL_I2S_Init()
277 assert_param(IS_I2S_ALL_INSTANCE(hi2s->Instance)); in HAL_I2S_Init()
278 assert_param(IS_I2S_MODE(hi2s->Init.Mode)); in HAL_I2S_Init()
279 assert_param(IS_I2S_STANDARD(hi2s->Init.Standard)); in HAL_I2S_Init()
280 assert_param(IS_I2S_DATA_FORMAT(hi2s->Init.DataFormat)); in HAL_I2S_Init()
281 assert_param(IS_I2S_MCLK_OUTPUT(hi2s->Init.MCLKOutput)); in HAL_I2S_Init()
282 assert_param(IS_I2S_AUDIO_FREQ(hi2s->Init.AudioFreq)); in HAL_I2S_Init()
283 assert_param(IS_I2S_CPOL(hi2s->Init.CPOL)); in HAL_I2S_Init()
285 if (hi2s->State == HAL_I2S_STATE_RESET) in HAL_I2S_Init()
288 hi2s->Lock = HAL_UNLOCKED; in HAL_I2S_Init()
292hi2s->TxCpltCallback = HAL_I2S_TxCpltCallback; /* Legacy weak TxCpltCallback … in HAL_I2S_Init()
293hi2s->RxCpltCallback = HAL_I2S_RxCpltCallback; /* Legacy weak RxCpltCallback … in HAL_I2S_Init()
294hi2s->TxHalfCpltCallback = HAL_I2S_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback … in HAL_I2S_Init()
295hi2s->RxHalfCpltCallback = HAL_I2S_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback … in HAL_I2S_Init()
296hi2s->ErrorCallback = HAL_I2S_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_I2S_Init()
298 if (hi2s->MspInitCallback == NULL) in HAL_I2S_Init()
300 hi2s->MspInitCallback = HAL_I2S_MspInit; /* Legacy weak MspInit */ in HAL_I2S_Init()
304 hi2s->MspInitCallback(hi2s); in HAL_I2S_Init()
307 HAL_I2S_MspInit(hi2s); in HAL_I2S_Init()
311 hi2s->State = HAL_I2S_STATE_BUSY; in HAL_I2S_Init()
315 CLEAR_BIT(hi2s->Instance->I2SCFGR, (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CKPOL | \ in HAL_I2S_Init()
318 hi2s->Instance->I2SPR = 0x0002U; in HAL_I2S_Init()
322 if (hi2s->Init.AudioFreq != I2S_AUDIOFREQ_DEFAULT) in HAL_I2S_Init()
325 if (hi2s->Init.DataFormat == I2S_DATAFORMAT_16B) in HAL_I2S_Init()
337 if (hi2s->Init.Standard <= I2S_STANDARD_LSB) in HAL_I2S_Init()
347 if (hi2s->Init.MCLKOutput == I2S_MCLKOUTPUT_ENABLE) in HAL_I2S_Init()
350 if (hi2s->Init.DataFormat != I2S_DATAFORMAT_16B) in HAL_I2S_Init()
352 tmp = (uint32_t)(((((i2sclk / (packetlength * 4U)) * 10U) / hi2s->Init.AudioFreq)) + 5U); in HAL_I2S_Init()
356 tmp = (uint32_t)(((((i2sclk / (packetlength * 8U)) * 10U) / hi2s->Init.AudioFreq)) + 5U); in HAL_I2S_Init()
362 tmp = (uint32_t)(((((i2sclk / packetlength) * 10U) / hi2s->Init.AudioFreq)) + 5U); in HAL_I2S_Init()
388 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_PRESCALER); in HAL_I2S_Init()
395hi2s->Instance->I2SPR = (uint32_t)((uint32_t)i2sdiv | (uint32_t)(i2sodd | (uint32_t)hi2s->Init.MCL… in HAL_I2S_Init()
399 MODIFY_REG(hi2s->Instance->I2SCFGR, (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN | \ in HAL_I2S_Init()
403 (SPI_I2SCFGR_I2SMOD | hi2s->Init.Mode | \ in HAL_I2S_Init()
404 hi2s->Init.Standard | hi2s->Init.DataFormat | \ in HAL_I2S_Init()
405 hi2s->Init.CPOL)); in HAL_I2S_Init()
408 …if ((hi2s->Init.Standard == I2S_STANDARD_PCM_SHORT) || ((hi2s->Init.Standard == I2S_STANDARD_PCM_L… in HAL_I2S_Init()
411 SET_BIT(hi2s->Instance->I2SCFGR, SPI_I2SCFGR_ASTRTEN); in HAL_I2S_Init()
415 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Init()
416 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Init()
427 HAL_StatusTypeDef HAL_I2S_DeInit(I2S_HandleTypeDef *hi2s) in HAL_I2S_DeInit() argument
430 if (hi2s == NULL) in HAL_I2S_DeInit()
436 assert_param(IS_I2S_ALL_INSTANCE(hi2s->Instance)); in HAL_I2S_DeInit()
438 hi2s->State = HAL_I2S_STATE_BUSY; in HAL_I2S_DeInit()
441 __HAL_I2S_DISABLE(hi2s); in HAL_I2S_DeInit()
444 if (hi2s->MspDeInitCallback == NULL) in HAL_I2S_DeInit()
446 hi2s->MspDeInitCallback = HAL_I2S_MspDeInit; /* Legacy weak MspDeInit */ in HAL_I2S_DeInit()
450 hi2s->MspDeInitCallback(hi2s); in HAL_I2S_DeInit()
453 HAL_I2S_MspDeInit(hi2s); in HAL_I2S_DeInit()
456 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_DeInit()
457 hi2s->State = HAL_I2S_STATE_RESET; in HAL_I2S_DeInit()
460 __HAL_UNLOCK(hi2s); in HAL_I2S_DeInit()
471 __weak void HAL_I2S_MspInit(I2S_HandleTypeDef *hi2s) in HAL_I2S_MspInit() argument
474 UNUSED(hi2s); in HAL_I2S_MspInit()
487 __weak void HAL_I2S_MspDeInit(I2S_HandleTypeDef *hi2s) in HAL_I2S_MspDeInit() argument
490 UNUSED(hi2s); in HAL_I2S_MspDeInit()
507 HAL_StatusTypeDef HAL_I2S_RegisterCallback(I2S_HandleTypeDef *hi2s, HAL_I2S_CallbackIDTypeDef Callb… in HAL_I2S_RegisterCallback() argument
515 hi2s->ErrorCode |= HAL_I2S_ERROR_INVALID_CALLBACK; in HAL_I2S_RegisterCallback()
520 __HAL_LOCK(hi2s); in HAL_I2S_RegisterCallback()
522 if (HAL_I2S_STATE_READY == hi2s->State) in HAL_I2S_RegisterCallback()
527 hi2s->TxCpltCallback = pCallback; in HAL_I2S_RegisterCallback()
531 hi2s->RxCpltCallback = pCallback; in HAL_I2S_RegisterCallback()
535 hi2s->TxHalfCpltCallback = pCallback; in HAL_I2S_RegisterCallback()
539 hi2s->RxHalfCpltCallback = pCallback; in HAL_I2S_RegisterCallback()
543 hi2s->ErrorCallback = pCallback; in HAL_I2S_RegisterCallback()
547 hi2s->MspInitCallback = pCallback; in HAL_I2S_RegisterCallback()
551 hi2s->MspDeInitCallback = pCallback; in HAL_I2S_RegisterCallback()
556 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_RegisterCallback()
563 else if (HAL_I2S_STATE_RESET == hi2s->State) in HAL_I2S_RegisterCallback()
568 hi2s->MspInitCallback = pCallback; in HAL_I2S_RegisterCallback()
572 hi2s->MspDeInitCallback = pCallback; in HAL_I2S_RegisterCallback()
577 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_RegisterCallback()
587 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_RegisterCallback()
594 __HAL_UNLOCK(hi2s); in HAL_I2S_RegisterCallback()
606 HAL_StatusTypeDef HAL_I2S_UnRegisterCallback(I2S_HandleTypeDef *hi2s, HAL_I2S_CallbackIDTypeDef Cal… in HAL_I2S_UnRegisterCallback() argument
611 __HAL_LOCK(hi2s); in HAL_I2S_UnRegisterCallback()
613 if (HAL_I2S_STATE_READY == hi2s->State) in HAL_I2S_UnRegisterCallback()
618hi2s->TxCpltCallback = HAL_I2S_TxCpltCallback; /* Legacy weak TxCpltCallback … in HAL_I2S_UnRegisterCallback()
622hi2s->RxCpltCallback = HAL_I2S_RxCpltCallback; /* Legacy weak RxCpltCallback … in HAL_I2S_UnRegisterCallback()
626hi2s->TxHalfCpltCallback = HAL_I2S_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback … in HAL_I2S_UnRegisterCallback()
630hi2s->RxHalfCpltCallback = HAL_I2S_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback … in HAL_I2S_UnRegisterCallback()
634hi2s->ErrorCallback = HAL_I2S_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_I2S_UnRegisterCallback()
638hi2s->MspInitCallback = HAL_I2S_MspInit; /* Legacy weak MspInit … in HAL_I2S_UnRegisterCallback()
642hi2s->MspDeInitCallback = HAL_I2S_MspDeInit; /* Legacy weak MspDeInit … in HAL_I2S_UnRegisterCallback()
647 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_UnRegisterCallback()
654 else if (HAL_I2S_STATE_RESET == hi2s->State) in HAL_I2S_UnRegisterCallback()
659hi2s->MspInitCallback = HAL_I2S_MspInit; /* Legacy weak MspInit … in HAL_I2S_UnRegisterCallback()
663hi2s->MspDeInitCallback = HAL_I2S_MspDeInit; /* Legacy weak MspDeInit … in HAL_I2S_UnRegisterCallback()
668 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_UnRegisterCallback()
678 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_UnRegisterCallback()
685 __HAL_UNLOCK(hi2s); in HAL_I2S_UnRegisterCallback()
750 HAL_StatusTypeDef HAL_I2S_Transmit(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size, uint32_… in HAL_I2S_Transmit() argument
760 __HAL_LOCK(hi2s); in HAL_I2S_Transmit()
762 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Transmit()
764 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
769 hi2s->State = HAL_I2S_STATE_BUSY_TX; in HAL_I2S_Transmit()
770 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Transmit()
771 hi2s->pTxBuffPtr = pData; in HAL_I2S_Transmit()
773 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Transmit()
777 hi2s->TxXferSize = (Size << 1U); in HAL_I2S_Transmit()
778 hi2s->TxXferCount = (Size << 1U); in HAL_I2S_Transmit()
782 hi2s->TxXferSize = Size; in HAL_I2S_Transmit()
783 hi2s->TxXferCount = Size; in HAL_I2S_Transmit()
786 tmpreg_cfgr = hi2s->Instance->I2SCFGR; in HAL_I2S_Transmit()
789 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE) in HAL_I2S_Transmit()
792 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Transmit()
796 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_TXE, SET, Timeout) != HAL_OK) in HAL_I2S_Transmit()
799 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_Transmit()
800 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit()
801 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
805 while (hi2s->TxXferCount > 0U) in HAL_I2S_Transmit()
807 hi2s->Instance->DR = (*hi2s->pTxBuffPtr); in HAL_I2S_Transmit()
808 hi2s->pTxBuffPtr++; in HAL_I2S_Transmit()
809 hi2s->TxXferCount--; in HAL_I2S_Transmit()
812 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_TXE, SET, Timeout) != HAL_OK) in HAL_I2S_Transmit()
815 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_Transmit()
816 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit()
817 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
822 if (__HAL_I2S_GET_FLAG(hi2s, I2S_FLAG_UDR) == SET) in HAL_I2S_Transmit()
825 __HAL_I2S_CLEAR_UDRFLAG(hi2s); in HAL_I2S_Transmit()
828 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_UDR); in HAL_I2S_Transmit()
837 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_BSY, RESET, Timeout) != HAL_OK) in HAL_I2S_Transmit()
840 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_Transmit()
841 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit()
842 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
847 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit()
848 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
869 HAL_StatusTypeDef HAL_I2S_Receive(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size, uint32_t… in HAL_I2S_Receive() argument
879 __HAL_LOCK(hi2s); in HAL_I2S_Receive()
881 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Receive()
883 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive()
888 hi2s->State = HAL_I2S_STATE_BUSY_RX; in HAL_I2S_Receive()
889 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Receive()
890 hi2s->pRxBuffPtr = pData; in HAL_I2S_Receive()
892 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Receive()
896 hi2s->RxXferSize = (Size << 1U); in HAL_I2S_Receive()
897 hi2s->RxXferCount = (Size << 1U); in HAL_I2S_Receive()
901 hi2s->RxXferSize = Size; in HAL_I2S_Receive()
902 hi2s->RxXferCount = Size; in HAL_I2S_Receive()
906 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE) in HAL_I2S_Receive()
909 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Receive()
913 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SCFG) == I2S_MODE_MASTER_RX) in HAL_I2S_Receive()
917 __HAL_I2S_CLEAR_OVRFLAG(hi2s); in HAL_I2S_Receive()
921 while (hi2s->RxXferCount > 0U) in HAL_I2S_Receive()
924 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_RXNE, SET, Timeout) != HAL_OK) in HAL_I2S_Receive()
927 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_Receive()
928 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Receive()
929 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive()
933 (*hi2s->pRxBuffPtr) = (uint16_t)hi2s->Instance->DR; in HAL_I2S_Receive()
934 hi2s->pRxBuffPtr++; in HAL_I2S_Receive()
935 hi2s->RxXferCount--; in HAL_I2S_Receive()
938 if (__HAL_I2S_GET_FLAG(hi2s, I2S_FLAG_OVR) == SET) in HAL_I2S_Receive()
941 __HAL_I2S_CLEAR_OVRFLAG(hi2s); in HAL_I2S_Receive()
944 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_OVR); in HAL_I2S_Receive()
948 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Receive()
949 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive()
967 HAL_StatusTypeDef HAL_I2S_Transmit_IT(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size) in HAL_I2S_Transmit_IT() argument
977 __HAL_LOCK(hi2s); in HAL_I2S_Transmit_IT()
979 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Transmit_IT()
981 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit_IT()
986 hi2s->State = HAL_I2S_STATE_BUSY_TX; in HAL_I2S_Transmit_IT()
987 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Transmit_IT()
988 hi2s->pTxBuffPtr = pData; in HAL_I2S_Transmit_IT()
990 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Transmit_IT()
994 hi2s->TxXferSize = (Size << 1U); in HAL_I2S_Transmit_IT()
995 hi2s->TxXferCount = (Size << 1U); in HAL_I2S_Transmit_IT()
999 hi2s->TxXferSize = Size; in HAL_I2S_Transmit_IT()
1000 hi2s->TxXferCount = Size; in HAL_I2S_Transmit_IT()
1004 __HAL_I2S_ENABLE_IT(hi2s, (I2S_IT_TXE | I2S_IT_ERR)); in HAL_I2S_Transmit_IT()
1007 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE) in HAL_I2S_Transmit_IT()
1010 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Transmit_IT()
1013 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit_IT()
1033 HAL_StatusTypeDef HAL_I2S_Receive_IT(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size) in HAL_I2S_Receive_IT() argument
1043 __HAL_LOCK(hi2s); in HAL_I2S_Receive_IT()
1045 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Receive_IT()
1047 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive_IT()
1052 hi2s->State = HAL_I2S_STATE_BUSY_RX; in HAL_I2S_Receive_IT()
1053 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Receive_IT()
1054 hi2s->pRxBuffPtr = pData; in HAL_I2S_Receive_IT()
1056 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Receive_IT()
1060 hi2s->RxXferSize = (Size << 1U); in HAL_I2S_Receive_IT()
1061 hi2s->RxXferCount = (Size << 1U); in HAL_I2S_Receive_IT()
1065 hi2s->RxXferSize = Size; in HAL_I2S_Receive_IT()
1066 hi2s->RxXferCount = Size; in HAL_I2S_Receive_IT()
1070 __HAL_I2S_ENABLE_IT(hi2s, (I2S_IT_RXNE | I2S_IT_ERR)); in HAL_I2S_Receive_IT()
1073 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE) in HAL_I2S_Receive_IT()
1076 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Receive_IT()
1079 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive_IT()
1097 HAL_StatusTypeDef HAL_I2S_Transmit_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size) in HAL_I2S_Transmit_DMA() argument
1107 __HAL_LOCK(hi2s); in HAL_I2S_Transmit_DMA()
1109 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Transmit_DMA()
1111 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit_DMA()
1116 hi2s->State = HAL_I2S_STATE_BUSY_TX; in HAL_I2S_Transmit_DMA()
1117 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Transmit_DMA()
1118 hi2s->pTxBuffPtr = pData; in HAL_I2S_Transmit_DMA()
1120 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Transmit_DMA()
1124 hi2s->TxXferSize = (Size << 1U); in HAL_I2S_Transmit_DMA()
1125 hi2s->TxXferCount = (Size << 1U); in HAL_I2S_Transmit_DMA()
1129 hi2s->TxXferSize = Size; in HAL_I2S_Transmit_DMA()
1130 hi2s->TxXferCount = Size; in HAL_I2S_Transmit_DMA()
1134 hi2s->hdmatx->XferHalfCpltCallback = I2S_DMATxHalfCplt; in HAL_I2S_Transmit_DMA()
1137 hi2s->hdmatx->XferCpltCallback = I2S_DMATxCplt; in HAL_I2S_Transmit_DMA()
1140 hi2s->hdmatx->XferErrorCallback = I2S_DMAError; in HAL_I2S_Transmit_DMA()
1143 if (HAL_OK != HAL_DMA_Start_IT(hi2s->hdmatx, in HAL_I2S_Transmit_DMA()
1144 (uint32_t)hi2s->pTxBuffPtr, in HAL_I2S_Transmit_DMA()
1145 (uint32_t)&hi2s->Instance->DR, in HAL_I2S_Transmit_DMA()
1146 hi2s->TxXferSize)) in HAL_I2S_Transmit_DMA()
1149 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in HAL_I2S_Transmit_DMA()
1150 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit_DMA()
1152 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit_DMA()
1157 if (HAL_IS_BIT_CLR(hi2s->Instance->I2SCFGR, SPI_I2SCFGR_I2SE)) in HAL_I2S_Transmit_DMA()
1160 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Transmit_DMA()
1164 if (HAL_IS_BIT_CLR(hi2s->Instance->CR2, SPI_CR2_TXDMAEN)) in HAL_I2S_Transmit_DMA()
1167 SET_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in HAL_I2S_Transmit_DMA()
1170 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit_DMA()
1188 HAL_StatusTypeDef HAL_I2S_Receive_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size) in HAL_I2S_Receive_DMA() argument
1198 __HAL_LOCK(hi2s); in HAL_I2S_Receive_DMA()
1200 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Receive_DMA()
1202 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive_DMA()
1207 hi2s->State = HAL_I2S_STATE_BUSY_RX; in HAL_I2S_Receive_DMA()
1208 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Receive_DMA()
1209 hi2s->pRxBuffPtr = pData; in HAL_I2S_Receive_DMA()
1211 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Receive_DMA()
1215 hi2s->RxXferSize = (Size << 1U); in HAL_I2S_Receive_DMA()
1216 hi2s->RxXferCount = (Size << 1U); in HAL_I2S_Receive_DMA()
1220 hi2s->RxXferSize = Size; in HAL_I2S_Receive_DMA()
1221 hi2s->RxXferCount = Size; in HAL_I2S_Receive_DMA()
1225 hi2s->hdmarx->XferHalfCpltCallback = I2S_DMARxHalfCplt; in HAL_I2S_Receive_DMA()
1228 hi2s->hdmarx->XferCpltCallback = I2S_DMARxCplt; in HAL_I2S_Receive_DMA()
1231 hi2s->hdmarx->XferErrorCallback = I2S_DMAError; in HAL_I2S_Receive_DMA()
1234 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SCFG) == I2S_MODE_MASTER_RX) in HAL_I2S_Receive_DMA()
1238 __HAL_I2S_CLEAR_OVRFLAG(hi2s); in HAL_I2S_Receive_DMA()
1242 …if (HAL_OK != HAL_DMA_Start_IT(hi2s->hdmarx, (uint32_t)&hi2s->Instance->DR, (uint32_t)hi2s->pRxBuf… in HAL_I2S_Receive_DMA()
1243 hi2s->RxXferSize)) in HAL_I2S_Receive_DMA()
1246 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in HAL_I2S_Receive_DMA()
1247 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Receive_DMA()
1249 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive_DMA()
1254 if (HAL_IS_BIT_CLR(hi2s->Instance->I2SCFGR, SPI_I2SCFGR_I2SE)) in HAL_I2S_Receive_DMA()
1257 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Receive_DMA()
1261 if (HAL_IS_BIT_CLR(hi2s->Instance->CR2, SPI_CR2_RXDMAEN)) in HAL_I2S_Receive_DMA()
1264 SET_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in HAL_I2S_Receive_DMA()
1267 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive_DMA()
1277 HAL_StatusTypeDef HAL_I2S_DMAPause(I2S_HandleTypeDef *hi2s) in HAL_I2S_DMAPause() argument
1280 __HAL_LOCK(hi2s); in HAL_I2S_DMAPause()
1282 if (hi2s->State == HAL_I2S_STATE_BUSY_TX) in HAL_I2S_DMAPause()
1285 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in HAL_I2S_DMAPause()
1287 else if (hi2s->State == HAL_I2S_STATE_BUSY_RX) in HAL_I2S_DMAPause()
1290 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in HAL_I2S_DMAPause()
1298 __HAL_UNLOCK(hi2s); in HAL_I2S_DMAPause()
1309 HAL_StatusTypeDef HAL_I2S_DMAResume(I2S_HandleTypeDef *hi2s) in HAL_I2S_DMAResume() argument
1312 __HAL_LOCK(hi2s); in HAL_I2S_DMAResume()
1314 if (hi2s->State == HAL_I2S_STATE_BUSY_TX) in HAL_I2S_DMAResume()
1317 SET_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in HAL_I2S_DMAResume()
1319 else if (hi2s->State == HAL_I2S_STATE_BUSY_RX) in HAL_I2S_DMAResume()
1322 SET_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in HAL_I2S_DMAResume()
1330 if (HAL_IS_BIT_CLR(hi2s->Instance->I2SCFGR, SPI_I2SCFGR_I2SE)) in HAL_I2S_DMAResume()
1333 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_DMAResume()
1337 __HAL_UNLOCK(hi2s); in HAL_I2S_DMAResume()
1348 HAL_StatusTypeDef HAL_I2S_DMAStop(I2S_HandleTypeDef *hi2s) in HAL_I2S_DMAStop() argument
1357 if ((hi2s->Init.Mode == I2S_MODE_MASTER_TX) || (hi2s->Init.Mode == I2S_MODE_SLAVE_TX)) in HAL_I2S_DMAStop()
1360 if (hi2s->hdmatx != NULL) in HAL_I2S_DMAStop()
1363 if (HAL_OK != HAL_DMA_Abort(hi2s->hdmatx)) in HAL_I2S_DMAStop()
1365 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in HAL_I2S_DMAStop()
1371 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_TXE, SET, I2S_TIMEOUT_FLAG) != HAL_OK) in HAL_I2S_DMAStop()
1374 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_DMAStop()
1375 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_DMAStop()
1380 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_BSY, RESET, I2S_TIMEOUT_FLAG) != HAL_OK) in HAL_I2S_DMAStop()
1383 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_DMAStop()
1384 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_DMAStop()
1389 __HAL_I2S_DISABLE(hi2s); in HAL_I2S_DMAStop()
1392 __HAL_I2S_CLEAR_UDRFLAG(hi2s); in HAL_I2S_DMAStop()
1395 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in HAL_I2S_DMAStop()
1399 else if ((hi2s->Init.Mode == I2S_MODE_MASTER_RX) || (hi2s->Init.Mode == I2S_MODE_SLAVE_RX)) in HAL_I2S_DMAStop()
1402 if (hi2s->hdmarx != NULL) in HAL_I2S_DMAStop()
1405 if (HAL_OK != HAL_DMA_Abort(hi2s->hdmarx)) in HAL_I2S_DMAStop()
1407 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in HAL_I2S_DMAStop()
1413 __HAL_I2S_DISABLE(hi2s); in HAL_I2S_DMAStop()
1416 __HAL_I2S_CLEAR_OVRFLAG(hi2s); in HAL_I2S_DMAStop()
1419 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in HAL_I2S_DMAStop()
1421 if (hi2s->Init.Mode == I2S_MODE_SLAVE_RX) in HAL_I2S_DMAStop()
1424 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_BUSY_LINE_RX); in HAL_I2S_DMAStop()
1427 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_DMAStop()
1433 READ_REG((hi2s->Instance)->DR); in HAL_I2S_DMAStop()
1437 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_DMAStop()
1448 void HAL_I2S_IRQHandler(I2S_HandleTypeDef *hi2s) in HAL_I2S_IRQHandler() argument
1450 uint32_t itsource = hi2s->Instance->CR2; in HAL_I2S_IRQHandler()
1451 uint32_t itflag = hi2s->Instance->SR; in HAL_I2S_IRQHandler()
1457 I2S_Receive_IT(hi2s); in HAL_I2S_IRQHandler()
1464 I2S_Transmit_IT(hi2s); in HAL_I2S_IRQHandler()
1475 __HAL_I2S_DISABLE_IT(hi2s, (I2S_IT_RXNE | I2S_IT_ERR)); in HAL_I2S_IRQHandler()
1478 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_OVR); in HAL_I2S_IRQHandler()
1485 __HAL_I2S_DISABLE_IT(hi2s, (I2S_IT_TXE | I2S_IT_ERR)); in HAL_I2S_IRQHandler()
1488 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_UDR); in HAL_I2S_IRQHandler()
1492 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_IRQHandler()
1496 hi2s->ErrorCallback(hi2s); in HAL_I2S_IRQHandler()
1498 HAL_I2S_ErrorCallback(hi2s); in HAL_I2S_IRQHandler()
1509 __weak void HAL_I2S_TxHalfCpltCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_TxHalfCpltCallback() argument
1512 UNUSED(hi2s); in HAL_I2S_TxHalfCpltCallback()
1525 __weak void HAL_I2S_TxCpltCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_TxCpltCallback() argument
1528 UNUSED(hi2s); in HAL_I2S_TxCpltCallback()
1541 __weak void HAL_I2S_RxHalfCpltCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_RxHalfCpltCallback() argument
1544 UNUSED(hi2s); in HAL_I2S_RxHalfCpltCallback()
1557 __weak void HAL_I2S_RxCpltCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_RxCpltCallback() argument
1560 UNUSED(hi2s); in HAL_I2S_RxCpltCallback()
1573 __weak void HAL_I2S_ErrorCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_ErrorCallback() argument
1576 UNUSED(hi2s); in HAL_I2S_ErrorCallback()
1608 HAL_I2S_StateTypeDef HAL_I2S_GetState(I2S_HandleTypeDef *hi2s) in HAL_I2S_GetState() argument
1610 return hi2s->State; in HAL_I2S_GetState()
1619 uint32_t HAL_I2S_GetError(I2S_HandleTypeDef *hi2s) in HAL_I2S_GetError() argument
1621 return hi2s->ErrorCode; in HAL_I2S_GetError()
1642 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMATxCplt() local
1648 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in I2S_DMATxCplt()
1650 hi2s->TxXferCount = 0U; in I2S_DMATxCplt()
1651 hi2s->State = HAL_I2S_STATE_READY; in I2S_DMATxCplt()
1655 hi2s->TxCpltCallback(hi2s); in I2S_DMATxCplt()
1657 HAL_I2S_TxCpltCallback(hi2s); in I2S_DMATxCplt()
1669 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMATxHalfCplt() local
1673 hi2s->TxHalfCpltCallback(hi2s); in I2S_DMATxHalfCplt()
1675 HAL_I2S_TxHalfCpltCallback(hi2s); in I2S_DMATxHalfCplt()
1687 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMARxCplt() local
1693 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in I2S_DMARxCplt()
1694 hi2s->RxXferCount = 0U; in I2S_DMARxCplt()
1695 hi2s->State = HAL_I2S_STATE_READY; in I2S_DMARxCplt()
1699 hi2s->RxCpltCallback(hi2s); in I2S_DMARxCplt()
1701 HAL_I2S_RxCpltCallback(hi2s); in I2S_DMARxCplt()
1713 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMARxHalfCplt() local
1717 hi2s->RxHalfCpltCallback(hi2s); in I2S_DMARxHalfCplt()
1719 HAL_I2S_RxHalfCpltCallback(hi2s); in I2S_DMARxHalfCplt()
1731 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMAError() local
1734 CLEAR_BIT(hi2s->Instance->CR2, (SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN)); in I2S_DMAError()
1735 hi2s->TxXferCount = 0U; in I2S_DMAError()
1736 hi2s->RxXferCount = 0U; in I2S_DMAError()
1738 hi2s->State = HAL_I2S_STATE_READY; in I2S_DMAError()
1741 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in I2S_DMAError()
1744 hi2s->ErrorCallback(hi2s); in I2S_DMAError()
1746 HAL_I2S_ErrorCallback(hi2s); in I2S_DMAError()
1756 static void I2S_Transmit_IT(I2S_HandleTypeDef *hi2s) in I2S_Transmit_IT() argument
1759 hi2s->Instance->DR = (*hi2s->pTxBuffPtr); in I2S_Transmit_IT()
1760 hi2s->pTxBuffPtr++; in I2S_Transmit_IT()
1761 hi2s->TxXferCount--; in I2S_Transmit_IT()
1763 if (hi2s->TxXferCount == 0U) in I2S_Transmit_IT()
1766 __HAL_I2S_DISABLE_IT(hi2s, (I2S_IT_TXE | I2S_IT_ERR)); in I2S_Transmit_IT()
1768 hi2s->State = HAL_I2S_STATE_READY; in I2S_Transmit_IT()
1771 hi2s->TxCpltCallback(hi2s); in I2S_Transmit_IT()
1773 HAL_I2S_TxCpltCallback(hi2s); in I2S_Transmit_IT()
1784 static void I2S_Receive_IT(I2S_HandleTypeDef *hi2s) in I2S_Receive_IT() argument
1787 (*hi2s->pRxBuffPtr) = (uint16_t)hi2s->Instance->DR; in I2S_Receive_IT()
1788 hi2s->pRxBuffPtr++; in I2S_Receive_IT()
1789 hi2s->RxXferCount--; in I2S_Receive_IT()
1791 if (hi2s->RxXferCount == 0U) in I2S_Receive_IT()
1794 __HAL_I2S_DISABLE_IT(hi2s, (I2S_IT_RXNE | I2S_IT_ERR)); in I2S_Receive_IT()
1796 hi2s->State = HAL_I2S_STATE_READY; in I2S_Receive_IT()
1799 hi2s->RxCpltCallback(hi2s); in I2S_Receive_IT()
1801 HAL_I2S_RxCpltCallback(hi2s); in I2S_Receive_IT()
1815 static HAL_StatusTypeDef I2S_WaitFlagStateUntilTimeout(I2S_HandleTypeDef *hi2s, uint32_t Flag, Flag… in I2S_WaitFlagStateUntilTimeout() argument
1824 while (((__HAL_I2S_GET_FLAG(hi2s, Flag)) ? SET : RESET) != State) in I2S_WaitFlagStateUntilTimeout()
1831 hi2s->State = HAL_I2S_STATE_READY; in I2S_WaitFlagStateUntilTimeout()
1834 __HAL_UNLOCK(hi2s); in I2S_WaitFlagStateUntilTimeout()