| 这里再注意一点上面左图最顶上的那句话:当外部触发信号被选为ADC规则或注入转换时,只有它的上升沿可以启动转换。这跟下面的定时器2的正确配置关系很大。 
 void TIM2_Configuration(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    TIM_OCInitTypeDef TIM_OCInitStructure;
    TIM_TimeBaseStructure.TIM_Period = 10000;   //设置100mS一次TIM2比较的周期
    TIM_TimeBaseStructure.TIM_Prescaler = 719;   //系统主频72M,这里分频720,相当于100K的定时器2时钟
//采集时间 = TIM_Period/(系统主频/TIM_Prescaler) = 10000/(72*10^6/720) = 100mS
    TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;   //下面详细说明
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//TIM_OutputState_Disable;
    TIM_OCInitStructure.TIM_Pulse = 5000;   //TIM_Pulse < TIM_Period,也可直接置入10000,TIM_Period = TIM_Pulse
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;    //如果是PWM1要为Low,PWM2则为High
    TIM_OC2Init(TIM2, & TIM_OCInitStructure);
    TIM_Cmd(TIM2, ENABLE);
    TIM_InternalClockConfig(TIM2);
    TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);
    TIM_UpdateDisableConfig(TIM2, DISABLE);
}
 |