CLK_PeripheralClockConfig(CLK_Peripheral_TIM3, ENABLE);
/*
set SB_TX_LOCK mode:
PWM mode,T = 60us,
Duty Ratio: 3/4 represents send bit 1
1/2 represents send bit 0
1/4 represents a respond
TIM3_Prescaler_16,and T = 60;
*/
GPIO_Init(SB_TX_LOCK_PORT,SB_TX_LOCK_PIN,GPIO_Mode_Out_PP_High_Fast);
TIM3_DeInit();
#if (SYS_CLOCK_16M)
TIM3_TimeBaseInit(TIM3_Prescaler_16, TIM3_CounterMode_Up,PWM_T);
#endif
#if (SYS_CLOCK_8M)
TIM3_TimeBaseInit(TIM3_Prescaler_8, TIM3_CounterMode_Up,PWM_T);
#endif
#if (SYS_CLOCK_4M)
TIM3_TimeBaseInit(TIM3_Prescaler_4, TIM3_CounterMode_Up,PWM_T);
#endif
/* PWM1 Mode configuration: Channel1 default Duty Ratio is 1/2 */
TIM3_OC1Init(TIM3_OCMode_PWM1, TIM3_OutputState_Enable,PWM_T/2,TIM3_OCPolarity_High,TIM3_OCIdleState_Set);
TIM3_OC1PreloadConfig(ENABLE);
TIM3_ARRPreloadConfig(ENABLE);
TIM3_ITConfig(TIM3_IT_Update,ENABLE);
/*enable PWM output*/
TIM3_CtrlPWMOutputs(ENABLE);
/* TIM3 enable counter */
TIM3_Cmd(ENABLE);
该代码已经测试通过。占空比是50%,周期是PWM_T.
|