214#ifdef HAL_IRDA_MODULE_ENABLED
225#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
311#if USE_HAL_IRDA_REGISTER_CALLBACKS == 1
312 IRDA_InitCallbacksToDefault(hirda);
314 if (hirda->MspInitCallback == NULL)
320 hirda->MspInitCallback(hirda);
338 CLEAR_BIT(hirda->
Instance->CR2, (USART_CR2_LINEN | USART_CR2_STOP | USART_CR2_CLKEN));
339 CLEAR_BIT(hirda->
Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL));
351 SET_BIT(hirda->
Instance->CR3, USART_CR3_IREN);
384#if USE_HAL_IRDA_REGISTER_CALLBACKS == 1
385 if (hirda->MspDeInitCallback == NULL)
390 hirda->MspDeInitCallback(hirda);
438#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
464 if (pCallback == NULL)
467 hirda->
ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK;
476 case HAL_IRDA_TX_HALFCOMPLETE_CB_ID :
477 hirda->TxHalfCpltCallback = pCallback;
480 case HAL_IRDA_TX_COMPLETE_CB_ID :
481 hirda->TxCpltCallback = pCallback;
484 case HAL_IRDA_RX_HALFCOMPLETE_CB_ID :
485 hirda->RxHalfCpltCallback = pCallback;
488 case HAL_IRDA_RX_COMPLETE_CB_ID :
489 hirda->RxCpltCallback = pCallback;
492 case HAL_IRDA_ERROR_CB_ID :
493 hirda->ErrorCallback = pCallback;
496 case HAL_IRDA_ABORT_COMPLETE_CB_ID :
497 hirda->AbortCpltCallback = pCallback;
500 case HAL_IRDA_ABORT_TRANSMIT_COMPLETE_CB_ID :
501 hirda->AbortTransmitCpltCallback = pCallback;
504 case HAL_IRDA_ABORT_RECEIVE_COMPLETE_CB_ID :
505 hirda->AbortReceiveCpltCallback = pCallback;
508 case HAL_IRDA_MSPINIT_CB_ID :
509 hirda->MspInitCallback = pCallback;
512 case HAL_IRDA_MSPDEINIT_CB_ID :
513 hirda->MspDeInitCallback = pCallback;
518 hirda->
ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK;
529 case HAL_IRDA_MSPINIT_CB_ID :
530 hirda->MspInitCallback = pCallback;
533 case HAL_IRDA_MSPDEINIT_CB_ID :
534 hirda->MspDeInitCallback = pCallback;
539 hirda->
ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK;
549 hirda->
ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK;
586 case HAL_IRDA_TX_HALFCOMPLETE_CB_ID :
590 case HAL_IRDA_TX_COMPLETE_CB_ID :
594 case HAL_IRDA_RX_HALFCOMPLETE_CB_ID :
598 case HAL_IRDA_RX_COMPLETE_CB_ID :
602 case HAL_IRDA_ERROR_CB_ID :
606 case HAL_IRDA_ABORT_COMPLETE_CB_ID :
610 case HAL_IRDA_ABORT_TRANSMIT_COMPLETE_CB_ID :
614 case HAL_IRDA_ABORT_RECEIVE_COMPLETE_CB_ID :
618 case HAL_IRDA_MSPINIT_CB_ID :
622 case HAL_IRDA_MSPDEINIT_CB_ID :
628 hirda->
ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK;
639 case HAL_IRDA_MSPINIT_CB_ID :
643 case HAL_IRDA_MSPDEINIT_CB_ID :
649 hirda->
ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK;
659 hirda->
ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK;
767 uint32_t tickstart = 0U;
772 if ((pData == NULL) || (Size == 0U))
797 tmp = (
const uint16_t *) pData;
798 hirda->
Instance->DR = (*tmp & (uint16_t)0x01FF);
814 hirda->
Instance->DR = (*pData++ & (uint8_t)0xFF);
852 uint32_t tickstart = 0U;
857 if ((pData == NULL) || (Size == 0U))
885 tmp = (uint16_t *) pData ;
888 *tmp = (uint16_t)(hirda->
Instance->DR & (uint16_t)0x01FF);
893 *tmp = (uint16_t)(hirda->
Instance->DR & (uint16_t)0x00FF);
905 *pData++ = (uint8_t)(hirda->
Instance->DR & (uint8_t)0x00FF);
909 *pData++ = (uint8_t)(hirda->
Instance->DR & (uint8_t)0x007F);
944 if ((pData == NULL) || (Size == 0U))
963 SET_BIT(hirda->
Instance->CR1, USART_CR1_TXEIE);
989 if ((pData == NULL) || (Size == 0U))
1010 SET_BIT(hirda->
Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
1015 SET_BIT(hirda->
Instance->CR1, USART_CR1_RXNEIE);
1019 SET_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
1042 const uint32_t *tmp;
1047 if ((pData == NULL) || (Size == 0U))
1075 tmp = (
const uint32_t *)&pData;
1086 SET_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
1115 if ((pData == NULL) || (Size == 0U))
1142 tmp = (uint32_t *)&pData;
1154 SET_BIT(hirda->
Instance->CR1, USART_CR1_PEIE);
1158 SET_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
1162 SET_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1180 uint32_t dmarequest = 0x00U;
1189 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
1196 CLEAR_BIT(hirda->
Instance->CR1, USART_CR1_PEIE);
1197 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
1200 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1223 SET_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
1234 SET_BIT(hirda->
Instance->CR1, USART_CR1_PEIE);
1236 SET_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
1239 SET_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1256 uint32_t dmarequest = 0x00U;
1267 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
1270 if (hirda->
hdmatx != NULL)
1281 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1284 if (hirda->
hdmarx != NULL)
1309 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1310 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
1315 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
1318 if (hirda->
hdmatx != NULL)
1331 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1334 if (hirda->
hdmarx != NULL)
1373 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1378 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
1381 if (hirda->
hdmatx != NULL)
1415 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1416 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
1421 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1424 if (hirda->
hdmarx != NULL)
1459 uint32_t AbortCplt = 0x01U;
1462 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1463 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
1468 if (hirda->
hdmatx != NULL)
1482 if (hirda->
hdmarx != NULL)
1500 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
1503 if (hirda->
hdmatx != NULL)
1523 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1526 if (hirda->
hdmarx != NULL)
1545 if (AbortCplt == 0x01U)
1559#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
1561 hirda->AbortCpltCallback(hirda);
1588 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1593 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
1596 if (hirda->
hdmatx != NULL)
1618#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
1620 hirda->AbortTransmitCpltCallback(hirda);
1636#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
1638 hirda->AbortTransmitCpltCallback(hirda);
1665 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1666 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
1671 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1674 if (hirda->
hdmarx != NULL)
1696#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
1698 hirda->AbortReceiveCpltCallback(hirda);
1714#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
1716 hirda->AbortReceiveCpltCallback(hirda);
1734 uint32_t isrflags = READ_REG(hirda->
Instance->SR);
1735 uint32_t cr1its = READ_REG(hirda->
Instance->CR1);
1736 uint32_t cr3its = READ_REG(hirda->
Instance->CR3);
1737 uint32_t errorflags = 0x00U;
1738 uint32_t dmarequest = 0x00U;
1741 errorflags = (isrflags & (uint32_t)(USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE));
1742 if (errorflags == RESET)
1745 if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1753 if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)))
1756 if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
1762 if (((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1768 if (((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1774 if (((isrflags & USART_SR_ORE) != RESET) && (((cr1its & USART_CR1_RXNEIE) != RESET) || ((cr3its & USART_CR3_EIE) != RESET)))
1782 if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1800 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
1803 if (hirda->
hdmarx != NULL)
1818#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
1820 hirda->ErrorCallback(hirda);
1829#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
1831 hirda->ErrorCallback(hirda);
1842#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
1844 hirda->ErrorCallback(hirda);
1857 if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
1864 if (((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
2028 uint32_t temp1 = 0x00U, temp2 = 0x00U;
2058#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2089 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) == 0U)
2095 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAT);
2098 SET_BIT(hirda->
Instance->CR1, USART_CR1_TCIE);
2103#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2105 hirda->TxCpltCallback(hirda);
2123#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2125 hirda->TxHalfCpltCallback(hirda);
2143 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) == 0U)
2148 CLEAR_BIT(hirda->
Instance->CR1, USART_CR1_PEIE);
2149 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
2153 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_DMAR);
2159#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2161 hirda->RxCpltCallback(hirda);
2178#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2180 hirda->RxHalfCpltCallback(hirda);
2195 uint32_t dmarequest = 0x00U;
2216#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2218 hirda->ErrorCallback(hirda);
2244 if ((Timeout == 0U) || ((
HAL_GetTick() - Tickstart) > Timeout))
2247 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
2248 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
2271 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
2285 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
2286 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
2304#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2306 hirda->ErrorCallback(hirda);
2328 if (hirda->
hdmarx != NULL)
2348#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2350 hirda->AbortCpltCallback(hirda);
2372 if (hirda->
hdmatx != NULL)
2392#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2394 hirda->AbortCpltCallback(hirda);
2419#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2421 hirda->AbortTransmitCpltCallback(hirda);
2446#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2448 hirda->AbortReceiveCpltCallback(hirda);
2463 const uint16_t *tmp;
2471 hirda->
Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
2489 CLEAR_BIT(hirda->
Instance->CR1, USART_CR1_TXEIE);
2492 SET_BIT(hirda->
Instance->CR1, USART_CR1_TCIE);
2512 CLEAR_BIT(hirda->
Instance->CR1, USART_CR1_TCIE);
2515 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
2520#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2522 hirda->TxCpltCallback(hirda);
2545 uhdata = (uint16_t) READ_REG(hirda->
Instance->DR);
2551 *tmp = (uint16_t)(uhdata & (uint16_t)0x01FF);
2556 *tmp = (uint16_t)(uhdata & (uint16_t)0x00FF);
2564 *hirda->
pRxBuffPtr++ = (uint8_t)(uhdata & (uint8_t)0x00FF);
2568 *hirda->
pRxBuffPtr++ = (uint8_t)(uhdata & (uint8_t)0x007F);
2575 CLEAR_BIT(hirda->
Instance->CR1, USART_CR1_RXNEIE);
2578 CLEAR_BIT(hirda->
Instance->CR1, USART_CR1_PEIE);
2581 CLEAR_BIT(hirda->
Instance->CR3, USART_CR3_EIE);
2586#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
2588 hirda->RxCpltCallback(hirda);
2624 CLEAR_BIT(hirda->
Instance->CR2, USART_CR2_STOP);
2628 CLEAR_BIT(hirda->
Instance->CR1, (USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | USART_CR1_RE));
2639 CLEAR_BIT(hirda->
Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE));
2642#if defined(USART6) && defined(UART9) && defined(UART10)
2648#elif defined(USART6)
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
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 HAL_IRDA_ERROR_DMA
#define HAL_IRDA_ERROR_ORE
#define HAL_IRDA_ERROR_NONE
#define HAL_IRDA_ERROR_PE
#define HAL_IRDA_ERROR_NE
#define HAL_IRDA_ERROR_FE
HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda)
DeInitializes the IRDA peripheral.
void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda)
IRDA MSP Init.
HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda)
Initializes the IRDA mode according to the specified parameters in the IRDA_InitTypeDef and create th...
void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda)
IRDA MSP DeInit.
HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
Receive an amount of data in non blocking mode.
void HAL_IRDA_AbortReceiveCpltCallback(IRDA_HandleTypeDef *hirda)
IRDA Abort Receive Complete callback.
void HAL_IRDA_AbortTransmitCpltCallback(IRDA_HandleTypeDef *hirda)
IRDA Abort Transmit Complete callback.
HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
Sends an amount of data in blocking mode.
HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda)
Stops the DMA Transfer.
HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Receive an amount of data in blocking mode.
void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda)
Tx Transfer complete callback.
HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda)
Pauses the DMA Transfer.
void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda)
Tx Half Transfer completed callback.
HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT(IRDA_HandleTypeDef *hirda)
Abort ongoing Transmit transfer (Interrupt mode).
void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda)
Rx Transfer complete callback.
void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda)
Rx Half Transfer complete callback.
void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda)
This function handles IRDA interrupt request.
HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT(IRDA_HandleTypeDef *hirda)
Abort ongoing Receive transfer (Interrupt mode).
HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size)
Send an amount of data in non blocking mode.
HAL_StatusTypeDef HAL_IRDA_AbortTransmit(IRDA_HandleTypeDef *hirda)
Abort ongoing Transmit transfer (blocking mode).
HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
Receives an amount of data in DMA mode.
HAL_StatusTypeDef HAL_IRDA_AbortReceive(IRDA_HandleTypeDef *hirda)
Abort ongoing Receive transfer (blocking mode).
HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size)
Send an amount of data in DMA mode.
HAL_StatusTypeDef HAL_IRDA_Abort(IRDA_HandleTypeDef *hirda)
Abort ongoing transfers (blocking mode).
void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda)
IRDA error callback.
HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda)
Resumes the DMA Transfer.
HAL_StatusTypeDef HAL_IRDA_Abort_IT(IRDA_HandleTypeDef *hirda)
Abort ongoing transfers (Interrupt mode).
void HAL_IRDA_AbortCpltCallback(IRDA_HandleTypeDef *hirda)
IRDA Abort Complete callback.
uint32_t HAL_IRDA_GetError(const IRDA_HandleTypeDef *hirda)
Return the IRDA error code.
HAL_IRDA_StateTypeDef HAL_IRDA_GetState(const IRDA_HandleTypeDef *hirda)
Return the IRDA state.
#define __HAL_IRDA_GET_FLAG(__HANDLE__, __FLAG__)
Check whether the specified IRDA flag is set or not.
#define __HAL_IRDA_CLEAR_OREFLAG(__HANDLE__)
Clear the IRDA ORE pending flag.
#define __HAL_IRDA_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the specified IRDA pending flag.
#define __HAL_IRDA_ENABLE(__HANDLE__)
Enable UART/USART associated to IRDA Handle.
#define __HAL_IRDA_DISABLE(__HANDLE__)
Disable UART/USART associated to IRDA Handle.
HAL_IRDA_StateTypeDef
HAL IRDA State structures definition.
static void IRDA_EndTxTransfer(IRDA_HandleTypeDef *hirda)
End ongoing Tx transfer on IRDA peripheral (following error detection or Transmit completion).
static void IRDA_DMAAbortOnError(DMA_HandleTypeDef *hdma)
DMA IRDA communication abort callback, when initiated by HAL services on Error (To be called at end o...
static void IRDA_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
DMA IRDA receive process complete callback.
static void IRDA_DMATransmitCplt(DMA_HandleTypeDef *hdma)
DMA IRDA transmit process complete callback.
static void IRDA_SetConfig(IRDA_HandleTypeDef *hirda)
Configures the IRDA peripheral.
static void IRDA_DMAError(DMA_HandleTypeDef *hdma)
DMA IRDA communication error callback.
static HAL_StatusTypeDef IRDA_WaitOnFlagUntilTimeout(IRDA_HandleTypeDef *hirda, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout)
This function handles IRDA Communication Timeout. It waits until a flag is no longer in the specified...
static void IRDA_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
DMA IRDA Tx communication abort callback, when initiated by user (To be called at end of DMA Tx Abort...
static void IRDA_EndRxTransfer(IRDA_HandleTypeDef *hirda)
End ongoing Rx transfer on IRDA peripheral (following error detection or Reception completion).
static void IRDA_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
DMA IRDA Rx communication abort callback, when initiated by user by a call to HAL_IRDA_AbortReceive_I...
static void IRDA_DMATransmitHalfCplt(DMA_HandleTypeDef *hdma)
DMA IRDA receive process half complete callback.
static HAL_StatusTypeDef IRDA_Receive_IT(IRDA_HandleTypeDef *hirda)
Receives an amount of data in non blocking mode.
static void IRDA_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
DMA IRDA Tx communication abort callback, when initiated by user by a call to HAL_IRDA_AbortTransmit_...
static HAL_StatusTypeDef IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda)
Send an amount of data in non blocking mode.
static void IRDA_DMAReceiveHalfCplt(DMA_HandleTypeDef *hdma)
DMA IRDA receive process half complete callback.
static HAL_StatusTypeDef IRDA_EndTransmit_IT(IRDA_HandleTypeDef *hirda)
Wraps up transmission in non blocking mode.
static void IRDA_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
DMA IRDA Rx communication abort callback, when initiated by user (To be called at end of DMA Rx Abort...
#define IS_IRDA_MODE(MODE)
#define IS_IRDA_PARITY(PARITY)
#define IRDA_BRR(_PCLK_, _BAUD_)
#define IS_IRDA_BAUDRATE(BAUDRATE)
#define IS_IRDA_WORD_LENGTH(LENGTH)
#define IS_IRDA_POWERMODE(MODE)
#define IRDA_WORDLENGTH_9B
uint32_t HAL_RCC_GetPCLK1Freq(void)
Returns the PCLK1 frequency.
uint32_t HAL_RCC_GetPCLK2Freq(void)
Returns the PCLK2 frequency.
#define assert_param(expr)
This file contains all the functions prototypes for the HAL module driver.
#define HAL_IS_BIT_SET(REG, BIT)
HAL_StatusTypeDef
HAL Status structures definition
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
IRDA handle Structure definition.
DMA_HandleTypeDef * hdmarx
__IO HAL_IRDA_StateTypeDef RxState
__IO uint16_t RxXferCount
__IO HAL_IRDA_StateTypeDef gState
const uint8_t * pTxBuffPtr
__IO uint16_t TxXferCount
DMA_HandleTypeDef * hdmatx
DMA handle Structure definition.
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
DMA_Stream_TypeDef * Instance