void Initial_DMA_StoreToStore (unsigned short *source,unsigned long size)///存储器到存储器DMA
{
DMA_InitTypeDef DMA_InitStructure = {0};
DMA_Cmd(DMA2_Stream0,DISABLE);///发送
//*********************************** 初始化DMA ***************************************//
DMA_InitStructure. DMA_Channel = DMA_Channel_0; //通道选择
DMA_InitStructure. DMA_PeripheralBaseAddr = (unsigned long)source; //数据地址//源地址
DMA_InitStructure. DMA_Memory0BaseAddr = (unsigned long)LCD_BASEADD_DATA; //存储器 0 地址////目标地址
DMA_InitStructure. DMA_DIR = DMA_DIR_MemoryToMemory; //传输方向
DMA_InitStructure. DMA_BufferSize = size; //数据数目
DMA_InitStructure. DMA_PeripheralInc = DMA_PeripheralInc_Enable; //源地址递增
DMA_InitStructure. DMA_MemoryInc = DMA_MemoryInc_Disable; //目标地址不变
DMA_InitStructure. DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; //外设数据宽度
DMA_InitStructure. DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; //存储器数据宽度
DMA_InitStructure. DMA_Mode = DMA_Mode_Normal; //模式选择//一次传输
DMA_InitStructure. DMA_Priority = DMA_Priority_Low; //优先级
DMA_InitStructure. DMA_FIFOMode = DMA_FIFOMode_Enable; //FIFO 模式
DMA_InitStructure. DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; //FIFO 阈值设置为半满,也就是把char类型转成short类型
DMA_InitStructure. DMA_MemoryBurst = DMA_MemoryBurst_Single; //存储器突发传输
DMA_InitStructure. DMA_PeripheralBurst = DMA_PeripheralBurst_Single; //外设突发传输
DMA_Init(DMA2_Stream0,&DMA_InitStructure);
DMA_ITConfig(DMA2_Stream0,DMA_IT_TC,ENABLE);
// DMA_Cmd(DMA2_Stream0,ENABLE);///发送
}
|