要使用STM32产生三路同步脉冲信号,使用定时器同步,TIM3作为TIM2和TIM1的预分频器,下面是我的主要部分程序,软件仿真的时候不能产生波形,
TIM_TimeBaseStructure.TIM_Period =31;
TIM_TimeBaseStructure.TIM_Prescaler = 1; //1+1=2
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down ;//向下计数
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);//TIM3设置
TIM_TimeBaseStructure.TIM_Period = 49;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);//TIM1设置
/* Select the Master Slave Mode *///设置TIM3为主模式
TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);
/* Master Mode selection */
TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update);//使用更新事件作为触发输出
/* Slaves Configuration: PWM1 Mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//PWM2模式
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 40;
TIM_OC1Init(TIM1, &TIM_OCInitStructure);//TIM1的通道1
/* Slave Mode selection: TIM1 *///设置TIM1为从模式,并且由TRGI的上升沿触发
TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_Trigger);//The counter starts at a rising edge of the trigger TRGI.
TIM_SelectInputTrigger(TIM1, TIM_TS_ITR1); //choose Internal Trigger 1
/* TIM enable counter *///使能TIM1,2,3
TIM_Cmd(TIM3, ENABLE);
TIM_Cmd(TIM1, ENABLE);
希望有做过定时器同步的朋友指导下,谢谢了
|