173 #ifdef HAL_SPDIFRX_MODULE_ENABLED
174 #if defined (SPDIFRX)
175 #if defined(STM32F446xx)
181 #define SPDIFRX_TIMEOUT_VALUE 10U
198 static HAL_StatusTypeDef SPDIFRX_WaitOnFlagUntilTimeout(
SPDIFRX_HandleTypeDef *hspdif, uint32_t Flag,
199 FlagStatus Status, uint32_t Timeout, uint32_t tickstart);
255 assert_param(IS_STEREO_MODE(hspdif->Init.StereoMode));
256 assert_param(IS_SPDIFRX_INPUT_SELECT(hspdif->Init.InputSelection));
257 assert_param(IS_SPDIFRX_MAX_RETRIES(hspdif->Init.Retries));
258 assert_param(IS_SPDIFRX_WAIT_FOR_ACTIVITY(hspdif->Init.WaitForActivity));
259 assert_param(IS_SPDIFRX_CHANNEL(hspdif->Init.ChannelSelection));
260 assert_param(IS_SPDIFRX_DATA_FORMAT(hspdif->Init.DataFormat));
261 assert_param(IS_PREAMBLE_TYPE_MASK(hspdif->Init.PreambleTypeMask));
262 assert_param(IS_CHANNEL_STATUS_MASK(hspdif->Init.ChannelStatusMask));
263 assert_param(IS_VALIDITY_MASK(hspdif->Init.ValidityBitMask));
264 assert_param(IS_PARITY_ERROR_MASK(hspdif->Init.ParityErrorMask));
266 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
270 hspdif->Lock = HAL_UNLOCKED;
278 if (hspdif->MspInitCallback == NULL)
284 hspdif->MspInitCallback(hspdif);
290 hspdif->Lock = HAL_UNLOCKED;
300 __HAL_SPDIFRX_IDLE(hspdif);
303 tmpreg = hspdif->Instance->CR;
305 tmpreg &= ~(SPDIFRX_CR_RXSTEO | SPDIFRX_CR_DRFMT | SPDIFRX_CR_PMSK |
306 SPDIFRX_CR_VMSK | SPDIFRX_CR_CUMSK | SPDIFRX_CR_PTMSK |
307 SPDIFRX_CR_CHSEL | SPDIFRX_CR_NBTR | SPDIFRX_CR_WFA |
311 tmpreg |= (hspdif->Init.StereoMode |
312 hspdif->Init.InputSelection |
313 hspdif->Init.Retries |
314 hspdif->Init.WaitForActivity |
315 hspdif->Init.ChannelSelection |
316 hspdif->Init.DataFormat |
317 hspdif->Init.PreambleTypeMask |
318 hspdif->Init.ChannelStatusMask |
319 hspdif->Init.ValidityBitMask |
320 hspdif->Init.ParityErrorMask
324 hspdif->Instance->CR = tmpreg;
326 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE;
348 assert_param(IS_SPDIFRX_ALL_INSTANCE(hspdif->Instance));
353 __HAL_SPDIFRX_IDLE(hspdif);
355 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
356 if (hspdif->MspDeInitCallback == NULL)
362 hspdif->MspDeInitCallback(hspdif);
368 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE;
374 __HAL_UNLOCK(hspdif);
409 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
429 HAL_StatusTypeDef status = HAL_OK;
431 if (pCallback == NULL)
434 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
445 hspdif->RxHalfCpltCallback = pCallback;
449 hspdif->RxCpltCallback = pCallback;
453 hspdif->CxHalfCpltCallback = pCallback;
457 hspdif->CxCpltCallback = pCallback;
461 hspdif->ErrorCallback = pCallback;
465 hspdif->MspInitCallback = pCallback;
469 hspdif->MspDeInitCallback = pCallback;
474 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
485 hspdif->MspInitCallback = pCallback;
489 hspdif->MspDeInitCallback = pCallback;
494 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
503 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
509 __HAL_UNLOCK(hspdif);
531 HAL_StatusTypeDef status = HAL_OK;
562 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
582 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
591 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
597 __HAL_UNLOCK(hspdif);
620 assert_param(IS_STEREO_MODE(sDataFormat.
StereoMode));
621 assert_param(IS_SPDIFRX_DATA_FORMAT(sDataFormat.
DataFormat));
628 tmpreg = hspdif->Instance->CR;
630 if (((tmpreg & SPDIFRX_STATE_RCV) == SPDIFRX_STATE_RCV) &&
631 (((tmpreg & SPDIFRX_CR_DRFMT) != sDataFormat.
DataFormat) ||
632 ((tmpreg & SPDIFRX_CR_RXSTEO) != sDataFormat.
StereoMode)))
637 tmpreg &= ~(SPDIFRX_CR_RXSTEO | SPDIFRX_CR_DRFMT | SPDIFRX_CR_PMSK |
638 SPDIFRX_CR_VMSK | SPDIFRX_CR_CUMSK | SPDIFRX_CR_PTMSK);
648 hspdif->Instance->CR = tmpreg;
712 uint16_t sizeCounter = Size;
713 uint32_t *pTmpBuf = pData;
715 if ((pData == NULL) || (Size == 0U))
728 __HAL_SPDIFRX_SYNC(hspdif);
734 if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_OK)
740 __HAL_SPDIFRX_RCV(hspdif);
743 while (sizeCounter > 0U)
749 if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
754 (*pTmpBuf) = hspdif->Instance->DR;
763 __HAL_UNLOCK(hspdif);
786 uint16_t sizeCounter = Size;
787 uint32_t *pTmpBuf = pData;
789 if ((pData == NULL) || (Size == 0U))
802 __HAL_SPDIFRX_SYNC(hspdif);
808 if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_OK)
814 __HAL_SPDIFRX_RCV(hspdif);
817 while (sizeCounter > 0U)
823 if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_CSRNE, RESET, Timeout, tickstart) != HAL_OK)
828 (*pTmpBuf) = hspdif->Instance->CSR;
837 __HAL_UNLOCK(hspdif);
856 uint32_t count = SPDIFRX_TIMEOUT_VALUE * (SystemCoreClock / 24U / 1000U);
862 if ((pData == NULL) || (Size == 0U))
870 hspdif->pRxBuffPtr = pData;
871 hspdif->RxXferSize = Size;
872 hspdif->RxXferCount = Size;
874 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE;
880 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_PERRIE);
883 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_OVRIE);
886 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_RXNE);
888 if ((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
891 __HAL_SPDIFRX_SYNC(hspdif);
900 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE);
901 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
902 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE);
903 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE);
904 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE);
905 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
906 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
911 __HAL_UNLOCK(hspdif);
916 }
while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET);
919 __HAL_SPDIFRX_RCV(hspdif);
923 __HAL_UNLOCK(hspdif);
942 uint32_t count = SPDIFRX_TIMEOUT_VALUE * (SystemCoreClock / 24U / 1000U);
948 if ((pData == NULL) || (Size == 0U))
956 hspdif->pCsBuffPtr = pData;
957 hspdif->CsXferSize = Size;
958 hspdif->CsXferCount = Size;
960 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE;
966 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_PERRIE);
969 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_OVRIE);
972 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
974 if ((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
977 __HAL_SPDIFRX_SYNC(hspdif);
986 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE);
987 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
988 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE);
989 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE);
990 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE);
991 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
992 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
997 __HAL_UNLOCK(hspdif);
1002 }
while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET);
1005 __HAL_SPDIFRX_RCV(hspdif);
1009 __HAL_UNLOCK(hspdif);
1028 uint32_t count = SPDIFRX_TIMEOUT_VALUE * (SystemCoreClock / 24U / 1000U);
1032 if ((pData == NULL) || (Size == 0U))
1042 hspdif->pRxBuffPtr = pData;
1043 hspdif->RxXferSize = Size;
1044 hspdif->RxXferCount = Size;
1046 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE;
1050 hspdif->hdmaDrRx->XferHalfCpltCallback = SPDIFRX_DMARxHalfCplt;
1053 hspdif->hdmaDrRx->XferCpltCallback = SPDIFRX_DMARxCplt;
1056 hspdif->hdmaDrRx->XferErrorCallback = SPDIFRX_DMAError;
1059 if (
HAL_DMA_Start_IT(hspdif->hdmaDrRx, (uint32_t)&hspdif->Instance->DR, (uint32_t)hspdif->pRxBuffPtr, Size) !=
1063 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_DMA;
1069 __HAL_UNLOCK(hspdif);
1075 hspdif->Instance->CR |= SPDIFRX_CR_RXDMAEN;
1077 if ((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
1080 __HAL_SPDIFRX_SYNC(hspdif);
1089 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE);
1090 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
1091 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE);
1092 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE);
1093 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE);
1094 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
1095 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
1100 __HAL_UNLOCK(hspdif);
1105 }
while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET);
1108 __HAL_SPDIFRX_RCV(hspdif);
1112 __HAL_UNLOCK(hspdif);
1131 uint32_t count = SPDIFRX_TIMEOUT_VALUE * (SystemCoreClock / 24U / 1000U);
1135 if ((pData == NULL) || (Size == 0U))
1142 hspdif->pCsBuffPtr = pData;
1143 hspdif->CsXferSize = Size;
1144 hspdif->CsXferCount = Size;
1149 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE;
1153 hspdif->hdmaCsRx->XferHalfCpltCallback = SPDIFRX_DMACxHalfCplt;
1156 hspdif->hdmaCsRx->XferCpltCallback = SPDIFRX_DMACxCplt;
1159 hspdif->hdmaCsRx->XferErrorCallback = SPDIFRX_DMAError;
1162 if (
HAL_DMA_Start_IT(hspdif->hdmaCsRx, (uint32_t)&hspdif->Instance->CSR, (uint32_t)hspdif->pCsBuffPtr, Size) !=
1166 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_DMA;
1172 __HAL_UNLOCK(hspdif);
1178 hspdif->Instance->CR |= SPDIFRX_CR_CBDMAEN;
1180 if ((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
1183 __HAL_SPDIFRX_SYNC(hspdif);
1192 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE);
1193 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
1194 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE);
1195 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE);
1196 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE);
1197 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
1198 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
1203 __HAL_UNLOCK(hspdif);
1208 }
while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET);
1211 __HAL_SPDIFRX_RCV(hspdif);
1215 __HAL_UNLOCK(hspdif);
1236 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_RXDMAEN);
1237 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_CBDMAEN);
1240 if (hspdif->hdmaDrRx != NULL)
1242 __HAL_DMA_DISABLE(hspdif->hdmaDrRx);
1244 if (hspdif->hdmaCsRx != NULL)
1246 __HAL_DMA_DISABLE(hspdif->hdmaCsRx);
1250 __HAL_SPDIFRX_IDLE(hspdif);
1255 __HAL_UNLOCK(hspdif);
1267 uint32_t itFlag = hspdif->Instance->SR;
1268 uint32_t itSource = hspdif->Instance->IMR;
1271 if (((itFlag & SPDIFRX_FLAG_RXNE) == SPDIFRX_FLAG_RXNE) && ((itSource & SPDIFRX_IT_RXNE) == SPDIFRX_IT_RXNE))
1273 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_RXNE);
1274 SPDIFRX_ReceiveDataFlow_IT(hspdif);
1278 if (((itFlag & SPDIFRX_FLAG_CSRNE) == SPDIFRX_FLAG_CSRNE) && ((itSource & SPDIFRX_IT_CSRNE) == SPDIFRX_IT_CSRNE))
1280 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_CSRNE);
1281 SPDIFRX_ReceiveControlFlow_IT(hspdif);
1285 if (((itFlag & SPDIFRX_FLAG_OVR) == SPDIFRX_FLAG_OVR) && ((itSource & SPDIFRX_IT_OVRIE) == SPDIFRX_IT_OVRIE))
1287 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_OVRIE);
1290 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_OVR;
1297 if (((itFlag & SPDIFRX_FLAG_PERR) == SPDIFRX_FLAG_PERR) && ((itSource & SPDIFRX_IT_PERRIE) == SPDIFRX_IT_PERRIE))
1299 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_PERRIE);
1302 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_PE;
1410 return hspdif->State;
1420 return hspdif->ErrorCode;
1437 if (hdma->
Init.Mode != DMA_CIRCULAR)
1439 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_RXDMAEN);
1440 hspdif->RxXferCount = 0;
1443 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
1444 hspdif->RxCpltCallback(hspdif);
1459 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
1460 hspdif->RxHalfCpltCallback(hspdif);
1477 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_CBDMAEN);
1478 hspdif->CsXferCount = 0;
1481 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
1482 hspdif->CxCpltCallback(hspdif);
1497 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
1498 hspdif->CxHalfCpltCallback(hspdif);
1514 hspdif->Instance->CR &= (uint16_t)(~(SPDIFRX_CR_RXDMAEN | SPDIFRX_CR_CBDMAEN));
1515 hspdif->RxXferCount = 0;
1520 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_DMA;
1522 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
1524 hspdif->ErrorCallback(hspdif);
1539 (*hspdif->pRxBuffPtr) = hspdif->Instance->DR;
1540 hspdif->pRxBuffPtr++;
1541 hspdif->RxXferCount--;
1543 if (hspdif->RxXferCount == 0U)
1546 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE | SPDIFRX_IT_PERRIE | SPDIFRX_IT_RXNE);
1551 __HAL_UNLOCK(hspdif);
1553 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
1554 hspdif->RxCpltCallback(hspdif);
1569 (*hspdif->pCsBuffPtr) = hspdif->Instance->CSR;
1570 hspdif->pCsBuffPtr++;
1571 hspdif->CsXferCount--;
1573 if (hspdif->CsXferCount == 0U)
1576 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
1581 __HAL_UNLOCK(hspdif);
1583 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
1584 hspdif->CxCpltCallback(hspdif);
1600 static HAL_StatusTypeDef SPDIFRX_WaitOnFlagUntilTimeout(
SPDIFRX_HandleTypeDef *hspdif, uint32_t Flag,
1601 FlagStatus Status, uint32_t Timeout, uint32_t tickstart)
1604 while (__HAL_SPDIFRX_GET_FLAG(hspdif, Flag) == Status)
1607 if (Timeout != HAL_MAX_DELAY)
1609 if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
1613 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE);
1614 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
1615 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE);
1616 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE);
1617 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE);
1618 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
1619 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
1624 __HAL_UNLOCK(hspdif);
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.
HAL_StatusTypeDef HAL_SPDIFRX_UnRegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackIDTypeDef CallbackID)
Unregister a SPDIFRX Callback SPDIFRX callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_SPDIFRX_RegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackIDTypeDef CallbackID, pSPDIFRX_CallbackTypeDef pCallback)
Register a User SPDIFRX Callback To be used instead of the weak predefined callback.
void HAL_SPDIFRX_MspDeInit(SPDIFRX_HandleTypeDef *hspdif)
SPDIFRX MSP DeInit.
void HAL_SPDIFRX_MspInit(SPDIFRX_HandleTypeDef *hspdif)
SPDIFRX MSP Init.
HAL_StatusTypeDef HAL_SPDIFRX_SetDataFormat(SPDIFRX_HandleTypeDef *hspdif, SPDIFRX_SetDataFormatTypeDef sDataFormat)
Set the SPDIFRX data format according to the specified parameters in the SPDIFRX_InitTypeDef.
HAL_StatusTypeDef HAL_SPDIFRX_Init(SPDIFRX_HandleTypeDef *hspdif)
Initializes the SPDIFRX according to the specified parameters in the SPDIFRX_InitTypeDef and create t...
HAL_StatusTypeDef HAL_SPDIFRX_DeInit(SPDIFRX_HandleTypeDef *hspdif)
DeInitializes the SPDIFRX peripheral.
void HAL_SPDIFRX_RxCpltCallback(SPDIFRX_HandleTypeDef *hspdif)
Rx Transfer (Data flow) completed callbacks.
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size, uint32_t Timeout)
Receives an amount of data (Data Flow) in blocking mode.
void HAL_SPDIFRX_ErrorCallback(SPDIFRX_HandleTypeDef *hspdif)
SPDIFRX error callbacks.
HAL_StatusTypeDef HAL_SPDIFRX_DMAStop(SPDIFRX_HandleTypeDef *hspdif)
stop the audio stream receive from the Media.
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size)
Receive an amount of data (Control Flow) with DMA.
void HAL_SPDIFRX_CxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif)
Rx (Control flow) Transfer half completed callbacks.
void HAL_SPDIFRX_RxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif)
Rx Transfer (Data flow) half completed callbacks.
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size)
Receive an amount of data (Data Flow) in non-blocking mode with Interrupt.
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size)
Receive an amount of data (Data Flow) mode with DMA.
void HAL_SPDIFRX_CxCpltCallback(SPDIFRX_HandleTypeDef *hspdif)
Rx Transfer (Control flow) completed callbacks.
void HAL_SPDIFRX_IRQHandler(SPDIFRX_HandleTypeDef *hspdif)
This function handles SPDIFRX interrupt request.
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size)
Receive an amount of data (Control Flow) with Interrupt.
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size, uint32_t Timeout)
Receives an amount of data (Control Flow) in blocking mode.
uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef const *const hspdif)
Return the SPDIFRX error code.
HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef const *const hspdif)
Return the SPDIFRX state.
uint32_t ChannelStatusMask
uint32_t PreambleTypeMask
HAL_SPDIFRX_StateTypeDef
HAL State structures definition.
struct __SPDIFRX_HandleTypeDef else typedef struct endif SPDIFRX_HandleTypeDef
SPDIFRX handle Structure definition.
void(* pSPDIFRX_CallbackTypeDef)(SPDIFRX_HandleTypeDef *hspdif)
HAL SPDIFRX Callback pointer definition.
HAL_SPDIFRX_CallbackIDTypeDef
HAL SPDIFRX Callback ID enumeration definition.
@ HAL_SPDIFRX_STATE_RESET
@ HAL_SPDIFRX_STATE_BUSY_RX
@ HAL_SPDIFRX_STATE_ERROR
@ HAL_SPDIFRX_STATE_READY
@ HAL_SPDIFRX_STATE_BUSY_CX
@ HAL_SPDIFRX_RX_HALF_CB_ID
@ HAL_SPDIFRX_RX_CPLT_CB_ID
@ HAL_SPDIFRX_MSPDEINIT_CB_ID
@ HAL_SPDIFRX_MSPINIT_CB_ID
@ HAL_SPDIFRX_CX_CPLT_CB_ID
@ HAL_SPDIFRX_ERROR_CB_ID
@ HAL_SPDIFRX_CX_HALF_CB_ID
This file contains all the functions prototypes for the HAL module driver.
DMA handle Structure definition.