108#ifdef HAL_DMA_MODULE_ENABLED
123 #define HAL_TIMEOUT_DMA_ABORT 5U
212 while((hdma->
Instance->CR & DMA_SxCR_EN) != RESET)
231 tmp &= ((uint32_t)~(DMA_SxCR_CHSEL | DMA_SxCR_MBURST | DMA_SxCR_PBURST | \
232 DMA_SxCR_PL | DMA_SxCR_MSIZE | DMA_SxCR_PSIZE | \
233 DMA_SxCR_MINC | DMA_SxCR_PINC | DMA_SxCR_CIRC | \
234 DMA_SxCR_DIR | DMA_SxCR_CT | DMA_SxCR_DBM));
256 tmp &= (uint32_t)~(DMA_SxFCR_DMDIS | DMA_SxFCR_FTH);
544 while((hdma->
Instance->CR & DMA_SxCR_EN) != RESET)
613 uint32_t mask_cpltlevel;
629 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) != RESET)
655 if((Timeout == 0U)||((
HAL_GetTick() - tickstart ) > Timeout))
749 __IO uint32_t count = 0U;
750 uint32_t timeout = SystemCoreClock / 9600U;
805 if(((hdma->
Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
808 if((hdma->
Instance->CR & DMA_SxCR_CT) == RESET)
829 if((hdma->
Instance->CR & DMA_SxCR_CIRC) == RESET)
878 if(((hdma->
Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
881 if((hdma->
Instance->CR & DMA_SxCR_CT) == RESET)
902 if((hdma->
Instance->CR & DMA_SxCR_CIRC) == RESET)
935 if (++count > timeout)
940 while((hdma->
Instance->CR & DMA_SxCR_EN) != RESET);
1154 hdma->
Instance->CR &= (uint32_t)(~DMA_SxCR_DBM);
1187 uint32_t stream_number = (((uint32_t)hdma->
Instance & 0xFFU) - 16U) / 24U;
1190 static const uint8_t flagBitshiftOffset[8U] = {0U, 6U, 16U, 22U, 0U, 6U, 16U, 22U};
1191 hdma->
StreamIndex = flagBitshiftOffset[stream_number];
1193 if (stream_number > 3U)
1225 if ((hdma->
Init.
MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
1253 if ((hdma->
Init.
MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
1280 if ((hdma->
Init.
MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
#define DMA_MEMORY_TO_PERIPH
#define HAL_DMA_ERROR_PARAM
#define HAL_DMA_ERROR_TIMEOUT
#define HAL_DMA_ERROR_NOT_SUPPORTED
#define HAL_DMA_ERROR_NONE
#define HAL_DMA_ERROR_NO_XFER
#define HAL_DMA_ERROR_DME
HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma)
Initialize the DMA according to the specified parameters in the DMA_InitTypeDef and create the associ...
HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma)
DeInitializes the DMA peripheral.
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
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.
HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID)
UnRegister callbacks.
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
Handles DMA interrupt request.
HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Starts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
Polling for transfer complete.
HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void(*pCallback)(DMA_HandleTypeDef *_hdma))
Register callbacks.
uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma)
Return the DMA error code.
HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma)
Returns the DMA state.
HAL_DMA_StateTypeDef
HAL DMA State structures definition.
HAL_DMA_LevelCompleteTypeDef
HAL DMA Error Code structure definition.
HAL_DMA_CallbackIDTypeDef
HAL DMA Error Code structure definition.
@ HAL_DMA_XFER_M1CPLT_CB_ID
@ HAL_DMA_XFER_ABORT_CB_ID
@ HAL_DMA_XFER_ERROR_CB_ID
@ HAL_DMA_XFER_HALFCPLT_CB_ID
@ HAL_DMA_XFER_CPLT_CB_ID
@ HAL_DMA_XFER_M1HALFCPLT_CB_ID
#define DMA_FIFOMODE_ENABLE
#define DMA_FIFOMODE_DISABLE
#define DMA_FIFO_THRESHOLD_1QUARTERFULL
#define DMA_FIFO_THRESHOLD_FULL
#define DMA_FIFO_THRESHOLD_HALFFULL
#define DMA_FIFO_THRESHOLD_3QUARTERSFULL
#define DMA_MBURST_SINGLE
#define DMA_MDATAALIGN_HALFWORD
#define DMA_MDATAALIGN_BYTE
#define HAL_TIMEOUT_DMA_ABORT
static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Sets the DMA Transfer parameter.
static HAL_StatusTypeDef DMA_CheckFifoParam(DMA_HandleTypeDef *hdma)
Check compatibility between FIFO threshold level and size of the memory burst.
static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma)
Returns the DMA Stream base address depending on stream number.
#define IS_DMA_PERIPHERAL_INC_STATE(STATE)
#define IS_DMA_BUFFER_SIZE(SIZE)
#define IS_DMA_PERIPHERAL_BURST(BURST)
#define IS_DMA_MEMORY_BURST(BURST)
#define IS_DMA_PRIORITY(PRIORITY)
#define IS_DMA_MEMORY_INC_STATE(STATE)
#define IS_DMA_CHANNEL(CHANNEL)
#define IS_DMA_MEMORY_DATA_SIZE(SIZE)
#define IS_DMA_PERIPHERAL_DATA_SIZE(SIZE)
#define IS_DMA_MODE(MODE)
#define IS_DMA_FIFO_MODE_STATE(STATE)
#define IS_DMA_DIRECTION(DIRECTION)
#define IS_DMA_FIFO_THRESHOLD(THRESHOLD)
#define DMA_FLAG_DMEIF0_4
#define __HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
Check whether the specified DMA Stream interrupt is enabled or disabled.
#define __HAL_DMA_ENABLE(__HANDLE__)
Enable the specified DMA Stream.
#define __HAL_DMA_DISABLE(__HANDLE__)
Disable the specified DMA Stream.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
#define assert_param(expr)
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef
HAL Status structures definition
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
uint32_t PeriphDataAlignment
uint32_t MemDataAlignment
DMA handle Structure definition.
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
__IO HAL_DMA_StateTypeDef State
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
uint32_t StreamBaseAddress
DMA_Stream_TypeDef * Instance
void(* XferM1HalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferM1CpltCallback)(struct __DMA_HandleTypeDef *hdma)