HAL Library 31- DMA for STM32Fxxx devices

It’s been a while since last published library. From that time, I got some requests about making DMA library for HAL and later using this library with USART, SPI, ADC and more libraries.

So I’ve made a first step in DMA libraries list. Basic “root” library for DMA process has been created for managing things with DMA streams for STM32F4 and STM32F7 devices. What else it supports, you should check below.


Read more about HAL libraries


  • Root library for all future DMA extensions
  • Enable or disable DMA stream
  • Init or deinit DMA stream with clock
  • Enable or disable stream interrupts
  • Single interrupt method for all streams


  • HAL
  • TM
    • STM32Fxxx HAL
    • defines.h configuration file

Pinout, functions and enumerations

Pinout, list of functions and its enumerations can be found on DMA library API.


Example for DMA directly is not available because there is nothing to show. To see examples, you should check USART or SPI DMA libraries and examples. They are available on my Github account.


Owner of this site. Application engineer, currently employed by STMicroelectronics. Exploring latest technologies and owner of different libraries posted on Github.

You may also like...

Read before commenting!

Before you make a new comment, make sure you agree with things listed below:

  • - Read post to make sure if it is already posted what you are asking for,
  • - Make sure you have the latest version of libraries used in your project,
  • - Make a clean and grammatically correct written message,
  • - Report as many details as possible, including what have you done so far,
  • - Do NOT post any code here. Use Pastebin,
  • - Do NOT post any error codes here. Use Pastebin,
  • - Specify STM32Fxxx family and used Discovery/EVAL/Nucleo or custom made board,
  • - Make sure your clock is set correct for PLL,
  • - If you are using my HAL drivers, please check this post how to start.
Comment will be deleted on breaking these rules without notification!