打印

内存DMA

[复制链接]
1313|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ychany|  楼主 | 2012-5-19 20:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问内存到内存批量传输DMA如何设置,我如下设置为何不能传输呢

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
TIM_DeInit(TIM1); //定时器初始化
  
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period = 10000;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);


TIM_CtrlPWMOutputs(TIM1,ENABLE);//输出允许  

/*********************************************
  TIM1 CH2 产生DMA更新信号,DMA数据至PA.0~PA.7
*********************************************/
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_Pulse = 10;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
TIM_OC2Init(TIM1,&TIM_OCInitStructure);

TIM_DMAConfig(TIM1,TIM_DMABase_CCR2, TIM_DMABurstLength_1Byte);//传输长度1个字节
TIM_DMACmd(TIM1,TIM_DMA_CC2, ENABLE); //TIM通道2更新作为DMA源

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
/* DMA channe 3 configuration */
DMA_DeInit(DMA1_Channel3);
DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)(&Dis_Buf[0]);
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)(&LCD_Buf[0]);
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = 1024;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; //字节传输
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;//字节传输
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; //循环模式
DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;
DMA_InitStructure.DMA_M2M = DMA_M2M_Enable;
DMA_Init(DMA1_Channel3, &DMA_InitStructure);
DMA_Cmd(DMA1_Channel3, ENABLE);

TIM_Cmd(TIM1,ENABLE);    //定时器1开始运行
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

75

帖子

0

粉丝