length defined by the M bit (8-bits or 9-bits), please refer to Reference manual for
possible IRDA frame formats.
Prescaler: A pulse of width less than two and greater than one PSC period(s)
may or may not be rejected. The receiver set up time should be managed by
software. The IrDA physical layer specification specifies a minimum of 10 ms
delay between transmission and reception (IrDA is a half duplex protocol).
Mode: Receiver/transmitter modes
IrDAMode: the IrDA can operate in the Normal mode or in the Low power mode.
The HAL_IRDA_Init() API follows IRDA configuration procedures (details for the
procedures are available in reference manual).
This section contains the following APIs:
HAL_IRDA_Init()
HAL_IRDA_DeInit()
HAL_IRDA_MspInit()
HAL_IRDA_MspDeInit()
26.2.3 IO operation functions
IrDA is a half duplex communication protocol. If the Transmitter is busy, any data on the
IrDA receive line will be ignored by the IrDA decoder and if the Receiver is busy, data on
the TX from the USART to IrDA will not be encoded by IrDA. While receiving data,
transmission should be avoided as the data to be transmitted could be corrupted.
1. There are two modes of transfer:
Blocking mode: The communication is performed in polling mode. The HAL
status of all data processing is returned by the same function after finishing
transfer.
No-Blocking mode: The communication is performed using Interrupts or DMA,
These APIs return the HAL status. The end of the data processing will be
indicated through the dedicated IRDA IRQ when using Interrupt mode or the
DMA IRQ when using DMA mode. The HAL_IRDA_TxCpltCallback(),
HAL_IRDA_RxCpltCallback() user callbacks will be executed respectively at the
end of the transmit or Receive process The HAL_IRDA_ErrorCallback() user
callback will be executed when a communication error is detected
2. Blocking mode API's are :
HAL_IRDA_Transmit()
HAL_IRDA_Receive()
3. Non Blocking mode APIs with Interrupt are :
HAL_IRDA_Transmit_IT()
HAL_IRDA_Receive_IT()
HAL_IRDA_IRQHandler()
4. Non Blocking mode functions with DMA are :
HAL_IRDA_Transmit_DMA()
HAL_IRDA_Receive_DMA()
5. A set of Transfer Complete Callbacks are provided in non Blocking mode:
HAL_IRDA_TxCpltCallback()
HAL_IRDA_RxCpltCallback()
HAL_IRDA_ErrorCallback()
This section contains the following APIs:
HAL_IRDA_Transmit()
HAL_IRDA_Receive()
HAL_IRDA_Transmit_IT()