/****************************************************************************** * Shanghai ChipON Micro-Electronic Co.,Ltd * ****************************************************************************** * $File Name$ : KF32A156_dma.h * * $Author$ : ChipON AE/FAE Group * * $Data$ : 2021-07-08 * * $AutoSAR Version : V2.0 * * $Description$ : This file contains the headers of the DMA * * peripherals. * ****************************************************************************** * Copyright (C) by Shanghai ChipON Micro-Electronic Co.,Ltd * * All rights reserved. * * * * This software is copyright protected and proprietary to * * Shanghai ChipON Micro-Electronic Co.,Ltd. * ****************************************************************************** * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * REVISON HISTORY * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Data Version Author Description * * ~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * * * * * * *****************************************************************************/ #ifndef KF32A156_DMA_H_ #define KF32A156_DMA_H_ #include "KF32A156.h" /** * 描述 DMA模块配置信息结构体 */ typedef struct { uint8_t m_Channel; /* DMA通道选择, 取值为宏“DMA通道”中的一个。*/ uint8_t m_Direction; /* DMA传输方向, 取值为宏“传输方向”中的一个。*/ uint8_t m_PeripheralDataSize; /* 外设数据位宽, 取值为宏“传输数据位宽”中的一个。*/ uint8_t m_MemoryDataSize; /* 存储器数据位宽, 取值为宏“传输数据位宽”中的一个。*/ uint16_t m_Priority; /* DMA通道优先级, 取值为宏“DMA通道优先级”中的一个。*/ uint16_t m_Number; /* 传输数据个数, 取值范围为0~65535。*/ FunctionalState m_PeripheralInc; /* 外设地址增量模式使能, 取值为TRUE或FALSE。*/ FunctionalState m_MemoryInc; /* 存储器地址增量模式使能, 取值为TRUE或FALSE。*/ FunctionalState m_LoopMode; /* 循环模式使能, 取值为TRUE或FALSE。*/ uint32_t m_BlockMode; /* 数据块传输模式, 取值为宏“数据块传输模式”中的一个。*/ uint32_t m_PeriphAddr; /* 外设起始地址, 取值为32位数值。*/ uint32_t m_MemoryAddr; /* 内存起始地址, 取值为32位数值。*/ }DMA_InitTypeDef; /** * DMA内存指针 */ #define CHECK_DMA_ALL_PERIPH(PERIPH) (((PERIPH) == DMA0_SFR) \ || ((PERIPH) == DMA1_SFR)) /** * DMA通道 */ #define DMA_CHANNEL_1 ((uint32_t)0) #define DMA_CHANNEL_2 ((uint32_t)1) #define DMA_CHANNEL_3 ((uint32_t)2) #define DMA_CHANNEL_4 ((uint32_t)3) #define DMA_CHANNEL_5 ((uint32_t)4) #define DMA_CHANNEL_6 ((uint32_t)5) #define DMA_CHANNEL_7 ((uint32_t)6) #define CHECK_DMA_CHANNEL(CHANNEL) (((CHANNEL) == DMA_CHANNEL_1) \ || ((CHANNEL) == DMA_CHANNEL_2) \ || ((CHANNEL) == DMA_CHANNEL_3) \ || ((CHANNEL) == DMA_CHANNEL_4) \ || ((CHANNEL) == DMA_CHANNEL_5) \ || ((CHANNEL) == DMA_CHANNEL_6) \ || ((CHANNEL) == DMA_CHANNEL_7)) /** * DMA通道优先级 */ #define DMA_CHANNEL_LOWER ((uint32_t)0<