| 
 
| 本帖最后由 ZUI135 于 2009-10-29 22:24 编辑 
 我现在需要使用tim1来产生6步的PWM波
 下面是例子的初始化代码:
 -----------------------------------------------
 | Step1 | Step2 | Step3 | Step4 | Step5 | Step6 |
 ----------------------------------------------------------
 |Channel1  |   1   |   0   |   0   |   0   |   0   |   1   |
 ----------------------------------------------------------
 |Channel1N |   0   |   0   |   1   |   1   |   0   |   0   |
 ----------------------------------------------------------
 |Channel2  |   0   |   0   |   0   |   1   |   1   |   0   |
 ----------------------------------------------------------
 |Channel2N |   1   |   1   |   0   |   0   |   0   |   0   |
 ----------------------------------------------------------
 |Channel3  |   0   |   1   |   1   |   0   |   0   |   0   |
 ----------------------------------------------------------
 |Channel3N |   0   |   0   |   0   |   0   |   1   |   1   |
 ----------------------------------------------------------
 -----------------------------------------------------------------------------*/
 /* Time Base configuration */
 TIM_TimeBaseStructure.TIM_Prescaler = 0;
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 TIM_TimeBaseStructure.TIM_Period = 4095;
 TIM_TimeBaseStructure.TIM_ClockDivision = 0;
 TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
 TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
 /* Channel 1, 2,3 and 4 Configuration in PWM mode */
 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;
 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
 TIM_OCInitStructure.TIM_Pulse = 1000;
 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
 TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
 TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Set;
 TIM_OC1Init(TIM1, &TIM_OCInitStructure);
 TIM_OCInitStructure.TIM_Pulse = 2000;
 TIM_OC2Init(TIM1, &TIM_OCInitStructure);
 TIM_OCInitStructure.TIM_Pulse = 3250;
 TIM_OC3Init(TIM1, &TIM_OCInitStructure);
 /* Automatic Output enable, Break, dead time and lock configuration*/
 TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;
 TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;
 TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF;
 TIM_BDTRInitStructure.TIM_DeadTime = 1;
 TIM_BDTRInitStructure.TIM_Break = TIM_Break_Enable;
 TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High;
 TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;
 TIM_BDTRConfig(TIM1, &TIM_BDTRInitStructure);
 TIM_CCPreloadControl(TIM1, ENABLE);
 TIM_ITConfig(TIM1, TIM_IT_COM, ENABLE);
 /* TIM1 counter enable */
 TIM_Cmd(TIM1, ENABLE);
 /* Main Output Enable */
 TIM_CtrlPWMOutputs(TIM1, ENABLE);SysTick触发COM中断,NVIC和RCC都有开,程序单步运行和全速运行测量,都无法测量到波形输出,万用表也测量不到,全部是0.
 这个是怎么回事 ????帮帮我
 | 
 |