cancel
Showing results for 
Search instead for 
Did you mean: 

Difference DMA and IT?

arduo
Senior

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

1 ACCEPTED SOLUTION

Accepted Solutions

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

View solution in original post

5 REPLIES 5

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

Uwe Bonnes
Principal III

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.

Thank you!

Thanks!

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