Better丶海殿下 发表于 2016-4-8 10:23:12

关于STM32定时器级联做计数器的问题

最近在做一个设计,使用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);

也没有问题,请帮忙看下这两个的区别是什么啊?

Better丶海殿下 发表于 2016-4-8 10:25:43

手册上说明一个是TL1 Edge Detector 一个是Filered Timer Input 1,一直不懂这两个到底差在哪里,好像调试都能用

pythonworld 发表于 2016-4-11 12:51:04

我也一样迷惑。不知道是否有人知道。
页: [1]
查看完整版本: 关于STM32定时器级联做计数器的问题