STM32G474xx HAL用户手册
宏定义
DMA导出宏
DMA

宏定义

#define __HAL_DMA_RESET_HANDLE_STATE(__HANDLE__)   ((__HANDLE__)->State = HAL_DMA_STATE_RESET)
 重置DMA句柄状态。
#define __HAL_DMA_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CCR |= DMA_CCR_EN)
 使能指定的DMA通道。
#define __HAL_DMA_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CCR &= ~DMA_CCR_EN)
 禁止指定的DMA通道。
#define __HAL_DMA_GET_TC_FLAG_INDEX(__HANDLE__)
 返回当前DMA通道传输完成标志。
#define __HAL_DMA_GET_HT_FLAG_INDEX(__HANDLE__)
 返回当前DMA通道半传输完成标志。
#define __HAL_DMA_GET_TE_FLAG_INDEX(__HANDLE__)
 返回当前DMA通道传输错误标志。
#define __HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)
 返回当前DMA通道全局中断标志。
#define __HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__)
 获取DMA通道待处理标志。
#define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__)
 清除DMA通道待处理标志。
#define __HAL_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->CCR |= (__INTERRUPT__))
 使能指定的DMA通道中断。
#define __HAL_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->CCR &= ~(__INTERRUPT__))
 禁止指定的DMA通道中断。
#define __HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->CCR & (__INTERRUPT__)))
 检查指定的DMA通道中断是否使能。
#define __HAL_DMA_GET_COUNTER(__HANDLE__)   ((__HANDLE__)->Instance->CNDTR)
 返回当前DMA通道传输中剩余的数据单元数。

宏定义说明

#define __HAL_DMA_CLEAR_FLAG (   __HANDLE__,
  __FLAG__ 
)
Value:
(((uint32_t)((__HANDLE__)->Instance) > ((uint32_t)DMA1_Channel8))? \
                                                    (DMA2->IFCR = (__FLAG__)) : (DMA1->IFCR = (__FLAG__)))

清除DMA通道待处理标志。

参数:
__HANDLE__DMA句柄
__FLAG__指定要清除的标志。该参数可以是以下值的任意组合:
  • DMA_FLAG_TCx 传输完成标志
  • DMA_FLAG_HTx 半传输完成标志
  • DMA_FLAG_TEx 传输错误标志
  • DMA_FLAG_GLx 全局中断标志 其中x可以从1到8,用于选择DMA通道x的标志。
返回值:

定义于文件 stm32g4xx_hal_dma.h 的第 692 行。

#define __HAL_DMA_DISABLE (   __HANDLE__)    ((__HANDLE__)->Instance->CCR &= ~DMA_CCR_EN)

禁止指定的DMA通道。

参数:
__HANDLE__DMA句柄
返回值:

定义于文件 stm32g4xx_hal_dma.h 的第 505 行。

被以下函数引用:HAL_DMA_Abort()HAL_DMA_Abort_IT()HAL_DMA_DeInit()HAL_DMA_Start()HAL_DMA_Start_IT()HAL_QSPI_IRQHandler()SRAM_DMACplt()SRAM_DMACpltProt()SRAM_DMAError()

#define __HAL_DMA_DISABLE_IT (   __HANDLE__,
  __INTERRUPT__ 
)    ((__HANDLE__)->Instance->CCR &= ~(__INTERRUPT__))

禁止指定的DMA通道中断。

参数:
__HANDLE__DMA句柄
__INTERRUPT__指定要使能或禁止的DMA中断源。该参数可以是以下值的任意组合:
  • DMA_IT_TC 传输完成中断屏蔽
  • DMA_IT_HT 半传输完成中断屏蔽
  • DMA_IT_TE 传输错误中断屏蔽
返回值:

定义于文件 stm32g4xx_hal_dma.h 的第 721 行。

被以下函数引用:HAL_DMA_Abort()HAL_DMA_Abort_IT()HAL_DMA_IRQHandler()HAL_DMA_Start_IT()

#define __HAL_DMA_ENABLE (   __HANDLE__)    ((__HANDLE__)->Instance->CCR |= DMA_CCR_EN)

使能指定的DMA通道。

参数:
__HANDLE__DMA句柄
返回值:

定义于文件 stm32g4xx_hal_dma.h 的第 498 行。

被以下函数引用:HAL_DMA_Start()HAL_DMA_Start_IT()

#define __HAL_DMA_ENABLE_IT (   __HANDLE__,
  __INTERRUPT__ 
)    ((__HANDLE__)->Instance->CCR |= (__INTERRUPT__))

使能指定的DMA通道中断。

参数:
__HANDLE__DMA句柄
__INTERRUPT__指定要使能或禁止的DMA中断源。该参数可以是以下值的任意组合:
  • DMA_IT_TC 传输完成中断屏蔽
  • DMA_IT_HT 半传输完成中断屏蔽
  • DMA_IT_TE 传输错误中断屏蔽
返回值:

定义于文件 stm32g4xx_hal_dma.h 的第 709 行。

被以下函数引用:HAL_DMA_Start_IT()

#define __HAL_DMA_GET_COUNTER (   __HANDLE__)    ((__HANDLE__)->Instance->CNDTR)

返回当前DMA通道传输中剩余的数据单元数。

参数:
__HANDLE__DMA句柄
返回值:
当前DMA通道传输中剩余的数据单元数。

定义于文件 stm32g4xx_hal_dma.h 的第 740 行。

被以下函数引用:HAL_UART_IRQHandler()UART_DMAReceiveCplt()UART_DMARxHalfCplt()

#define __HAL_DMA_GET_FLAG (   __HANDLE__,
  __FLAG__ 
)
Value:
(((uint32_t)((__HANDLE__)->Instance) > ((uint32_t)DMA1_Channel8))? \
                                                  (DMA2->ISR & (__FLAG__)) : (DMA1->ISR & (__FLAG__)))

获取DMA通道待处理标志。

参数:
__HANDLE__DMA句柄
__FLAG__获取指定的标志。该参数可以是以下值的任意组合:
  • DMA_FLAG_TCx 传输完成标志
  • DMA_FLAG_HTx 半传输完成标志
  • DMA_FLAG_TEx 传输错误标志
  • DMA_FLAG_GLx 全局中断标志 其中x可以从1到8,用于选择DMA通道x的标志。
返回值:
标志的状态(SET或RESET)。

定义于文件 stm32g4xx_hal_dma.h 的第 672 行。

#define __HAL_DMA_GET_GI_FLAG_INDEX (   __HANDLE__)
Value:
(((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_ISR_GIF1 :\
   ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_ISR_GIF1 :\
   ((uint32_t)((__HANDLE__)->Instance