TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //clock
TIM_TimeBaseStructure.TIM_Period = 4999; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler = 799; //设置用来作为TIMx时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update); //选择输出模式 主模式选择 这是级联的关键
TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable); //启动定时器的主从模式
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //clock
TIM_TimeBaseStructure.TIM_Period = 4999; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler = 79; //设置用来作为TIMx时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
// TIM_SlaveMode_Trigger // TIM_SlaveMode_External1 // TIM_SlaveMode_Gated
TIM_SelectSlaveMode (TIM3, TIM_SlaveMode_External1);// 从模式外部触发模式 //外部时钟模式 外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计数器
TIM_SelectInputTrigger (TIM3, TIM_TS_ITR1);// 触发选择,ITR1 即 TIM2
// TIM_ITRxExternalClockConfig(TIM3, TIM_TS_ITR1);
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);
TIM_Cmd(TIM3, ENABLE);
帮看看这样的行吗?
|