138 #ifdef HAL_IRDA_MODULE_ENABLED 145 #define TEACK_REACK_TIMEOUT 1000U 146 #define HAL_IRDA_TXDMA_TIMEOUTVALUE 22000U 147 #define IRDA_CR1_FIELDS ((uint32_t)(USART_CR1_M | USART_CR1_PCE \ 148 | USART_CR1_PS | USART_CR1_TE | USART_CR1_RE)) 244 IRDA_SetConfig(hirda);
259 return (IRDA_CheckIdleState(hirda));
396 uint32_t tickstart = 0U;
401 if((pData ==
NULL) || (Size == 0U))
426 tmp = (uint16_t*) pData;
432 hirda->
Instance->
TDR = (*pData++ & (uint8_t)0xFFU);
468 uint32_t tickstart = 0U;
473 if((pData ==
NULL) || (Size == 0U))
492 uhMask = hirda->
Mask;
505 tmp = (uint16_t*) pData ;
511 *pData++ = (uint8_t)(hirda->
Instance->
RDR & (uint8_t)uhMask);
542 if((pData ==
NULL) || (Size == 0U))
584 if((pData ==
NULL) || (Size == 0U))
638 if((pData ==
NULL) || (Size == 0U))
666 tmp = (uint32_t*)&pData;
703 if((pData ==
NULL) || (Size == 0U))
730 tmp = (uint32_t*)&pData;
849 IRDA_EndTxTransfer(hirda);
863 IRDA_EndRxTransfer(hirda);
891 uint32_t isrflags, cr1its, cr3its, errorflags;
899 if (errorflags ==
RESET)
904 IRDA_Receive_IT(hirda);
947 IRDA_Receive_IT(hirda);
958 IRDA_EndRxTransfer(hirda);
1006 IRDA_Transmit_IT(hirda);
1013 IRDA_EndTransmit_IT(hirda);
1154 uint32_t temp1 = 0x00U, temp2 = 0x00U;
1169 uint32_t temp1 = 0x00U, temp2 = 0x00U;
1187 uint32_t tmpreg = 0x00000000U;
1188 uint32_t clocksource = 0x00000000U;
1214 switch (clocksource)
1244 uint32_t tickstart = 0U;
1297 if((Timeout == 0)||((
HAL_GetTick() - Tickstart ) > Timeout))
1332 hirda->
Instance->
RDR = (uint16_t)(*tmp & (uint16_t)0x01FFU);
1398 uint16_t uhMask = hirda->
Mask;
1406 *tmp = (uint16_t)(uhdata & uhMask);
1411 *hirda->
pRxBuffPtr++ = (uint8_t)(uhdata & (uint8_t)uhMask);
1541 IRDA_EndTxTransfer(hirda);
1548 IRDA_EndRxTransfer(hirda);
#define CLEAR_BIT(REG, BIT)
#define MODIFY_REG(REG, CLEARMASK, SETMASK)
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
__IO HAL_IRDA_StateTypeDef RxState
#define assert_param(expr)
Include module's header file.
#define __HAL_IRDA_DISABLE(__HANDLE__)
Disable UART/USART associated to IRDA Handle.
#define IS_IRDA_TX_RX_MODE(__MODE__)
#define HSI_VALUE
Internal High Speed oscillator (HSI) value. This value is used by the RCC HAL module to compute the s...
HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda)
void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda)
HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
#define __HAL_UNLOCK(__HANDLE__)
void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda)
HAL_IRDA_StateTypeDef
HAL IRDA State structures definition.
uint32_t HAL_IRDA_GetError(IRDA_HandleTypeDef *hirda)
#define IS_IRDA_WORD_LENGTH(LENGTH)
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
#define IS_IRDA_PRESCALER(__PRESCALER__)
Ensure that IRDA prescaler value is strictly larger than 0.
HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
#define HAL_IRDA_ERROR_DMA
HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda)
HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
DMA_HandleTypeDef * hdmarx
HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
DMA_HandleTypeDef * hdmatx
void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda)
HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda)
IRDA handle Structure definition.
#define IS_IRDA_BAUDRATE(__BAUDRATE__)
Ensure that IRDA Baud rate is less or equal to maximum value.
#define __HAL_IRDA_GET_FLAG(__HANDLE__, __FLAG__)
Check whether the specified IRDA flag is set or not.
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
#define __HAL_LOCK(__HANDLE__)
#define HAL_IRDA_ERROR_PE
uint32_t HAL_RCC_GetPCLK1Freq(void)
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
#define IRDA_GETCLOCKSOURCE(__HANDLE__, __CLOCKSOURCE__)
Reports the IRDA clock source.
#define __HAL_IRDA_CLEAR_IT(__HANDLE__, __IT_CLEAR__)
Clear the specified IRDA ISR flag, in setting the proper ICR register flag.
This file contains all the functions prototypes for the HAL module driver.
#define HAL_UART_ERROR_ORE
DMA_Stream_TypeDef * Instance
uint32_t HAL_RCC_GetSysClockFreq(void)
#define LSE_VALUE
External Low Speed oscillator (LSE) value.
#define __HAL_IRDA_ENABLE(__HANDLE__)
Enable UART/USART associated to IRDA Handle.
HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
#define HAL_IRDA_ERROR_ORE
#define HAL_IRDA_ERROR_NONE
__IO HAL_IRDA_StateTypeDef gState
#define IS_IRDA_POWERMODE(__MODE__)
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda)
#define IRDA_RXDATA_FLUSH_REQUEST
void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda)
#define SET_BIT(REG, BIT)
#define IS_IRDA_PARITY(__PARITY__)
#define IRDA_WORDLENGTH_9B
#define IRDA_MASK_COMPUTATION(__HANDLE__)
Reports the mask to apply to retrieve the received data according to the word length and to the parit...
#define HAL_IS_BIT_SET(REG, BIT)
void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda)
#define HAL_IRDA_ERROR_NE
DMA handle Structure definition.
#define IS_IRDA_INSTANCE(__INSTANCE__)
void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda)
HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda)
HAL_IRDA_StateTypeDef HAL_IRDA_GetState(IRDA_HandleTypeDef *hirda)
#define __HAL_IRDA_SEND_REQ(__HANDLE__, __REQ__)
Set a specific IRDA request flag.
void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda)
#define HAL_IRDA_ERROR_FE
HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda)
HAL_StatusTypeDef
HAL Status structures definition.
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
uint32_t HAL_RCC_GetPCLK2Freq(void)
HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)