hal_dma.h
来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C头文件 代码 · 共 127 行
H
127 行
//-----------------------------------------------------------------------------
// HAL_DMA
//-----------------------------------------------------------------------------
#ifndef HAL_DMA_H
#define HAL_DMA_H
#include "hal_map.h"
typedef union {
struct {
u32 address;
};
struct {
u16 address_h;
u16 address_l;
};
}Address_SrcDest;
//*************************************************
//REGISTER DMACtrl
//*************************************************
//********* Masks
#define DMA_DMACtrl_Mask 0x27FF
#define DMA_Enable 0x0001
#define DMA_SoInc 0x0006
#define DMA_DeInc 0x0018
#define DMA_SoSize 0x0060
#define DMA_SoBurst 0x0180
#define DMA_DeSize 0x0600
#define DMA_Mem2Mem 0x0800
#define DMA_Dir 0x2000
//********* Values
//for DMA_SoSize DMA_DeSize
#define DMA_DeSize_8 0x0000
#define DMA_DeSize_16 0x0200
#define DMA_DeSize_32 0x0400
#define DMA_SoSize_8 0x0000
#define DMA_SoSize_16 0x0020
#define DMA_SoSize_32 0x0040
//for DMA_SoBurst
#define DMA_SoBurst_Single 0x0000
#define DMA_SoBurst_4 0x0080
#define DMA_SoBurst_8 0x0100
#define DMA_SoBurst_16 0x0180
//for DMA_SoInc
#define DMA_SoInc_unchanged 0x0000
#define DMA_SoInc_Inc 0x0002
#define DMA_SoInc_Dec 0x0004
//for DMA_SoInc
#define DMA_DeInc_unchanged 0x0000
#define DMA_DeInc_Inc 0x0008
#define DMA_DeInc_Dec 0x0010
//*************************************************
//REGISTER DMA_DMAMask
//*************************************************
//********* Mask
#define DMA_DMAMask_Mask 0x00FF
//********* Values
#define DMA_DMAMask_Mask0 0x0001
#define DMA_DMAMask_Mask1 0x0002
#define DMA_DMAMask_Mask2 0x0004
#define DMA_DMAMask_Mask3 0x0008
#define DMA_DMAMask_MaskE0 0x0010
#define DMA_DMAMask_MaskE1 0x0020
#define DMA_DMAMask_MaskE2 0x0040
#define DMA_DMAMask_MaskE3 0x0080
//*************************************************
//REGISTER DMA_DMAClr
//*************************************************
//********* Mask
#define DMA_DMAClr_Mask 0x00FF
//********* Values
#define DMA_DMAClr_Clear0 0x0001
#define DMA_DMAClr_Clear1 0x0002
#define DMA_DMAClr_Clear2 0x0004
#define DMA_DMAClr_Clear3 0x0008
#define DMA_DMAClr_ClearE0 0x0010
#define DMA_DMAClr_ClearE1 0x0020
#define DMA_DMAClr_ClearE2 0x0040
#define DMA_DMAClr_ClearE3 0x0080
//*************************************************
//REGISTER DMA_DMAStatus
//*************************************************
//********* Mask
#define DMA_DMAStatus_Mask 0x0FFF
//********* Values
#define DMA_DMAStatus_Int0 0x0001
#define DMA_DMAStatus_Int1 0x0002
#define DMA_DMAStatus_Int2 0x0004
#define DMA_DMAStatus_Int3 0x0008
#define DMA_DMAStatus_ErrorInt0 0x0010
#define DMA_DMAStatus_ErrorInt1 0x0020
#define DMA_DMAStatus_ErrorInt2 0x0040
#define DMA_DMAStatus_ErrorInt3 0x0080
#define DMA_DMAStatus_Active0 0x0100
#define DMA_DMAStatus_Active1 0x0200
#define DMA_DMAStatus_Active2 0x0400
#define DMA_DMAStatus_Active3 0x0800
//-----------------------------------------------------------------------------
int DMA_Init(DMA_TypeDef *channel, u32 count);
int DMA_SetSrcAddress(DMA_TypeDef *channel, u32 address);
int DMA_SetDstAddress(DMA_TypeDef *channel, u32 address);
void DMA_Start(DMA_TypeDef *channel);
void DMA_EnableInterrupt(DMA_TypeDef *channel);
void DMA_DisableInterrupt(DMA_TypeDef *channel);
void DMA_ClrInterrupt(DMA_TypeDef *channel);
//-----------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?