使用定时器2的通道1、2输出PWM
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENABLE);//打开串口时钟源
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_Prescaler_1 , TIM2_CounterMode_Up, TIM2_Per);
TIM2_PrescalerConfig(TIM2_Prescaler_1,TIM2_PSCReloadMode_Update);
TIM2_CounterModeConfig(TIM2_CounterMode_CenterAligned1); //频率减半,输出错开
TIM2_ARRPreloadConfig(ENABLE);
TIM2_ITConfig(TIM2_IT_Update,ENABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);
TIM2_OC1Init( TIM2_OCMode_PWM1, //
TIM2_OutputState_Enable ,
TIM2_Pul,//占空比
TIM2_OCPolarity_High ,
TIM2_OCIdleState_Set);
TIM2_OC1PreloadConfig(ENABLE);
TIM2_OC2Init( TIM2_OCMode_PWM1,
TIM2_OutputState_Enable ,
TIM2_Per-TIM2_Pul,//占空比
TIM2_OCPolarity_Low ,
TIM2_OCIdleState_Set);
TIM2_OC2PreloadConfig(ENABLE);
TIM2_CtrlPWMOutputs(ENABLE);
SYSCFG_REMAPPinConfig(REMAP_Pin_TIM2Channel1, ENABLE); //重映射PC5
SYSCFG_REMAPPinConfig(REMAP_Pin_TIM2Channel2, ENABLE); //重映射PC5
TIM2_Cmd(ENABLE);
代码就不细讲了,主要是定时器2PWM配置,然后重映射到PC5、6两个端口输出。
这个项目是驱动超声波换能器。