STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_hal_dma.c File Reference

DMA HAL module driver. This file provides firmware functions to manage the following functionalities of the Direct Memory Access (DMA) peripheral: More...

Go to the source code of this file.

Functions

static void DMA_SetConfig (DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
 Sets the DMA Transfer parameter. More...
 
static void DMA_CalcDMAMUXChannelBaseAndMask (DMA_HandleTypeDef *hdma)
 Updates the DMA handle with the DMAMUX channel and status mask depending on channel number. More...
 
static void DMA_CalcDMAMUXRequestGenBaseAndMask (DMA_HandleTypeDef *hdma)
 Updates the DMA handle with the DMAMUX request generator params. More...
 
HAL_StatusTypeDef HAL_DMA_Init (DMA_HandleTypeDef *hdma)
 Initialize the DMA according to the specified parameters in the DMA_InitTypeDef and initialize the associated handle. More...
 
HAL_StatusTypeDef HAL_DMA_DeInit (DMA_HandleTypeDef *hdma)
 DeInitialize the DMA peripheral. More...
 
HAL_StatusTypeDef HAL_DMA_Start (DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
 Start the DMA Transfer. More...
 
HAL_StatusTypeDef HAL_DMA_Start_IT (DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
 Start the DMA Transfer with interrupt enabled. More...
 
HAL_StatusTypeDef HAL_DMA_Abort (DMA_HandleTypeDef *hdma)
 Abort the DMA Transfer. More...
 
HAL_StatusTypeDef HAL_DMA_Abort_IT (DMA_HandleTypeDef *hdma)
 Aborts the DMA Transfer in Interrupt mode. More...
 
HAL_StatusTypeDef HAL_DMA_PollForTransfer (DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
 Polling for transfer complete. More...
 
void HAL_DMA_IRQHandler (DMA_HandleTypeDef *hdma)
 Handle DMA interrupt request. More...
 
HAL_StatusTypeDef HAL_DMA_RegisterCallback (DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void(*pCallback)(DMA_HandleTypeDef *_hdma))
 Register callbacks. More...
 
HAL_StatusTypeDef HAL_DMA_UnRegisterCallback (DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID)
 UnRegister callbacks. More...
 
HAL_DMA_StateTypeDef HAL_DMA_GetState (DMA_HandleTypeDef *hdma)
 Return the DMA handle state. More...
 
uint32_t HAL_DMA_GetError (DMA_HandleTypeDef *hdma)
 Return the DMA error code. More...
 

Detailed Description

DMA HAL module driver. This file provides firmware functions to manage the following functionalities of the Direct Memory Access (DMA) peripheral:

Author
MCD Application Team
  • Initialization and de-initialization functions
  • IO operation functions
  • Peripheral State and errors functions
    ==============================================================================
                          ##### How to use this driver #####
    ==============================================================================
    [..]
     (#) Enable and configure the peripheral to be connected to the DMA Channel
         (except for internal SRAM / FLASH memories: no initialization is
         necessary). Please refer to the Reference manual for connection between peripherals
         and DMA requests.
    
     (#) For a given Channel, program the required configuration through the following parameters:
         Channel request, Transfer Direction, Source and Destination data formats,
         Circular or Normal mode, Channel Priority level, Source and Destination Increment mode
         using HAL_DMA_Init() function.
    
         Prior to HAL_DMA_Init the peripheral clock shall be enabled for both DMA & DMAMUX
         thanks to:
        (##) DMA1 or DMA2: __HAL_RCC_DMA1_CLK_ENABLE() or  __HAL_RCC_DMA2_CLK_ENABLE() ;
        (##) DMAMUX1:      __HAL_RCC_DMAMUX1_CLK_ENABLE();
    
     (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of error
         detection.
    
     (#) Use HAL_DMA_Abort() function to abort the current transfer
    
       -@-   In Memory-to-Memory transfer mode, Circular mode is not allowed.
    
       *** Polling mode IO operation ***
       =================================
       [..]
         (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source
             address and destination address and the Length of data to be transferred
         (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this
             case a fixed Timeout can be configured by User depending from his application.
    
       *** Interrupt mode IO operation ***
       ===================================
       [..]
         (+) Configure the DMA interrupt priority using HAL_NVIC_SetPriority()
         (+) Enable the DMA IRQ handler using HAL_NVIC_EnableIRQ()
         (+) Use HAL_DMA_Start_IT() to start DMA transfer after the configuration of
             Source address and destination address and the Length of data to be transferred.
             In this case the DMA interrupt is configured
         (+) Use HAL_DMA_IRQHandler() called under DMA_IRQHandler() Interrupt subroutine
         (+) At the end of data transfer HAL_DMA_IRQHandler() function is executed and user can
                add his own function to register callbacks with HAL_DMA_RegisterCallback().
    
       *** DMA HAL driver macros list ***
       =============================================
       [..]
         Below the list of macros in DMA HAL driver.
    
         (+) __HAL_DMA_ENABLE: Enable the specified DMA Channel.
         (+) __HAL_DMA_DISABLE: Disable the specified DMA Channel.
         (+) __HAL_DMA_GET_FLAG: Get the DMA Channel pending flags.
         (+) __HAL_DMA_CLEAR_FLAG: Clear the DMA Channel pending flags.
         (+) __HAL_DMA_ENABLE_IT: Enable the specified DMA Channel interrupts.
         (+) __HAL_DMA_DISABLE_IT: Disable the specified DMA Channel interrupts.
         (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Channel interrupt is enabled or not.
    
       [..]
        (@) You can refer to the DMA HAL driver header file for more useful macros
Attention

© Copyright (c) 2017 STMicroelectronics. All rights reserved.

This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause

Definition in file stm32l4xx_hal_dma.c.