中级会员
 
- 积分
- 494
- 金钱
- 494
- 注册时间
- 2012-4-20
- 在线时间
- 13 小时
|
问题一:最近做一个项目遇到这样一个问题,ADC采集数据用DMA完成,程序已经打开DMA中断使能。问题是,当DMA中断的时候,我首先执行ADC_DMACmd(ADC1, DISABLE);(关闭ADC的DMA),但是程序在执行该指令的时候,我发现采集的数据还发生变化,不知道是否正常,有其他解决的办法嘛?
问题二:TIM_ARRPreloadConfig(TIM3, ENABLE);定时器自动重装使能,这条语句什么时候需要这一条?一般定时器是否自带自动重装功能?
例如:利用定时器产生一个PWM ,BufferSize=64
IM_TimeBaseStructure.TIM_Period = BufferSize-1;
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
/* TIM2 channel2 configuration in PWM mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 10;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low ;
TIM_OC2Init(TIM2, &TIM_OCInitStructure);
TIM_CtrlPWMOutputs(TIM2, ENABLE);
TIM_Cmd(TIM2, ENABLE);
我想问一下当定时器TIM2计数值达到BufferSize时,是否自动将该值重装,是否需要TIM_ARRPreloadConfig(TIM2, ENABLE)这一条语句?
|
|