|
哦,香水大大,是按照官方例程设置的啊。
/*----------------------------------------------------------------------------
Tim2 DMA初始化
-----------------------------------------------------------------------------*/
#define TIM2_CCR1_Addr 0x40000034 // 捕获/比较寄存器1(TIM2_CCR1)
#define TIM2_CCR2_Addr 0x40000038 // 捕获/比较寄存器2(TIM2_CCR2)
void DMATim2Init(void)
{
DMA_InitTypeDef DMA_InitStructure;
DMA_DeInit(DMA1_Channel5);
// DMA1 通道5 配置
DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)TIM2_CCR1_Addr; // 设备基地址
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)Buf1; // 内存基地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; // 方向:外设 ->内存
DMA_InitStructure.DMA_BufferSize = 20; // 传输数量
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 外设地址不增.
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; // 内存地址自增
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; // 设备数据长度,半字
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; // 内存数据长度,半字
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; // 单次
DMA_InitStructure.DMA_Priority = DMA_Priority_High; // 高优先级
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel5, &DMA_InitStructure);
// 使能 DMA5传输结束中断
DMA_ITConfig(DMA1_Channel5, DMA_IT_TC, ENABLE);
DMA_Cmd(DMA1_Channel5, ENABLE);
} |
|