最近在做一个设计,使用STM32L1的定时器做一个大的计数器,每当外部PPS信号进来后,利用捕获功能来计算捕获值。这个计数器是采用定时器级联方式(三个16位组成一个48位的大计数器),由于硬件条件限制,目前使用的是TIM3(主)-TIM2-TIM4的方式。由第一个有效的PPS沿触发TIM3启动。 定时器配置如下: //配置TIM3为触发启动 TIM_SelectSlaveMode(TIM3,TIM_SlaveMode_Trigger); TIM_SelectInputTrigger( TIM3, TIM_TS_TI1FP1 ); //配置TIM3为主定时器 TIM_SelectMasterSlaveMode (TIM3, TIM_MasterSlaveMode_Enable); TIM_SelectOutputTrigger (TIM3, TIM_TRGOSource_Update); //配置TIM2为从定时器 TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_External1); TIM_SelectInputTrigger(TIM2, TIM_TS_ITR2); //配置TIM2为主定时器 TIM_SelectMasterSlaveMode (TIM2, TIM_MasterSlaveMode_Enable); TIM_SelectOutputTrigger (TIM2, TIM_TRGOSource_Update); //配置TIM4为从定时器 TIM_SelectSlaveMode(TIM4, TIM_SlaveMode_External1); TIM_SelectInputTrigger(TIM4, TIM_TS_ITR1); TIM_Cmd(TIM2, ENABLE); TIM_Cmd(TIM4, ENABLE); TIM_ITConfig( TIM3, TIM_IT_CC1, ENABLE); 实际的调试过程中发现,上述标红部分的代码换成 TIM_SelectInputTrigger( TIM3, TIM_TS_TI1F_ED); 也没有问题,请帮忙看下这两个的区别是什么啊? |
手册上说明一个是TL1 Edge Detector 一个是Filered Timer Input 1,一直不懂这两个到底差在哪里,好像调试都能用 |
我也一样迷惑。不知道是否有人知道。 |