#ifndef __LHL_DMA_H__ #define __LHL_DMA_H__ #ifndef ENABLE_USER_UART #pragma message("[undefined] ENABLE_USER_UART") #elif(ENABLE_USER_UART) #define DMA_CHANNEL_UART_Rx DMA_CHANNEL_0 #define DMA_CHANNEL_UART_Tx DMA_CHANNEL_0 #define DMA_CHANNEL_BtimCfg DMA_CHANNEL_1 //DMA采集 #define DMA_CHANNEL_ADC_0 DMA_CHANNEL_2 #define DMA_CHANNEL_ADC_1 DMA_CHANNEL_3 //DMA序列采集 #define DMA_CHANNEL_ADC_STA DMA_CHANNEL_ADC_0 #define DMA_CHANNEL_ADC_CTL DMA_CHANNEL_ADC_1 #endif #ifndef ENABLE_USER_I2C #pragma message("[undefined] ENABLE_USER_I2C") #elif(ENABLE_USER_I2C) #define DMA_CHANNEL_I2C_Rx DMA_CHANNEL_0 #define DMA_CHANNEL_I2C_Tx DMA_CHANNEL_1 #define DMA_CHANNEL_ADC_0 DMA_CHANNEL_2 #define DMA_CHANNEL_ADC_1 DMA_CHANNEL_3 #define DMA_CHANNEL_ADC_STA DMA_CHANNEL_ADC_0 #define DMA_CHANNEL_ADC_CTL DMA_CHANNEL_ADC_1 #endif /* 配置DMAMUX(DMA多路复用器) */ void DMA_DMAMUX_CFG(DMA_CHANNEL_t channel,DMAMUX_REQ_SRC_t source); /*============================================================================ DMA 中断回调函数 ============================================================================*/ typedef void (*dma_half_irq_callback_t)(void); typedef void (*dma_major_irq_callback_t)(void); typedef struct { dma_half_irq_callback_t half_callback; dma_major_irq_callback_t major_callback; } dma_callbacks_t; void DMA_register_irq_callback(DMA_CHANNEL_t dmachannel, dma_half_irq_callback_t dma_half_irq_callback ,dma_major_irq_callback_t dma_major_irq_callback); #endif