cancel
Showing results for 
Search instead for 
Did you mean: 

STM32U535 with USART DMA - Only Specific Channels Trigger Interrupt

lgacnik97
Associate III

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 1
Saket_Om
ST Employee

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