1、DMA的配置
要配置的有DMA传输通道选择,传输的成员和方向、普通模式还是循环模式等等。
- void DMA_Configuration(void)
- {
- DMA_InitTypeDef DMA_InitStructure;
- //DMA设置:
- //设置DMA源:内存地址&串口数据寄存器地址
- //方向:内存-->外设
- //每次传输位:8bit
- //传输大小DMA_BufferSize=SENDBUFF_SIZE
- //地址自增模式:外设地址不增,内存地址自增1
- //DMA模式:一次传输,非循环
- //优先级:中
- DMA_DeInit(DMA1_Channel4);//串口1的DMA传输通道是通道4
- DMA_InitStructure.DMA_PeripheralBaseAddr = USART1_DR_Base;
- DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SendBuff;
- DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;//外设作为DMA的目的端
- DMA_InitStructure.DMA_BufferSize = SENDBUFF_SIZE;//传输大小
- DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址不增加
- DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存地址自增1
- DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
- DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
- DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
- //DMA_Mode_Normal(只传送一次), DMA_Mode_Circular (不停地传送)
- DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;//(DMA传送优先级为中等)
- DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
- DMA_Init(DMA1_Channel4, &DMA_InitStructure);
- }
|