Skip to main content
lgacnik97
Associate II
May 15, 2025
Question

STM32U535 with USART DMA - Only Specific Channels Trigger Interrupt

  • May 15, 2025
  • 1 reply
  • 461 views

I'm using STM32CubeMX to generate initialization code for all my hardware. I initially tried USART1 TX with GPDMA1 Channel 0 - all data was transmitted over TX except neither the GPDMA1_Channel0_IRQHandler() nor the USART1_IRQHandler() didn't trigger. I used the same configuration settings but chose GPDMA Channel 10 - now both the GPDMA1_Channel10_IRQHandler() and the USART1_IRQHandler() get triggered.

Is this a known limitation? I haven't found anything relevant in MCU's Errata.

Note that the USART1 HAL_UART_Transmit_IT() triggers interrupt. So it's clearly a GPDMA issue.

The 2nd problem is that USART1 RX with GPDMA1 won't work with all the Channels I have tried so far (Channel 1 and Channel 11). If anyone else has experienced same issue please let me know which GPDMA1 channels worked with any USARTx.

EDIT: USART1 RX with GPDMA1 triggers interrupt for Channels 3, 4, and 7 but doesn't trigger for Channels 0, 1, 10, 11 (the rest I haven't tried yet).

1 reply

Technical Moderator
May 20, 2025

Hello @lgacnik97 

Please refer to this example below as it uses GPDMA chanel 0 and 1 for USART2 transfer. 

STM32CubeU5/Projects/NUCLEO-U575ZI-Q/Examples/USART/USART_SlaveMode_DMA at main · STMicroelectronics/STM32CubeU5 · GitHub

"To give better visibility on the answered topics, please click on ""Accept as Solution"" on the reply which solved your issue or answered your question.Saket_Om"