STM32Cube  Version 1.2.0
Create Projects for STM32H5 Series with STM32Cube HAL and STM32CubeMX
USART (IrDA mode)

Revision History

  • Version 1.0
    • Initial release

Capabilities

This driver supports IrDA mode.

Instances

Hardware resource relating to driver instance is shown in the table below:

Driver Instance Hardware Resource
Driver_USART1 USART1
Driver_USART2 USART2
Driver_USART3 USART3
Driver_USART4 UART4
Driver_USART5 UART5
Driver_USART6 USART6
Driver_USART7 UART7
Driver_USART8 UART8
Driver_USART9 UART9
Driver_USART10 USART10
Driver_USART11 USART11
Driver_USART12 UART12
Note
The CMSIS Driver:USART (API):USART component in the Manage Run-Time Environment dialog adds multiple C source files to the project.
The interface selection in STM32CubeMX selects the actual implementation that is compiled: IrDA, SmartCard, UART or USART.

Limitations

STM32 HAL limitations:

  • Stop bits 0.5 and 1.5 are not supported
  • Manual control of modem lines is not supported
  • Break character is handled as framing error

Configuration

STM32CubeMX

The USART driver requires:

  • UART/USART peripheral clock
  • UART/USART peripheral configured as IrDa
  • UART/USART TX and Rx pins
  • optional DMA configuration for transfers

NUCLEO-H563ZI Board Configuration

These settings are relevant for this board, for different board please refer to the board schematic for proper configuration.

Link to NUCLEO-H563ZI board schematic.

STM32CubeMX

Required peripherals for the NUCLEO-H563ZI board are listed in the table below:

Peripheral Mode Description
USART2 IrDA USART2 Controller
PD5 Alternate Function Push Pull USART2 TX Pin
PD6 Alternate Function Push Pull USART2 RX Pin
Note
All settings have to be configured as described in the procedure below. Important settings, typically the ones different from default, are emphasized in bold.

Pinout & Configuration tab

  1. In the Pinout view window click on a pin and select it's functionality:
    Pin Functionality
    PD5 USART2_TX
    PD6 USART2_RX

  2. Under Categories: Connectivity select USART2:

    Mode:

    • Mode: IrDA
    • Hardware Flow Control (RS232): Disable
    • Hardware Flow Control (RS485): unchecked
    • Slave Select(NSS) Management: Disable

    Configuration:

    • Parameter Settings: not used
    • User Constants: not used
    • NVIC Settings: configured in later step (under Category: System Core: NVIC)
    • DMA Settings: configured in later step (under Category: System Core: DMA)
    • GPIO Settings:
      Pin Name Signal on Pin Pin Context.. GPIO output.. GPIO mode GPIO Pull-up/Pull.. Maximum out.. Fast Mode User Label
      PD5 USART2_TX n/a n/a Alternate Function Push Pull No pull-up and no.. Low n/a .
      PD6 USART2_RX n/a n/a Alternate Function Push Pull No pull-up and no.. Low n/a .

  3. Under Categories: System Core select GPDMA:

    Configuration:

    • GPDMA1, GPDMA2:
      Click Add button and add DMA Requests as in table below:
      GPDMA Request Stream Direction Priority
      USART2_RX GPDMA1 Channel 0 Peripheral to Memory Low
      USART2_TX GPDMA1 Channel 1 Memory to Peripheral Low

  4. Under Categories: System Core select NVIC:

    Configuration:

    • NVIC:
      NVIC Interrupt Table Enabled Preemption Priority Sub Priority
      GPDMA1 stream0 global interrupt checked 0 0
      GPDMA1 stream1 global interrupt checked 0 0
      USART2 global interrupt checked 0 0
    • Code generation:
      Enabled interrupt table Select for.. Generate Enable in.. Generate IRQ h.. Call HAL handler
      GPDMA1 stream0 global interrupt unchecked checked checked checked
      GPDMA1 stream1 global interrupt unchecked checked checked checked
      USART2 global interrupt unchecked checked checked checked

Clock Configuration tab

  1. Configure To USART2 (MHz): 250

Project Manager tab

  1. Under Advanced Settings:

    Generated Function Calls:

    Generate Code Function Name Peripheral Inst.. Do not generate .. Visibility (Static)
    checked MX_USART2_IRDA_Init USART2 checked checked

Generate Code

Generate source code by clicking on the GENERATE CODE button on the toolbar.