Skip to main content
arduo
Associate III
Jan 29, 2019 2:54 PM UTC
Solved

Difference DMA and IT?

Hi,

i am a newby with STM32

what is the difference between the three functions:

HAL_UART_Transmit_IT,

HAL_UART_Transmit_DMA,

HAL_UART_Transmit

This topic has been closed for replies.
After Forever
After ForeverBest answer
Senior III
Jan 29, 2019 3:04 PM UTC

no prefix - uses "polling" or "synchronous" mode; the MCU waits for the operation to complete, while doing so it can't do any other useful thing.

_IT prefix - uses the asynchronous "interrupt" mode, the peripheral will issue MCU interrupts when it needs attention (for example when UART needs another byte to be fed), meanwhile the MCU can work on other things. [Click Show More]

_DMA prefix - use the asynchronous "DMA" mode - the peripheral will do all the work by itself, not disturbing the main MCU until half/full of the operation is complete, then it will generate an interrupt.

Some links for you:

https://stackoverflow.com/questions/25318145/dma-vs-interrupt-driven-i-o

https://www.youtube.com/watch?v=LNPBr3WvuNg

5 replies

After Forever
After ForeverBest answer
Senior III
Jan 29, 2019 3:04 PM UTC

no prefix - uses "polling" or "synchronous" mode; the MCU waits for the operation to complete, while doing so it can't do any other useful thing.

_IT prefix - uses the asynchronous "interrupt" mode, the peripheral will issue MCU interrupts when it needs attention (for example when UART needs another byte to be fed), meanwhile the MCU can work on other things. [Click Show More]

_DMA prefix - use the asynchronous "DMA" mode - the peripheral will do all the work by itself, not disturbing the main MCU until half/full of the operation is complete, then it will generate an interrupt.

Some links for you:

https://stackoverflow.com/questions/25318145/dma-vs-interrupt-driven-i-o

https://www.youtube.com/watch?v=LNPBr3WvuNg

arduo
arduoAuthor
Associate III
Jan 29, 2019 3:39 PM UTC

Thank you!

Uwe Bonnes
Chief
Jan 29, 2019 3:06 PM UTC

I good question tells what you have researched yourself to clarify the question? IT probably stands here for interrupt, dma for a dma transfer and the last transfer probably means a polling transfer.

arduo
arduoAuthor
Associate III
Jan 29, 2019 3:39 PM UTC

Thanks!

waclawek.jan
Super User
Jan 29, 2019 4:08 PM UTC

Depending on which particular familie's Cube you are using, you should select the appropriate manual:

0690X000006DHYbQAO.png

and go to "How to use HAL drivers" subchapter of the "Overview of HAL drivers" chapter.

JW