1.原理
2.源码
int timer_sync(TIM_TypeDef* master_timer,
TIM_TypeDef* slave_timer,
uint8_t master_timer_mode,
uint8_t slave_timer_mode,
uint8_t internal_trigger_channel){
TIM_SelectOutputTrigger(master_timer, master_timer_mode);
TIM_SelectMasterSlaveMode(master_timer, TIM_MasterSlaveMode_Enable);
TIM_SelectSlaveMode(slave_timer, slave_timer_mode);
TIM_SelectInputTrigger(slave_timer, internal_trigger_channel);
}
void timer1_trigger_timer2_enable(void){
TIM_TypeDef* master_timer = TIM1;
TIM_TypeDef* slave_timer = TIM2;
TIM_TimeBaseInitTypeDef tim_base_init_struct;
tim_base_init_struct.TIM_Period = 5000 - 1;
tim_base_init_struct.TIM_Prescaler = 16800 - 1;
tim_base_init_struct.TIM_CounterMode = TIM_CounterMode_Up;
tim_base_init_struct.TIM_ClockDivision = TIM_CKD_DIV1;
tim_base_init_struct.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(master_timer, &tim_base_init_struct);
TIM_TimeBaseInit(slave_timer, &tim_base_init_struct);
timer_sync(master_timer, slave_timer, TIM_TRGOSource_Enable, TIM_SlaveMode_Trigger, TIM_TS_ITR0);
TIM_Cmd(master_timer, ENABLE);
}