Lines Matching refs:hi2s
212 static void I2S_Transmit_IT(I2S_HandleTypeDef *hi2s);
213 static void I2S_Receive_IT(I2S_HandleTypeDef *hi2s);
214 static HAL_StatusTypeDef I2S_WaitFlagStateUntilTimeout(I2S_HandleTypeDef *hi2s, uint32_t Flag, Fla…
261 HAL_StatusTypeDef HAL_I2S_Init(I2S_HandleTypeDef *hi2s) in HAL_I2S_Init() argument
270 if (hi2s == NULL) in HAL_I2S_Init()
276 assert_param(IS_I2S_ALL_INSTANCE(hi2s->Instance)); in HAL_I2S_Init()
277 assert_param(IS_I2S_MODE(hi2s->Init.Mode)); in HAL_I2S_Init()
278 assert_param(IS_I2S_STANDARD(hi2s->Init.Standard)); in HAL_I2S_Init()
279 assert_param(IS_I2S_DATA_FORMAT(hi2s->Init.DataFormat)); in HAL_I2S_Init()
280 assert_param(IS_I2S_MCLK_OUTPUT(hi2s->Init.MCLKOutput)); in HAL_I2S_Init()
281 assert_param(IS_I2S_AUDIO_FREQ(hi2s->Init.AudioFreq)); in HAL_I2S_Init()
282 assert_param(IS_I2S_CPOL(hi2s->Init.CPOL)); in HAL_I2S_Init()
284 if (hi2s->State == HAL_I2S_STATE_RESET) in HAL_I2S_Init()
287 hi2s->Lock = HAL_UNLOCKED; in HAL_I2S_Init()
291 …hi2s->TxCpltCallback = HAL_I2S_TxCpltCallback; /* Legacy weak TxCpltCallback … in HAL_I2S_Init()
292 …hi2s->RxCpltCallback = HAL_I2S_RxCpltCallback; /* Legacy weak RxCpltCallback … in HAL_I2S_Init()
293 …hi2s->TxHalfCpltCallback = HAL_I2S_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback … in HAL_I2S_Init()
294 …hi2s->RxHalfCpltCallback = HAL_I2S_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback … in HAL_I2S_Init()
295 …hi2s->ErrorCallback = HAL_I2S_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_I2S_Init()
297 if (hi2s->MspInitCallback == NULL) in HAL_I2S_Init()
299 hi2s->MspInitCallback = HAL_I2S_MspInit; /* Legacy weak MspInit */ in HAL_I2S_Init()
303 hi2s->MspInitCallback(hi2s); in HAL_I2S_Init()
306 HAL_I2S_MspInit(hi2s); in HAL_I2S_Init()
310 hi2s->State = HAL_I2S_STATE_BUSY; in HAL_I2S_Init()
314 CLEAR_BIT(hi2s->Instance->I2SCFGR, (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CKPOL | \ in HAL_I2S_Init()
317 hi2s->Instance->I2SPR = 0x0002U; in HAL_I2S_Init()
321 if (hi2s->Init.AudioFreq != I2S_AUDIOFREQ_DEFAULT) in HAL_I2S_Init()
324 if (hi2s->Init.DataFormat == I2S_DATAFORMAT_16B) in HAL_I2S_Init()
336 if (hi2s->Init.Standard <= I2S_STANDARD_LSB) in HAL_I2S_Init()
346 if (hi2s->Init.MCLKOutput == I2S_MCLKOUTPUT_ENABLE) in HAL_I2S_Init()
349 if (hi2s->Init.DataFormat != I2S_DATAFORMAT_16B) in HAL_I2S_Init()
351 tmp = (uint32_t)(((((i2sclk / (packetlength * 4U)) * 10U) / hi2s->Init.AudioFreq)) + 5U); in HAL_I2S_Init()
355 tmp = (uint32_t)(((((i2sclk / (packetlength * 8U)) * 10U) / hi2s->Init.AudioFreq)) + 5U); in HAL_I2S_Init()
361 tmp = (uint32_t)(((((i2sclk / packetlength) * 10U) / hi2s->Init.AudioFreq)) + 5U); in HAL_I2S_Init()
387 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_PRESCALER); in HAL_I2S_Init()
394 …hi2s->Instance->I2SPR = (uint32_t)((uint32_t)i2sdiv | (uint32_t)(i2sodd | (uint32_t)hi2s->Init.MCL… in HAL_I2S_Init()
398 MODIFY_REG(hi2s->Instance->I2SCFGR, (SPI_I2SCFGR_CHLEN | SPI_I2SCFGR_DATLEN | \ in HAL_I2S_Init()
402 (SPI_I2SCFGR_I2SMOD | hi2s->Init.Mode | \ in HAL_I2S_Init()
403 hi2s->Init.Standard | hi2s->Init.DataFormat | \ in HAL_I2S_Init()
404 hi2s->Init.CPOL)); in HAL_I2S_Init()
407 …if ((hi2s->Init.Standard == I2S_STANDARD_PCM_SHORT) || ((hi2s->Init.Standard == I2S_STANDARD_PCM_L… in HAL_I2S_Init()
410 SET_BIT(hi2s->Instance->I2SCFGR, SPI_I2SCFGR_ASTRTEN); in HAL_I2S_Init()
414 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Init()
415 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Init()
426 HAL_StatusTypeDef HAL_I2S_DeInit(I2S_HandleTypeDef *hi2s) in HAL_I2S_DeInit() argument
429 if (hi2s == NULL) in HAL_I2S_DeInit()
435 assert_param(IS_I2S_ALL_INSTANCE(hi2s->Instance)); in HAL_I2S_DeInit()
437 hi2s->State = HAL_I2S_STATE_BUSY; in HAL_I2S_DeInit()
440 __HAL_I2S_DISABLE(hi2s); in HAL_I2S_DeInit()
443 if (hi2s->MspDeInitCallback == NULL) in HAL_I2S_DeInit()
445 hi2s->MspDeInitCallback = HAL_I2S_MspDeInit; /* Legacy weak MspDeInit */ in HAL_I2S_DeInit()
449 hi2s->MspDeInitCallback(hi2s); in HAL_I2S_DeInit()
452 HAL_I2S_MspDeInit(hi2s); in HAL_I2S_DeInit()
455 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_DeInit()
456 hi2s->State = HAL_I2S_STATE_RESET; in HAL_I2S_DeInit()
459 __HAL_UNLOCK(hi2s); in HAL_I2S_DeInit()
470 __weak void HAL_I2S_MspInit(I2S_HandleTypeDef *hi2s) in HAL_I2S_MspInit() argument
473 UNUSED(hi2s); in HAL_I2S_MspInit()
486 __weak void HAL_I2S_MspDeInit(I2S_HandleTypeDef *hi2s) in HAL_I2S_MspDeInit() argument
489 UNUSED(hi2s); in HAL_I2S_MspDeInit()
506 HAL_StatusTypeDef HAL_I2S_RegisterCallback(I2S_HandleTypeDef *hi2s, HAL_I2S_CallbackIDTypeDef Callb… in HAL_I2S_RegisterCallback() argument
514 hi2s->ErrorCode |= HAL_I2S_ERROR_INVALID_CALLBACK; in HAL_I2S_RegisterCallback()
519 __HAL_LOCK(hi2s); in HAL_I2S_RegisterCallback()
521 if (HAL_I2S_STATE_READY == hi2s->State) in HAL_I2S_RegisterCallback()
526 hi2s->TxCpltCallback = pCallback; in HAL_I2S_RegisterCallback()
530 hi2s->RxCpltCallback = pCallback; in HAL_I2S_RegisterCallback()
534 hi2s->TxHalfCpltCallback = pCallback; in HAL_I2S_RegisterCallback()
538 hi2s->RxHalfCpltCallback = pCallback; in HAL_I2S_RegisterCallback()
542 hi2s->ErrorCallback = pCallback; in HAL_I2S_RegisterCallback()
546 hi2s->MspInitCallback = pCallback; in HAL_I2S_RegisterCallback()
550 hi2s->MspDeInitCallback = pCallback; in HAL_I2S_RegisterCallback()
555 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_RegisterCallback()
562 else if (HAL_I2S_STATE_RESET == hi2s->State) in HAL_I2S_RegisterCallback()
567 hi2s->MspInitCallback = pCallback; in HAL_I2S_RegisterCallback()
571 hi2s->MspDeInitCallback = pCallback; in HAL_I2S_RegisterCallback()
576 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_RegisterCallback()
586 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_RegisterCallback()
593 __HAL_UNLOCK(hi2s); in HAL_I2S_RegisterCallback()
605 HAL_StatusTypeDef HAL_I2S_UnRegisterCallback(I2S_HandleTypeDef *hi2s, HAL_I2S_CallbackIDTypeDef Cal… in HAL_I2S_UnRegisterCallback() argument
610 __HAL_LOCK(hi2s); in HAL_I2S_UnRegisterCallback()
612 if (HAL_I2S_STATE_READY == hi2s->State) in HAL_I2S_UnRegisterCallback()
617 …hi2s->TxCpltCallback = HAL_I2S_TxCpltCallback; /* Legacy weak TxCpltCallback … in HAL_I2S_UnRegisterCallback()
621 …hi2s->RxCpltCallback = HAL_I2S_RxCpltCallback; /* Legacy weak RxCpltCallback … in HAL_I2S_UnRegisterCallback()
625 …hi2s->TxHalfCpltCallback = HAL_I2S_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback … in HAL_I2S_UnRegisterCallback()
629 …hi2s->RxHalfCpltCallback = HAL_I2S_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback … in HAL_I2S_UnRegisterCallback()
633 …hi2s->ErrorCallback = HAL_I2S_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_I2S_UnRegisterCallback()
637 …hi2s->MspInitCallback = HAL_I2S_MspInit; /* Legacy weak MspInit … in HAL_I2S_UnRegisterCallback()
641 …hi2s->MspDeInitCallback = HAL_I2S_MspDeInit; /* Legacy weak MspDeInit … in HAL_I2S_UnRegisterCallback()
646 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_UnRegisterCallback()
653 else if (HAL_I2S_STATE_RESET == hi2s->State) in HAL_I2S_UnRegisterCallback()
658 …hi2s->MspInitCallback = HAL_I2S_MspInit; /* Legacy weak MspInit … in HAL_I2S_UnRegisterCallback()
662 …hi2s->MspDeInitCallback = HAL_I2S_MspDeInit; /* Legacy weak MspDeInit … in HAL_I2S_UnRegisterCallback()
667 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_UnRegisterCallback()
677 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_INVALID_CALLBACK); in HAL_I2S_UnRegisterCallback()
684 __HAL_UNLOCK(hi2s); in HAL_I2S_UnRegisterCallback()
749 HAL_StatusTypeDef HAL_I2S_Transmit(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size, uint32_… in HAL_I2S_Transmit() argument
758 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Transmit()
764 __HAL_LOCK(hi2s); in HAL_I2S_Transmit()
767 hi2s->State = HAL_I2S_STATE_BUSY_TX; in HAL_I2S_Transmit()
768 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Transmit()
769 hi2s->pTxBuffPtr = pData; in HAL_I2S_Transmit()
771 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Transmit()
775 hi2s->TxXferSize = (Size << 1U); in HAL_I2S_Transmit()
776 hi2s->TxXferCount = (Size << 1U); in HAL_I2S_Transmit()
780 hi2s->TxXferSize = Size; in HAL_I2S_Transmit()
781 hi2s->TxXferCount = Size; in HAL_I2S_Transmit()
784 tmpreg_cfgr = hi2s->Instance->I2SCFGR; in HAL_I2S_Transmit()
787 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE) in HAL_I2S_Transmit()
790 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Transmit()
794 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_TXE, SET, Timeout) != HAL_OK) in HAL_I2S_Transmit()
797 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_Transmit()
798 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit()
799 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
803 while (hi2s->TxXferCount > 0U) in HAL_I2S_Transmit()
805 hi2s->Instance->DR = (*hi2s->pTxBuffPtr); in HAL_I2S_Transmit()
806 hi2s->pTxBuffPtr++; in HAL_I2S_Transmit()
807 hi2s->TxXferCount--; in HAL_I2S_Transmit()
810 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_TXE, SET, Timeout) != HAL_OK) in HAL_I2S_Transmit()
813 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_Transmit()
814 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit()
815 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
820 if (__HAL_I2S_GET_FLAG(hi2s, I2S_FLAG_UDR) == SET) in HAL_I2S_Transmit()
823 __HAL_I2S_CLEAR_UDRFLAG(hi2s); in HAL_I2S_Transmit()
826 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_UDR); in HAL_I2S_Transmit()
835 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_BSY, RESET, Timeout) != HAL_OK) in HAL_I2S_Transmit()
838 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_Transmit()
839 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit()
840 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
845 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit()
846 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit()
867 HAL_StatusTypeDef HAL_I2S_Receive(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size, uint32_t… in HAL_I2S_Receive() argument
876 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Receive()
882 __HAL_LOCK(hi2s); in HAL_I2S_Receive()
885 hi2s->State = HAL_I2S_STATE_BUSY_RX; in HAL_I2S_Receive()
886 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Receive()
887 hi2s->pRxBuffPtr = pData; in HAL_I2S_Receive()
889 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Receive()
893 hi2s->RxXferSize = (Size << 1U); in HAL_I2S_Receive()
894 hi2s->RxXferCount = (Size << 1U); in HAL_I2S_Receive()
898 hi2s->RxXferSize = Size; in HAL_I2S_Receive()
899 hi2s->RxXferCount = Size; in HAL_I2S_Receive()
903 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE) in HAL_I2S_Receive()
906 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Receive()
910 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SCFG) == I2S_MODE_MASTER_RX) in HAL_I2S_Receive()
914 __HAL_I2S_CLEAR_OVRFLAG(hi2s); in HAL_I2S_Receive()
918 while (hi2s->RxXferCount > 0U) in HAL_I2S_Receive()
921 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_RXNE, SET, Timeout) != HAL_OK) in HAL_I2S_Receive()
924 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_Receive()
925 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Receive()
926 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive()
930 (*hi2s->pRxBuffPtr) = (uint16_t)hi2s->Instance->DR; in HAL_I2S_Receive()
931 hi2s->pRxBuffPtr++; in HAL_I2S_Receive()
932 hi2s->RxXferCount--; in HAL_I2S_Receive()
935 if (__HAL_I2S_GET_FLAG(hi2s, I2S_FLAG_OVR) == SET) in HAL_I2S_Receive()
938 __HAL_I2S_CLEAR_OVRFLAG(hi2s); in HAL_I2S_Receive()
941 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_OVR); in HAL_I2S_Receive()
945 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Receive()
946 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive()
964 HAL_StatusTypeDef HAL_I2S_Transmit_IT(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size) in HAL_I2S_Transmit_IT() argument
973 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Transmit_IT()
979 __HAL_LOCK(hi2s); in HAL_I2S_Transmit_IT()
982 hi2s->State = HAL_I2S_STATE_BUSY_TX; in HAL_I2S_Transmit_IT()
983 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Transmit_IT()
984 hi2s->pTxBuffPtr = pData; in HAL_I2S_Transmit_IT()
986 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Transmit_IT()
990 hi2s->TxXferSize = (Size << 1U); in HAL_I2S_Transmit_IT()
991 hi2s->TxXferCount = (Size << 1U); in HAL_I2S_Transmit_IT()
995 hi2s->TxXferSize = Size; in HAL_I2S_Transmit_IT()
996 hi2s->TxXferCount = Size; in HAL_I2S_Transmit_IT()
999 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit_IT()
1002 __HAL_I2S_ENABLE_IT(hi2s, (I2S_IT_TXE | I2S_IT_ERR)); in HAL_I2S_Transmit_IT()
1005 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE) in HAL_I2S_Transmit_IT()
1008 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Transmit_IT()
1030 HAL_StatusTypeDef HAL_I2S_Receive_IT(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size) in HAL_I2S_Receive_IT() argument
1039 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Receive_IT()
1045 __HAL_LOCK(hi2s); in HAL_I2S_Receive_IT()
1048 hi2s->State = HAL_I2S_STATE_BUSY_RX; in HAL_I2S_Receive_IT()
1049 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Receive_IT()
1050 hi2s->pRxBuffPtr = pData; in HAL_I2S_Receive_IT()
1052 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Receive_IT()
1056 hi2s->RxXferSize = (Size << 1U); in HAL_I2S_Receive_IT()
1057 hi2s->RxXferCount = (Size << 1U); in HAL_I2S_Receive_IT()
1061 hi2s->RxXferSize = Size; in HAL_I2S_Receive_IT()
1062 hi2s->RxXferCount = Size; in HAL_I2S_Receive_IT()
1065 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive_IT()
1068 __HAL_I2S_ENABLE_IT(hi2s, (I2S_IT_RXNE | I2S_IT_ERR)); in HAL_I2S_Receive_IT()
1071 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SE) != SPI_I2SCFGR_I2SE) in HAL_I2S_Receive_IT()
1074 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Receive_IT()
1094 HAL_StatusTypeDef HAL_I2S_Transmit_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size) in HAL_I2S_Transmit_DMA() argument
1103 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Transmit_DMA()
1109 __HAL_LOCK(hi2s); in HAL_I2S_Transmit_DMA()
1112 hi2s->State = HAL_I2S_STATE_BUSY_TX; in HAL_I2S_Transmit_DMA()
1113 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Transmit_DMA()
1114 hi2s->pTxBuffPtr = pData; in HAL_I2S_Transmit_DMA()
1116 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Transmit_DMA()
1120 hi2s->TxXferSize = (Size << 1U); in HAL_I2S_Transmit_DMA()
1121 hi2s->TxXferCount = (Size << 1U); in HAL_I2S_Transmit_DMA()
1125 hi2s->TxXferSize = Size; in HAL_I2S_Transmit_DMA()
1126 hi2s->TxXferCount = Size; in HAL_I2S_Transmit_DMA()
1130 hi2s->hdmatx->XferHalfCpltCallback = I2S_DMATxHalfCplt; in HAL_I2S_Transmit_DMA()
1133 hi2s->hdmatx->XferCpltCallback = I2S_DMATxCplt; in HAL_I2S_Transmit_DMA()
1136 hi2s->hdmatx->XferErrorCallback = I2S_DMAError; in HAL_I2S_Transmit_DMA()
1139 if (HAL_OK != HAL_DMA_Start_IT(hi2s->hdmatx, in HAL_I2S_Transmit_DMA()
1140 (uint32_t)hi2s->pTxBuffPtr, in HAL_I2S_Transmit_DMA()
1141 (uint32_t)&hi2s->Instance->DR, in HAL_I2S_Transmit_DMA()
1142 hi2s->TxXferSize)) in HAL_I2S_Transmit_DMA()
1145 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in HAL_I2S_Transmit_DMA()
1146 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Transmit_DMA()
1148 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit_DMA()
1152 __HAL_UNLOCK(hi2s); in HAL_I2S_Transmit_DMA()
1155 if (HAL_IS_BIT_CLR(hi2s->Instance->CR2, SPI_CR2_TXDMAEN)) in HAL_I2S_Transmit_DMA()
1158 SET_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in HAL_I2S_Transmit_DMA()
1162 if (HAL_IS_BIT_CLR(hi2s->Instance->I2SCFGR, SPI_I2SCFGR_I2SE)) in HAL_I2S_Transmit_DMA()
1165 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Transmit_DMA()
1185 HAL_StatusTypeDef HAL_I2S_Receive_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size) in HAL_I2S_Receive_DMA() argument
1194 if (hi2s->State != HAL_I2S_STATE_READY) in HAL_I2S_Receive_DMA()
1200 __HAL_LOCK(hi2s); in HAL_I2S_Receive_DMA()
1203 hi2s->State = HAL_I2S_STATE_BUSY_RX; in HAL_I2S_Receive_DMA()
1204 hi2s->ErrorCode = HAL_I2S_ERROR_NONE; in HAL_I2S_Receive_DMA()
1205 hi2s->pRxBuffPtr = pData; in HAL_I2S_Receive_DMA()
1207 tmpreg_cfgr = hi2s->Instance->I2SCFGR & (SPI_I2SCFGR_DATLEN | SPI_I2SCFGR_CHLEN); in HAL_I2S_Receive_DMA()
1211 hi2s->RxXferSize = (Size << 1U); in HAL_I2S_Receive_DMA()
1212 hi2s->RxXferCount = (Size << 1U); in HAL_I2S_Receive_DMA()
1216 hi2s->RxXferSize = Size; in HAL_I2S_Receive_DMA()
1217 hi2s->RxXferCount = Size; in HAL_I2S_Receive_DMA()
1221 hi2s->hdmarx->XferHalfCpltCallback = I2S_DMARxHalfCplt; in HAL_I2S_Receive_DMA()
1224 hi2s->hdmarx->XferCpltCallback = I2S_DMARxCplt; in HAL_I2S_Receive_DMA()
1227 hi2s->hdmarx->XferErrorCallback = I2S_DMAError; in HAL_I2S_Receive_DMA()
1230 if ((hi2s->Instance->I2SCFGR & SPI_I2SCFGR_I2SCFG) == I2S_MODE_MASTER_RX) in HAL_I2S_Receive_DMA()
1234 __HAL_I2S_CLEAR_OVRFLAG(hi2s); in HAL_I2S_Receive_DMA()
1238 …if (HAL_OK != HAL_DMA_Start_IT(hi2s->hdmarx, (uint32_t)&hi2s->Instance->DR, (uint32_t)hi2s->pRxBuf… in HAL_I2S_Receive_DMA()
1239 hi2s->RxXferSize)) in HAL_I2S_Receive_DMA()
1242 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in HAL_I2S_Receive_DMA()
1243 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_Receive_DMA()
1245 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive_DMA()
1249 __HAL_UNLOCK(hi2s); in HAL_I2S_Receive_DMA()
1252 if (HAL_IS_BIT_CLR(hi2s->Instance->CR2, SPI_CR2_RXDMAEN)) in HAL_I2S_Receive_DMA()
1255 SET_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in HAL_I2S_Receive_DMA()
1259 if (HAL_IS_BIT_CLR(hi2s->Instance->I2SCFGR, SPI_I2SCFGR_I2SE)) in HAL_I2S_Receive_DMA()
1262 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_Receive_DMA()
1274 HAL_StatusTypeDef HAL_I2S_DMAPause(I2S_HandleTypeDef *hi2s) in HAL_I2S_DMAPause() argument
1277 __HAL_LOCK(hi2s); in HAL_I2S_DMAPause()
1279 if (hi2s->State == HAL_I2S_STATE_BUSY_TX) in HAL_I2S_DMAPause()
1282 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in HAL_I2S_DMAPause()
1284 else if (hi2s->State == HAL_I2S_STATE_BUSY_RX) in HAL_I2S_DMAPause()
1287 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in HAL_I2S_DMAPause()
1295 __HAL_UNLOCK(hi2s); in HAL_I2S_DMAPause()
1306 HAL_StatusTypeDef HAL_I2S_DMAResume(I2S_HandleTypeDef *hi2s) in HAL_I2S_DMAResume() argument
1309 __HAL_LOCK(hi2s); in HAL_I2S_DMAResume()
1311 if (hi2s->State == HAL_I2S_STATE_BUSY_TX) in HAL_I2S_DMAResume()
1314 SET_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in HAL_I2S_DMAResume()
1316 else if (hi2s->State == HAL_I2S_STATE_BUSY_RX) in HAL_I2S_DMAResume()
1319 SET_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in HAL_I2S_DMAResume()
1327 if (HAL_IS_BIT_CLR(hi2s->Instance->I2SCFGR, SPI_I2SCFGR_I2SE)) in HAL_I2S_DMAResume()
1330 __HAL_I2S_ENABLE(hi2s); in HAL_I2S_DMAResume()
1334 __HAL_UNLOCK(hi2s); in HAL_I2S_DMAResume()
1345 HAL_StatusTypeDef HAL_I2S_DMAStop(I2S_HandleTypeDef *hi2s) in HAL_I2S_DMAStop() argument
1354 if ((hi2s->Init.Mode == I2S_MODE_MASTER_TX) || (hi2s->Init.Mode == I2S_MODE_SLAVE_TX)) in HAL_I2S_DMAStop()
1357 if (hi2s->hdmatx != NULL) in HAL_I2S_DMAStop()
1360 if (HAL_OK != HAL_DMA_Abort(hi2s->hdmatx)) in HAL_I2S_DMAStop()
1362 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in HAL_I2S_DMAStop()
1368 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_TXE, SET, I2S_TIMEOUT_FLAG) != HAL_OK) in HAL_I2S_DMAStop()
1371 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_DMAStop()
1372 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_DMAStop()
1377 if (I2S_WaitFlagStateUntilTimeout(hi2s, I2S_FLAG_BSY, RESET, I2S_TIMEOUT_FLAG) != HAL_OK) in HAL_I2S_DMAStop()
1380 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_TIMEOUT); in HAL_I2S_DMAStop()
1381 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_DMAStop()
1386 __HAL_I2S_DISABLE(hi2s); in HAL_I2S_DMAStop()
1389 __HAL_I2S_CLEAR_UDRFLAG(hi2s); in HAL_I2S_DMAStop()
1392 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in HAL_I2S_DMAStop()
1396 else if ((hi2s->Init.Mode == I2S_MODE_MASTER_RX) || (hi2s->Init.Mode == I2S_MODE_SLAVE_RX)) in HAL_I2S_DMAStop()
1399 if (hi2s->hdmarx != NULL) in HAL_I2S_DMAStop()
1402 if (HAL_OK != HAL_DMA_Abort(hi2s->hdmarx)) in HAL_I2S_DMAStop()
1404 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in HAL_I2S_DMAStop()
1410 __HAL_I2S_DISABLE(hi2s); in HAL_I2S_DMAStop()
1413 __HAL_I2S_CLEAR_OVRFLAG(hi2s); in HAL_I2S_DMAStop()
1416 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in HAL_I2S_DMAStop()
1418 if (hi2s->Init.Mode == I2S_MODE_SLAVE_RX) in HAL_I2S_DMAStop()
1421 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_BUSY_LINE_RX); in HAL_I2S_DMAStop()
1424 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_DMAStop()
1430 READ_REG((hi2s->Instance)->DR); in HAL_I2S_DMAStop()
1434 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_DMAStop()
1445 void HAL_I2S_IRQHandler(I2S_HandleTypeDef *hi2s) in HAL_I2S_IRQHandler() argument
1447 uint32_t itsource = hi2s->Instance->CR2; in HAL_I2S_IRQHandler()
1448 uint32_t itflag = hi2s->Instance->SR; in HAL_I2S_IRQHandler()
1454 I2S_Receive_IT(hi2s); in HAL_I2S_IRQHandler()
1461 I2S_Transmit_IT(hi2s); in HAL_I2S_IRQHandler()
1472 __HAL_I2S_DISABLE_IT(hi2s, (I2S_IT_RXNE | I2S_IT_ERR)); in HAL_I2S_IRQHandler()
1475 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_OVR); in HAL_I2S_IRQHandler()
1482 __HAL_I2S_DISABLE_IT(hi2s, (I2S_IT_TXE | I2S_IT_ERR)); in HAL_I2S_IRQHandler()
1485 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_UDR); in HAL_I2S_IRQHandler()
1489 hi2s->State = HAL_I2S_STATE_READY; in HAL_I2S_IRQHandler()
1493 hi2s->ErrorCallback(hi2s); in HAL_I2S_IRQHandler()
1495 HAL_I2S_ErrorCallback(hi2s); in HAL_I2S_IRQHandler()
1506 __weak void HAL_I2S_TxHalfCpltCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_TxHalfCpltCallback() argument
1509 UNUSED(hi2s); in HAL_I2S_TxHalfCpltCallback()
1522 __weak void HAL_I2S_TxCpltCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_TxCpltCallback() argument
1525 UNUSED(hi2s); in HAL_I2S_TxCpltCallback()
1538 __weak void HAL_I2S_RxHalfCpltCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_RxHalfCpltCallback() argument
1541 UNUSED(hi2s); in HAL_I2S_RxHalfCpltCallback()
1554 __weak void HAL_I2S_RxCpltCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_RxCpltCallback() argument
1557 UNUSED(hi2s); in HAL_I2S_RxCpltCallback()
1570 __weak void HAL_I2S_ErrorCallback(I2S_HandleTypeDef *hi2s) in HAL_I2S_ErrorCallback() argument
1573 UNUSED(hi2s); in HAL_I2S_ErrorCallback()
1605 HAL_I2S_StateTypeDef HAL_I2S_GetState(I2S_HandleTypeDef *hi2s) in HAL_I2S_GetState() argument
1607 return hi2s->State; in HAL_I2S_GetState()
1616 uint32_t HAL_I2S_GetError(I2S_HandleTypeDef *hi2s) in HAL_I2S_GetError() argument
1618 return hi2s->ErrorCode; in HAL_I2S_GetError()
1639 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMATxCplt() local
1645 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_TXDMAEN); in I2S_DMATxCplt()
1647 hi2s->TxXferCount = 0U; in I2S_DMATxCplt()
1648 hi2s->State = HAL_I2S_STATE_READY; in I2S_DMATxCplt()
1652 hi2s->TxCpltCallback(hi2s); in I2S_DMATxCplt()
1654 HAL_I2S_TxCpltCallback(hi2s); in I2S_DMATxCplt()
1666 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMATxHalfCplt() local
1670 hi2s->TxHalfCpltCallback(hi2s); in I2S_DMATxHalfCplt()
1672 HAL_I2S_TxHalfCpltCallback(hi2s); in I2S_DMATxHalfCplt()
1684 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMARxCplt() local
1690 CLEAR_BIT(hi2s->Instance->CR2, SPI_CR2_RXDMAEN); in I2S_DMARxCplt()
1691 hi2s->RxXferCount = 0U; in I2S_DMARxCplt()
1692 hi2s->State = HAL_I2S_STATE_READY; in I2S_DMARxCplt()
1696 hi2s->RxCpltCallback(hi2s); in I2S_DMARxCplt()
1698 HAL_I2S_RxCpltCallback(hi2s); in I2S_DMARxCplt()
1710 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMARxHalfCplt() local
1714 hi2s->RxHalfCpltCallback(hi2s); in I2S_DMARxHalfCplt()
1716 HAL_I2S_RxHalfCpltCallback(hi2s); in I2S_DMARxHalfCplt()
1728 …I2S_HandleTypeDef *hi2s = (I2S_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2S_DMAError() local
1731 CLEAR_BIT(hi2s->Instance->CR2, (SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN)); in I2S_DMAError()
1732 hi2s->TxXferCount = 0U; in I2S_DMAError()
1733 hi2s->RxXferCount = 0U; in I2S_DMAError()
1735 hi2s->State = HAL_I2S_STATE_READY; in I2S_DMAError()
1738 SET_BIT(hi2s->ErrorCode, HAL_I2S_ERROR_DMA); in I2S_DMAError()
1741 hi2s->ErrorCallback(hi2s); in I2S_DMAError()
1743 HAL_I2S_ErrorCallback(hi2s); in I2S_DMAError()
1753 static void I2S_Transmit_IT(I2S_HandleTypeDef *hi2s) in I2S_Transmit_IT() argument
1756 hi2s->Instance->DR = (*hi2s->pTxBuffPtr); in I2S_Transmit_IT()
1757 hi2s->pTxBuffPtr++; in I2S_Transmit_IT()
1758 hi2s->TxXferCount--; in I2S_Transmit_IT()
1760 if (hi2s->TxXferCount == 0U) in I2S_Transmit_IT()
1763 __HAL_I2S_DISABLE_IT(hi2s, (I2S_IT_TXE | I2S_IT_ERR)); in I2S_Transmit_IT()
1765 hi2s->State = HAL_I2S_STATE_READY; in I2S_Transmit_IT()
1768 hi2s->TxCpltCallback(hi2s); in I2S_Transmit_IT()
1770 HAL_I2S_TxCpltCallback(hi2s); in I2S_Transmit_IT()
1781 static void I2S_Receive_IT(I2S_HandleTypeDef *hi2s) in I2S_Receive_IT() argument
1784 (*hi2s->pRxBuffPtr) = (uint16_t)hi2s->Instance->DR; in I2S_Receive_IT()
1785 hi2s->pRxBuffPtr++; in I2S_Receive_IT()
1786 hi2s->RxXferCount--; in I2S_Receive_IT()
1788 if (hi2s->RxXferCount == 0U) in I2S_Receive_IT()
1791 __HAL_I2S_DISABLE_IT(hi2s, (I2S_IT_RXNE | I2S_IT_ERR)); in I2S_Receive_IT()
1793 hi2s->State = HAL_I2S_STATE_READY; in I2S_Receive_IT()
1796 hi2s->RxCpltCallback(hi2s); in I2S_Receive_IT()
1798 HAL_I2S_RxCpltCallback(hi2s); in I2S_Receive_IT()
1812 static HAL_StatusTypeDef I2S_WaitFlagStateUntilTimeout(I2S_HandleTypeDef *hi2s, uint32_t Flag, Flag… in I2S_WaitFlagStateUntilTimeout() argument
1821 while (((__HAL_I2S_GET_FLAG(hi2s, Flag)) ? SET : RESET) != State) in I2S_WaitFlagStateUntilTimeout()
1828 hi2s->State = HAL_I2S_STATE_READY; in I2S_WaitFlagStateUntilTimeout()
1831 __HAL_UNLOCK(hi2s); in I2S_WaitFlagStateUntilTimeout()