Skip to main content
arduo
Associate III
January 29, 2019
Solved

Difference DMA and IT?

  • January 29, 2019
  • 5 replies
  • 2451 views

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.
Best answer by After Forever

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
January 29, 2019

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
January 29, 2019

Thank you!

Uwe Bonnes
Chief
January 29, 2019

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
January 29, 2019

Thanks!

waclawek.jan
Super User
January 29, 2019

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