本帖最后由 不锈钢铁 于 2012-12-4 19:11 编辑
我只想让TIM2的通道3输出PWM,通道4做IO口。所以我只配置了通道3,通道4对应的IO口配置成GPIO_Mode_Out_PP模式,可是为什么所有的通道都输出了?通道3和4对应的IO都输出了一模一样的PWM波。
TIM_InternalClockConfig(TIM2);//使用内部时钟
TIM_BaseInitStructure.TIM_Prescaler=3; //设置TIM时钟频率除数的预分频值
TIM_BaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;//选择计数器模式
TIM_BaseInitStructure.TIM_Period=1799;//设置下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_BaseInitStructure.TIM_ClockDivision=0;//设置时钟分割
TIM_TimeBaseInit(TIM2,&TIM_BaseInitStructure);
//通道3
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;//选择定时器模式
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//选择输出比较状态
TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Disable;//选择互补输出比较状态
TIM_OCInitStructure.TIM_Pulse=300;//设置了待装入捕获比较器的脉冲值
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//设置输出极性
TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;//设置互补输出极性
TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;//选择空闲状态下得非工作状态
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;//选择互补空闲状态下得非工作状态
TIM_OC3Init(TIM2,&TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);
TIM_Cmd(TIM2, ENABLE);
TIM_CtrlPWMOutputs(TIM2,ENABLE); |